LVM條帶化

內容:

    1. LVM條帶化簡介

    2. LV條帶化前後數據存儲結構探究

 

LVM的條帶化:
  描述:
  爲了性能考慮,考慮將數據跨越多個磁盤上存儲,即把LV上連續的數據分成大小相同的塊,然後依次存儲在各個磁盤PV上,類似於RAID-0的數據存放形式,實現數據讀寫的併發;管理員依據自己的數據需求,定義數據分塊大小,分佈PV磁盤個數信息,從而實現讀寫的性能最佳化;
  但是如RAID-0一樣,這樣帶來的數據丟失的危險性也增大,因此的實際的生產活動中,實際數據後臺是基於RAID-1或RAID-5的做過了數據冗餘形式;所以條帶化後即使有PV硬盤損壞,也能數據保證數據不丟失。當然僅僅的用幾個磁盤組成VG,然後條帶化建立LV,這樣數據是危險的;所以選擇基於RAID的條帶化(鏡像的條帶化);
  注:沒有條帶化的LVM存儲數據時是按順序進行的,在一個PV劃分LV完畢後再從下一個PV中劃分空間;


示意圖:
  簡單的條帶化:

 

  基於RAID的條帶化:

條帶化實現:

  1. [root@bogon ~]# pvcreate /dev/sd{b,c,d,e}1 
  2.   Physical volume "/dev/sdb1" successfully created 
  3.   Physical volume "/dev/sdc1" successfully created 
  4. # 創建VG:
  5. [root@bogon ~]# vgcreate vg0 /dev/sd[bc]1 
  6.   Volume group "vg0" successfully created 
  7.  # 創建條帶化的LV:
  8. [root@bogon ~]# lvcreate -L 1G -n test2 -i 2 -I 64 vg0  
  9.   Logical volume "test2" created 
  10. # -i 指定跨PV的個數 
  11. # -I 指定條帶單元的大小 

條帶單元(stripe size):即條帶單元的大小,對應於I/O中數據單元塊的大小;數值必須爲2的冪,單位KB;

 

