內容:併發
1. LVM條帶化簡介
ide
2. LV條帶化先後數據存儲結構探究性能
LVM的條帶化:
描述:
爲了性能考慮,考慮將數據跨越多個磁盤上存儲,即把LV上連續的數據分紅大小相同的塊,而後依次存儲在各個磁盤PV上,相似於RAID-0的數據存放形式,實現數據讀寫的併發;管理員依據本身的數據需求,定義數據分塊大小,分佈PV磁盤個數信息,從而實現讀寫的性能最佳化;
可是如RAID-0同樣,這樣帶來的數據丟失的危險性也增大,所以的實際的生產活動中,實際數據後臺是基於RAID-1或RAID-5的作過了數據冗餘形式;因此條帶化後即便有PV硬盤損壞,也能數據保證數據不丟失。固然僅僅的用幾個磁盤組成VG,而後條帶化創建LV,這樣數據是危險的;因此選擇基於RAID的條帶化(鏡像的條帶化);
注:沒有條帶化的LVM存儲數據時是按順序進行的,在一個PV劃分LV完畢後再從下一個PV中劃分空間;
示意圖:
簡單的條帶化:spa
基於RAID的條帶化:orm
條帶化實現:blog
- [root@bogon ~]# pvcreate /dev/sd{b,c,d,e}1
- Physical volume "/dev/sdb1" successfully created
- Physical volume "/dev/sdc1" successfully created
- # 建立VG:
- [root@bogon ~]# vgcreate vg0 /dev/sd[bc]1
- Volume group "vg0" successfully created
- # 建立條帶化的LV:
- [root@bogon ~]# lvcreate -L 1G -n test2 -i 2 -I 64 vg0
- Logical volume "test2" created
- # -i 指定跨PV的個數
- # -I 指定條帶單元的大小
條帶單元(stripe size):即條帶單元的大小,對應於I/O中數據單元塊的大小;數值必須爲2的冪,單位KB;ip
探究條帶化數據存儲形式:rem
1. 非條帶化時:get
- # 此時VG0由兩個PV:sdb一、sdc1構成:
- [root@bogon ~]# vgdisplay
- --- Volume group ---
- VG Name vg0
- System ID
- Format lvm2
- Metadata Areas 2
- Metadata Sequence No 1
- VG Access read/write
- VG Status resizable
- MAX LV 0
- Cur LV 0
- Open LV 0
- Max PV 0
- Cur PV 2
- Act PV 2
- VG Size 3.73 GB
- PE Size 4.00 MB #默認的PE爲4M
- Total PE 956 #總PE個數爲956個
- Alloc PE / Size 0 / 0 #分出的PE個數/大小
- Free PE / Size 956 / 3.73 GB #空閒的PE個數/大小
- VG UUID vAAETX-iGO9-jNUl-qIle-kLFR-F0y8-nIRR3F
- # 建立一個1G的LV:
- [root@bogon ~]# lvcreate -L 1G -n test1 vg0
- Logical volume "test1" created
- # 查看該LV狀態:
- [root@bogon ~]# lvdisplay
- --- Logical volume ---
- LV Name /dev/vg0/test1
- VG Name vg0
- LV UUID XIltjY-VKVh-eqUH-YkZx-kxRb-aisu-TNqrXQ
- LV Write Access read/write
- LV Status available
- # open 0 #使用狀態,表示是否正在掛載使用;
- LV Size 1.00 GB #LV大小
- Current LE 256 #LE(Logical extentes)數量對應於PE
- Segments 1
- Allocation inherit
- Read ahead sectors auto
- - currently set to 256
- Block device 253:1
- [root@bogon ~]# vgdisplay
- --- Volume group ---
- VG Name vg0
- System ID
- Format lvm2
- Metadata Areas 2
- Metadata Sequence No 2
- VG Access read/write
- VG Status resizable
- MAX LV 0
- Cur LV 1
- Open LV 0
- Max PV 0
- Cur PV 2
- Act PV 2
- VG Size 3.73 GB
- PE Size 4.00 MB
- Total PE 956
- Alloc PE / Size 256 / 1.00 GB #此時PE已經分出了256個,大小是1G
- Free PE / Size 700 / 2.73 GB #空閒的PE及爲劃分的剩餘空間
- VG UUID vAAETX-iGO9-jNUl-qIle-kLFR-F0y8-nIRR3F
- [root@bogon ~]# pvdisplay
- --- Physical volume ---
- PV Name /dev/sdb1
- VG Name vg0
- PV Size 1.87 GB / not usable 1.96 MB
- Allocatable yes
- PE Size (KByte) 4096
- Total PE 478 #PV中總PE塊數
- Free PE 222 #PV中空閒的PE塊數
- Allocated PE 256 #已經分出的PE數量:256*4M=1G
- PV UUID NeBQU9-4TGz-Dp1y-nGq1-M25t-vdQ7-oYzsEj
- --- Physical volume ---
- PV Name /dev/sdc1
- VG Name vg0
- PV Size 1.87 GB / not usable 1.96 MB
- Allocatable yes
- PE Size (KByte) 4096
- Total PE 478 #總PE數
- Free PE 478 #對應上面的
- Allocated PE 0 #對應上面的已分配空間
- PV UUID LRmTY8-J066-bOXu-dlee-7VTM-ELMg-n3NIbP
由上面能夠從看出:不條帶化時,劃分LV是順序劃分的,因此數據確定也順序存儲了;只有在一個PV磁盤存儲完畢,纔會使用下一個PV;string
2. 條帶化時:
- # 先清除一下上面非條帶化時數據;
- [root@bogon ~]# lvremove /dev/vg0/test1
- Do you really want to remove active logical volume test1? [y/n]: y
- Logical volume "test1" successfully removed
- # 創建條帶化的LV:
- [root@bogon ~]# lvcreate -L 1G -n test2 -i 2 -I 64 vg0
- Logical volume "test2" created
- # -i 指定跨PV的個數爲2
- # -I 指定條帶單元的大小爲64KB
- [root@bogon ~]# lvdisplay
- --- Logical volume ---
- LV Name /dev/vg0/test2
- VG Name vg0
- LV UUID Eceigt-gLe1-x1lW-3vyi-l6Rx-HM2r-i4F6vw
- LV Write Access read/write
- LV Status available
- # open 0
- LV Size 1.00 GB
- Current LE 256 # 256*4M=1G
- Segments 1
- Allocation inherit
- Read ahead sectors auto
- - currently set to 512
- Block device 253:1
- [root@bogon ~]# vgdisplay
- --- Volume group ---
- VG Name vg0
- System ID
- Format lvm2
- Metadata Areas 2
- Metadata Sequence No 4
- VG Access read/write
- VG Status resizable
- MAX LV 0
- Cur LV 1
- Open LV 0
- Max PV 0
- Cur PV 2
- Act PV 2
- VG Size 3.73 GB
- PE Size 4.00 MB
- Total PE 956
- Alloc PE / Size 256 / 1.00 GB # 整個VG中已分配出去256個PE塊
- Free PE / Size 700 / 2.73 GB
- VG UUID vAAETX-iGO9-jNUl-qIle-kLFR-F0y8-nIRR3F
- [root@bogon ~]# pvdisplay
- --- Physical volume ---
- PV Name /dev/sdb1
- VG Name vg0
- PV Size 1.87 GB / not usable 1.96 MB
- Allocatable yes
- PE Size (KByte) 4096
- Total PE 478
- Free PE 350
- Allocated PE 128 # 此時,在sdb1整個PV上劃分出了128個PE塊
- PV UUID NeBQU9-4TGz-Dp1y-nGq1-M25t-vdQ7-oYzsEj
- --- Physical volume ---
- PV Name /dev/sdc1
- VG Name vg0
- PV Size 1.87 GB / not usable 1.96 MB
- Allocatable yes
- PE Size (KByte) 4096
- Total PE 478
- Free PE 350
- Allocated PE 128 # 此時,在sdb1整個PV上劃分出了128個PE塊
- PV UUID LRmTY8-J066-bOXu-dlee-7VTM-ELMg-n3NIbP
由上面數據:條帶化時,LV會跨多個PV磁盤,數據存儲在PV上循環存儲;
拓展:
條帶化後,LV擴展機制是怎麼樣的,是否由於存儲形式的不一樣須要對PV增長個數有限制?!(待續,作實驗,出來結果跟預期有差距...o(╯□╰)o)