Ubuntu的Linux邏輯卷管理-LVM快速入門

LVM(邏輯卷)管理系統能夠將多個物理磁盤組裝爲一個大的邏輯磁盤進行使用,尤爲是管理大文件時很是方便。LVM能夠減小多個磁盤的部分空間閒置的狀況,集中使用提升磁盤利用率。LVM的卷能夠動態伸縮,方便使用。app

LVM由PV(物理卷)、VG(卷組)、LV(邏輯卷)組成,其中PV對應到物理磁盤的一個物理分區,LV至關於一個邏輯分區,VG創建起邏輯卷和物理卷之間的對應關係。工具

一、將物理磁盤轉換爲PV

  • 注意:備份您的全部數據!

查看物理磁盤信息

df -h

建立物理卷

若是要將物理分區/dev/sdb2轉爲物理卷:操作系統

sudo pvcreate /dev/sdb2

將把LVM的標誌符寫入到磁盤之中。code

查看物理卷

sudo pvs

二、創建邏輯卷組-VG

2.1 建立邏輯卷組

以上面添加的第一個物理盤爲基礎,建立邏輯卷組ip

vgcreate vgdata /dev/sdb2

2.2 激活VG

在被激活以前,VG與LV是沒法訪問的,這時可用命令:io

sudo vgchange -a y  vgdata

激活所要使用的卷組。test

2.3 卸載VG

當再也不使用VG時,可用vgchange使之再也不可用。基礎

sudo vgchange -a n  vgdata

三、創建邏輯卷-LV

3.1 命令lvcreate用於建立邏輯卷

語法以下:擴展

lvcreate [options]  -n 邏輯卷名  卷組名 [PV1 ... ]

其中的經常使用可選項有:map

  • -i Stripes :採用交錯(striped)方式建立LV,其中Stripes指卷組中PV的數量。
  • -I Stripe_size :採用交錯方式時採用的塊大小(單位爲KB),Stripe_size必須爲2的指數:2N ,N=2,3...9。
  • -l LEs :指定LV的邏輯塊數。
  • -L size :指定LV的大小,其後能夠用K、M、G表示KB、MB、GB。
  • -s :建立一已存在LV的snapshot卷。
  • -n name :爲LV指定名稱。

3.2 將整個物理卷指定爲邏輯卷

若是須要LV使用整個VG,可首先用vgdisplay 查找 Total PE 值,而後在運行lvcreate時指定,如:

# sudo vgdisplay vgdata | grep "Total PE"
Total PE              10230

# sudo lvcreate -l 10230 vgdata -n data

這時建立了一個邏輯卷,名稱爲data。

3.3 建立文件系統

建立出的邏輯卷至關於系統的一個「裸磁盤分區」,須要進一步建立文件系統和進行格式化。

sudo mke2fs /dev/vgdata/data

3.4 伸縮邏輯卷

爲邏輯卷增長容量可用使用lvextend,便可以指定要增長的尺寸也能夠指定擴容後的尺寸,如

# lvextend -L12G /dev/vgdata/data
lvextend -- extending logical volume "/dev/testvg/testlv" to 12 GB
lvextend -- doing automatic backup of volume group "testvg"
lvextend -- logical volume "/dev/testvg/testlv" successfully extended

將擴大邏輯卷data的容量爲12GB。

# lvextend -L+1G /dev/testvg/testlv
lvextend -- extending logical volume "/dev/testvg/testlv" to 13 GB
lvextend -- doing automatic backup of volume group "testvg"
lvextend -- logical volume "/dev/testvg/testlv" successfully extended

將爲LV testlv再增大容量1GB至13GB。

爲LV擴容的一個前提是:LV所在的VG有足夠的空閒存儲空間可用。 在爲LV擴容以後,應同時爲LV之上的文件系統擴容,使兩者相匹配。對不一樣的文件系統有相對應的擴容方法。

  • ext2/ext3 除非內核已有ext2online 補丁,不然在改變ext2/ext3文件系統的大小時應卸載它:
# umount /dev/testvg/testlv
# resize2fs /dev/testvg/testlv
# mount /dev/testvg/testlv /home

這裏假設testlv安裝點爲/home。在es2fsprogs-1.19或以上版本中包含resize2fs命令。

在LVM發行包中有一個稱爲e2fsadm的工具,它同時包含了lvextend與resize2fs的功能,如:

# e2fsadm -L+1G /dev/testvg/testlv

等價於下面兩條命令:

# lvextend -L+1G /dev/testvg/testlv 
# resize2fs /dev/testvg/testlv

但用戶仍需首先卸載文件系統。

  • reiserfs 與ext2不一樣,Reiserfs沒必要卸載文件系統,如:
# resize_reiserfs -f /dev/testvg/testvl
  • xfs SGI XFS文件系統必須在安裝的狀況下才可改變大小,而且要使用安裝點而不是塊設備,如:
# xfs_growfs /home

四、格式化邏輯卷

此時,操做系統中應該已經能夠看到這個邏輯捲了,與普通磁盤沒有任何區別。

按照普通磁盤格式化方法,進行格式化、賦予卷標,就能夠正常使用了。

五、添加新物理盤

當卷組空間不足時,能夠加入新的物理捲來擴大容量,這時可用命令vgextend,如:

# vgextend vgdata /dev/sdb2

其中/dev/sdb2是新的PV(物理卷,使用pvcreate從物理盤建立)。

須要如下幾個步驟(/dev/sdb2是須要加入的物理磁盤,經過df -h獲取磁盤標識):

  • A、使用pvcreate初始化物理磁盤。
sudo pvcreate /dev/sdb2

輸入sudo pvs能夠看到建立的物理卷。

  • B、使用vgextend加入PV到VG中。
sudo vgextend vgdata /dev/sdb2

輸入sudo vgs能夠看到vg中的物理卷列表。

  • C、使用lvextend擴展虛擬卷的大小。
#476899爲增長的空閒空間,經過vgdisplay命令顯示的Free PE值來肯定。
lvextend -l+476899 /dev/vgdata/appdata

再執行sudo vgs能夠看到空閒空間被分配到了vgdata中,但這時文件系統中仍然沒法使用。

  • Resize 邏輯卷LV的尺寸。 再次,擴大文件系統到整個邏輯卷。 首先df -h查看邏輯卷的名稱,而後調用resize2fs。
sudo resize2fs /dev/mapper/vgdata-appdata
#將所有的剩餘空間賦給虛擬卷appdata的文件系統。

這時候在操做系統中,點擊文件夾的「屬性」,能夠看到整個磁盤空間已經擴大了。

六、系統啓動/關閉

爲使系統啓動時可自動激活並使用LVM,可將如下幾行添加到啓動 rc 腳本中:

/sbin/vgscan
/sbin/vgchange -a y

這些行將瀏覽全部可用的卷組並激活它們。要注意的是,它們應在安裝卷組上的文件系統操做以前被執行,不然將沒法正常安裝文件系統。

在系統關機時,要關閉LVM,這可將如下這行添加到關機 rc 腳本中,並確保它在卸裝了全部文件系統後執行:

/sbin/vgchange -a n
相關文章
相關標籤/搜索