探究條帶化數據存儲形式:

  1.  非條帶化時:

  1. # 此時VG0由兩個PV:sdb1、sdc1構成: 
  2. [root@bogon ~]# vgdisplay  
  3.   --- Volume group --- 
  4.   VG Name               vg0 
  5.   System ID              
  6.   Format                lvm2 
  7.   Metadata Areas        2 
  8.   Metadata Sequence No  1 
  9.   VG Access             read/write 
  10.   VG Status             resizable 
  11.   MAX LV                0 
  12.   Cur LV                0 
  13.   Open LV               0 
  14.   Max PV                0 
  15.   Cur PV                2 
  16.   Act PV                2 
  17.   VG Size               3.73 GB 
  18.   PE Size               4.00 MB     #默認的PE爲4M 
  19.   Total PE              956      #總PE個數爲956個 
  20.   Alloc PE / Size       0 / 0       #分出的PE個數/大小 
  21.   Free  PE / Size       956 / 3.73 GB   #空閒的PE個數/大小 
  22.   VG UUID               vAAETX-iGO9-jNUl-qIle-kLFR-F0y8-nIRR3F 
  23.  
  24. # 創建一個1G的LV: 
  25. [root@bogon ~]# lvcreate -L 1G -n test1 vg0  
  26.   Logical volume "test1" created 
  27.  
  28. # 查看該LV狀態: 
  29. [root@bogon ~]# lvdisplay  
  30.   --- Logical volume --- 
  31.   LV Name                /dev/vg0/test1 
  32.   VG Name                vg0 
  33.   LV UUID                XIltjY-VKVh-eqUH-YkZx-kxRb-aisu-TNqrXQ 
  34.   LV Write Access        read/write 
  35.   LV Status              available 
  36.   # open                 0  #使用狀態,表示是否正在掛載使用;
  37.   LV Size                1.00 GB    #LV大小 
  38.   Current LE             256    #LE(Logical extentes)數量對應於PE 
  39.   Segments               1 
  40.   Allocation             inherit 
  41.   Read ahead sectors     auto 
  42.   - currently set to     256 
  43.   Block device           253:1 
  44.  
  45. [root@bogon ~]# vgdisplay  
  46.   --- Volume group --- 
  47.   VG Name               vg0 
  48.   System ID              
  49.   Format                lvm2 
  50.   Metadata Areas        2 
  51.   Metadata Sequence No  2 
  52.   VG Access             read/write 
  53.   VG Status             resizable 
  54.   MAX LV                0 
  55.   Cur LV                1 
  56.   Open LV               0 
  57.   Max PV                0 
  58.   Cur PV                2 
  59.   Act PV                2 
  60.   VG Size               3.73 GB 
  61.   PE Size               4.00 MB 
  62.   Total PE              956 
  63.   Alloc PE / Size       256 / 1.00 GB   #此時PE已經分出了256個,大小是1G 
  64.   Free  PE / Size       700 / 2.73 GB   #空閒的PE及爲劃分的剩餘空間 
  65.   VG UUID               vAAETX-iGO9-jNUl-qIle-kLFR-F0y8-nIRR3F 
  66.  
  67. [root@bogon ~]# pvdisplay  
  68.   --- Physical volume --- 
  69.   PV Name               /dev/sdb1 
  70.   VG Name               vg0 
  71.   PV Size               1.87 GB / not usable 1.96 MB 
  72.   Allocatable           yes  
  73.   PE Size (KByte)       4096 
  74.   Total PE              478     #PV中總PE塊數 
  75.   Free PE               222     #PV中空閒的PE塊數 
  76.   Allocated PE          256     #已經分出的PE數量:256*4M=1G 
  77.   PV UUID               NeBQU9-4TGz-Dp1y-nGq1-M25t-vdQ7-oYzsEj 
  78.     
  79.   --- Physical volume --- 
  80.   PV Name               /dev/sdc1 
  81.   VG Name               vg0 
  82.   PV Size               1.87 GB / not usable 1.96 MB 
  83.   Allocatable           yes  
  84.   PE Size (KByte)       4096 
  85.   Total PE              478     #總PE數 
  86.   Free PE               478     #對應上面的 
  87.   Allocated PE          0       #對應上面的已分配空間 
  88.   PV UUID               LRmTY8-J066-bOXu-dlee-7VTM-ELMg-n3NIbP 

   由上面可以從看出:不條帶化時,劃分LV是順序劃分的,所以數據肯定也順序存儲了;只有在一個PV磁盤存儲完畢,纔會使用下一個PV;

  2.  條帶化時:

  1. # 先清除一下上面非條帶化時數據;
  2. [root@bogon ~]# lvremove /dev/vg0/test1  
  3. Do you really want to remove active logical volume test1? [y/n]: y 
  4.   Logical volume "test1" successfully removed 
  5. # 建立條帶化的LV:
  6. [root@bogon ~]# lvcreate -L 1G -n test2 -i 2 -I 64 vg0  
  7.   Logical volume "test2" created 
  8. # -i 指定跨PV的個數爲2 
  9. # -I 指定條帶單元的大小爲64KB 
  10.  
  11. [root@bogon ~]# lvdisplay  
  12.   --- Logical volume --- 
  13.   LV Name                /dev/vg0/test2 
  14.   VG Name                vg0 
  15.   LV UUID                Eceigt-gLe1-x1lW-3vyi-l6Rx-HM2r-i4F6vw 
  16.   LV Write Access        read/write 
  17.   LV Status              available 
  18.   # open                 0 
  19.   LV Size                1.00 GB 
  20.   Current LE             256  # 256*4M=1G
  21.   Segments               1 
  22.   Allocation             inherit 
  23.   Read ahead sectors     auto 
  24.   - currently set to     512 
  25.   Block device           253:1 
  26.     
  27. [root@bogon ~]# vgdisplay  
  28.   --- Volume group --- 
  29.   VG Name               vg0 
  30.   System ID              
  31.   Format                lvm2 
  32.   Metadata Areas        2 
  33.   Metadata Sequence No  4 
  34.   VG Access             read/write 
  35.   VG Status             resizable 
  36.   MAX LV                0 
  37.   Cur LV                1 
  38.   Open LV               0 
  39.   Max PV                0 
  40.   Cur PV                2 
  41.   Act PV                2 
  42.   VG Size               3.73 GB 
  43.   PE Size               4.00 MB 
  44.   Total PE              956 
  45.   Alloc PE / Size       256 / 1.00 GB # 整個VG中已分配出去256個PE塊
  46.   Free  PE / Size       700 / 2.73 GB 
  47.   VG UUID               vAAETX-iGO9-jNUl-qIle-kLFR-F0y8-nIRR3F 
  48.  
  49. [root@bogon ~]# pvdisplay  
  50.   --- Physical volume --- 
  51.   PV Name               /dev/sdb1 
  52.   VG Name               vg0 
  53.   PV Size               1.87 GB / not usable 1.96 MB 
  54.   Allocatable           yes  
  55.   PE Size (KByte)       4096 
  56.   Total PE              478 
  57.   Free PE               350 
  58.   Allocated PE          128  # 此時,在sdb1整個PV上劃分出了128個PE塊
  59.   PV UUID               NeBQU9-4TGz-Dp1y-nGq1-M25t-vdQ7-oYzsEj 
  60.     
  61.   --- Physical volume --- 
  62.   PV Name               /dev/sdc1 
  63.   VG Name               vg0 
  64.   PV Size               1.87 GB / not usable 1.96 MB 
  65.   Allocatable           yes  
  66.   PE Size (KByte)       4096 
  67.   Total PE              478 
  68.   Free PE               350 
  69.   Allocated PE          128  # 此時,在sdb1整個PV上劃分出了128個PE塊
  70.   PV UUID               LRmTY8-J066-bOXu-dlee-7VTM-ELMg-n3NIbP 
  71.  

由上面數據:條帶化時,LV會跨多個PV磁盤,數據存儲在PV上循環存儲;

 

拓展:

    條帶化後,LV擴展機制是怎麼樣的,是否因爲存儲形式的不同需要對PV增加個數有限制?!(待續,做實驗,出來結果跟預期有差距...o(╯□╰)o)

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章