天天看點

Linux- LVM邏輯卷管理1  基本概念2  LVM的使用3 條帶化LV4 同時建立lv及其鏡像

1  基本概念

       LVM,logical volume manager,邏輯卷管理器,屬于磁盤的一種使用方式,克服基本磁盤的弊端,相當于windows裡面的動态磁盤。

PV(physical volume)實體卷:可以是一個磁盤或一個分區

VG(volume group)卷組:多個PV組成的一個組,至少要一個PV

PE實體塊:PV加入VG中時會劃分等大的實體塊,這些實體塊叫PE

LE邏輯塊:與PE是映射關系,兩者等大,且一一對應

LV邏輯卷:由LE組成,多個LE組成一個LV

      LVM工作原理:在Linux中把分區或磁盤辨別為PV,多個PV組成卷組,PV加入VG時會被劃分成等大的實體塊叫PE,PE與LE一一等大映射,多個LE組成LV,将LV挂載使用,資料存儲在PE中,也就是存在磁盤中。當LV容量不夠時,隻需要随機劃分PE即可。

2  LVM的使用

1)建立PV:pvcreate  分區或磁盤裝置檔案

pvcreate  /dev/sda2    //pv名就是磁盤或分區所在目錄

2)檢視系統内PV的狀态:pvs  或 pvdisplay 或   pvscan

3)建立VG:vgcreate  VG名  PV名

例:vgcreate   testvg   /dev/sda1   //-s指定PE大小,如果不指定,預設大小就是4M

4)檢視系統VG的狀态:vgs  或者vgdisplay  或者vgscan

5)建立LV:lvcreate  -L   lv大小   –n   lv名稱   vg名

例如 : lvcreate  -L   500M    -n    testlv     testvg

6)格式化LV,挂載使用

    mkfs   –t   檔案系統類型   /dev/vg名/lv名

    建立挂載點   mkdir   /mnt/目錄名

    挂載:  mount   /dev/vg名/lv名    /mnt/目錄名

7)開機自動挂載LV

編輯配置檔案  vim  /etc/fstab   

在末尾添加:/dev/vg名/lv名  挂載點 檔案系統類型  權限  是否備份 是否檢查

例如:vim  /etc/fstab    

     /dev/testvg/testlv   /mnt/testlv   ext4   defaults   0    0

8)删除LVM

如果有挂載的LV,需要先解除安裝——  umount  挂載點

删除lv ——    lvremove   /dev/vg名/lv名

删除vg ——   vgremove   /dev/vg名

删除pv——    pvremove    /dev/pv名

注意:删除過程不能更改。但是可以跳過删除lv,直接删除vg

9)LVM擴容與縮容

      對象:VG  LV   

      原理:VG擴容就是向VG中增加PV,VG縮容就是從VG中剔除PV。LV擴容就是向LV中增加LE,LV縮容就是從LV中剔除LE。LV的擴容需要VG有足夠的空間

VG擴容與縮容

擴容:  vgextend  vg名  pv名        縮容:  vgreduce  vg名  pv名

LV的擴容與縮容

擴容:  lvextend  -L  +擴充的容量   -f  -r   /dev/vg名/lv名

縮容:  lvreduce  -L  -擴充的容量   -f  -r   /dev/vg名/lv名

注意:有+、-号時,就是在原有容量基礎上加減多少,沒有+、-号就是直接變成多少容量;

VG、LV的縮容可能會破壞資料,是以很少縮容;

LV需要進行格式化之後才能進行擴容與縮容操作。

3 條帶化LV

1)條帶化LV概念

磁盤陣列 raid:

raid0條帶化,至少需要兩塊規格大小一樣的磁盤,組成一個磁盤組。存儲與讀取檔案時會多個磁盤多任務寫入或讀取。  

raid1 鏡像化,一個磁盤是另一個磁盤的備份,删掉一個磁盤裡的資料,另一個磁盤也會删掉這個資料,但是如果一個磁盤損壞了,還可以通過另一個磁盤擷取資料。

條帶化LV和raid0原理一樣。也是需要規格大小一樣的PV。

2) 建立條帶化LV:在VG中至少需要兩塊PV,PV的大小要一緻

建立:lvcreate  –l  100%FREE  -I  2  –I  64  –n  lv名  vg名

注:第一個參數為小寫的L,用于指定建立lv使用的磁盤空間

第二個參數為小寫的i,用于指定建立lv使用的磁盤數量

第三個參數為大寫的i,用于指定條帶化lv的帶區大小

建立完成後,即可格式化、挂載使用

4 同時建立lv及其鏡像

在vg中至少需要兩塊PV,PV的大小要一緻

建立鏡像LV:lvcreate  -L  lv的大小  -m1  -n   lv名    vg名

注:LV的大小不能大于一塊pv的大小;

    -m1:建立LV時同時在vg中的另一塊pv上建立其鏡像

舉例說明:

1)将/dev/sdb建立為pv,加入vg,建立LV,格式化後挂載到/mnt/aa,在/mnt/aa中建立f1

pvcreate   /dev/sdb                      vgcreate   vg   /dev/sdb

lvcreate     -L   500M   -n    lv    vg

mkfs    -t   ext4    /dev/vg/lv          mkdir    /mnt/aa

mount    /dev/vg/lv    /mnt/aa           touch     /mnt/aa/f1

2) 添加pv  /dev/sdc至vg中,建立LV的鏡像至/dev/sdc中

vgextend    vg     /dev/sdc

lvconvert    -m1    /dev/vg/lv     /dev/sdc

3)破壞pv  /dev/sdb ,确認f1檔案仍然存在

dd   if=/dev/zereo  of=/dev/sdb   count=10

檢視被破壞的pv:pvs  ,被破壞的pv顯示unknown  device

确認f1檔案存在:find  /mnt/aa    -name   f1

4)将損壞的pv從vg中剔除,并删除鏡像關系

剔除pv: vgreduce  --removemissing  --force   /dev/vg

删除鏡像關系:lvconvert   -m0   /dev/vg/lv

5)将新的pv  /dev/sdd 加入vg,并重新建立LV的鏡像

擴充vg:vgextend   vg   /dev/sdd

建立鏡像: lvconvert   -m1   /dev/vg/lv    /dev/sdd

轉載請注明出處,謝謝!

繼續閱讀