搜尋此網誌

RHCE LVM



LVM
LVM(Logical Volume Management,邏輯捲軸管理)是一種可以更彈性管理磁碟的方法。
藉由將實體儲存裝置的分割區整合提供一個更大的儲存空間,讓管理員依照需求去分配資源。
並且若日後需要增加或縮減檔案系統空間,都可以在不重新格式化整個檔案系統的情況下完成。

LVM主要分成四個項目,而這四個項目也代表著建制LVM的階段作業。

PV(Physical Volume,實體捲軸):
LVM中最底層的空間,為實體切割區調整系統識別碼後格式化的區域。
因為PV無法跨實體磁碟,所以最大空間即為實體磁碟空間。

PE(Physical Extend,實體延伸區塊):
PE是LVM中最小的儲存單位,類似實體磁碟的block,建立VG時可以決定PE的大小,預設是4MB。
PE可以決定VG的大小,在LVM1中,PE的個數限制在65534個,每個PE的大小為8k-512MB。
而在LVM2中,PE移除了個數的限制,大小則是延伸到16GB,使得管理員可以建立更大的VG。

VG(Volume Group,捲軸群組):
VG為PV所集合而成的空間,可跨越實體磁碟。
VG的大小主要因PE而決定,在LVM1中,VG最大的限制到2TB。
在LVM2中,VG在32bits的系統中可到達16TB,在64bits的系統更可到達8EB的空間。

LV(Logical Volume,邏輯捲軸):
VG最終會切割出各個LV,在格式化LV之後就可成為類似分割區的空間儲存資料。
LV的大小也是以PE為單位。

整個LVM的建立流程就是,一個實體的磁碟經由建立PV,再由建立VG決定PE大小而堆疊組合出VG。
VG在經過管理者分配切割為LV,格式化LV之後便成為可用的檔案系統,如下圖所示:
2012-01-03_213743.jpg

LVM CREATE
首先先來介紹LVM建立的方法。
1.使用 #fdisk 建立一個系統識別碼為8e的分割區( #fdisk 切割出分割區後按t可變更識別碼)
2. #pvcreate /dev/[分割區代號] 建立PV。
3.使用 #vgcreate -s [PE大小] [VG名稱] [PV名稱] 建立VG,-s為設定PE大小,預設為4MB。
   如有多個PV,例如vda5、vda6、vda7,則輸入 #vgcreate -s [VG名稱] /dev/vda{5,6,7}
4.使用 #lvcreate -n [LV名稱] -L 2G [VG名稱] 建立LV,-n為設定LV名稱,-L為設定LV大小。
   或者可使用-l,為以PE作為單位切割,-L並非切割剛好的空間,而是切割出最接近的PE數量。
5. #mkfs -t ext4 /dev/[VG名稱]/[LV名稱],建立檔案系統。
6. #mkdir /[掛載點],建立掛載點。
7. #mount /dev/[VG名稱]/[LV名稱] /[掛載點] 掛載,或編輯/etc/fstab自動掛載。

當各步驟輸入指令完畢之後,可以查詢各階段設定是否正確。
#pvdisplay /dev/[PV分割區代號],查詢PV資訊。
#vgdisplay [VG名稱],查詢VG資訊。
#lvdisplay /dev/[VG名稱]/[LV名稱],查詢LV資訊。

*echo '[lv路徑] [掛載路徑] [檔案格式] defaults 0 0' >> /etc/fstab

* PV相關指令
  • pvcreate :將實體 partition 建立成為 PV ;
  • pvscan :搜尋目前系統裡面任何具有 PV 的磁碟;
  • pvdisplay :顯示出目前系統上面的 PV 狀態;
  • pvremove :將 PV 屬性移除,讓該 partition 不具有 PV 屬性
* VG相關指令
  • vgcreate :就是主要建立 VG 的指令啦!他的參數比較多,等一下介紹。
  • vgscan :搜尋系統上面是否有 VG 存在?
  • vgdisplay :顯示目前系統上面的 VG 狀態;
  • vgextend :在 VG 內增加額外的 PV ;
  • vgreduce :在 VG 內移除 PV;
  • vgchange :設定 VG 是否啟動 (active);
  • vgremove :刪除一個 VG 啊!
* LV相關指令
  • lvcreate :建立 LV 啦!
  • lvscan :查詢系統上面的 LV ;
  • lvdisplay :顯示系統上面的 LV 狀態啊!
  • lvextend :在 LV 裡面增加容量!
  • lvreduce :在 LV 裡面減少容量;
  • lvremove :刪除一個 LV !
  • lvresize :對 LV 進行容量大小的調整!

LVM EXTEND & REDUCE
LVM的優點就在於它彈性的空間配置,可以隨時增加或縮減空間的大小而不影響檔案系統。
例如當管理員購置的新硬碟,可以增加到VG或LV裡面,而不用格式化整個系統。
或者當管理員發現哪邊有閒置的空間,可以先刪除然後增加到其他檔案系統中。

LVM在進行空間縮減的時候,會先以空白的空間進行搬移,盡量避免動到有資料的空間。
但在進行空間大小變更前,最好還是先確認過目前空間的狀況後,才開始進行縮減的動作。
不然剩餘的空間不足以應付增加或縮減時,資料就有可能受損了。
所以建議使用指令 #df -h /[掛載點],或者 #vgdispaly [VG名稱] 來確認目前空間大小。

LV Extend & Reduce
當進行LV增加或縮減時,避免出錯最好都先將空間卸載。
增加LV大小時,必須要先確定VG有足夠的延伸空間。
先輸入 #lvextend -L [空間大小] /dev/[VG名稱]/[LV名稱]-L可改為-l以PE數量為單位。
如果空間大小前面使用「+」表示增加多少空間大小,若不使用表示指定為多少空間大小。
然後 #resize2fs -p /dev/[VG名稱]/[LV名稱] 變更檔案系統大小,再重新掛載檔案系統。

要縮小LV大小時,系統會提示要先做 #e2fsck -f [VG名稱]/[LV名稱] 這個動作。
跟延伸不同的是要先做 #resize2fs -p /dev/[VG名稱]/[LV名稱] [空間大小]
要注意這邊是縮減檔案系統為指定大小,而不是縮減多少大小。
然後 #lvreduce -L [空間大小] /dev/[VG名稱]/[LV名稱]-L可改為-l,以PE數量為單位。
跟延伸相同,若空間大小前加上「-」表示減少多少空間大小,不使用表示指定空間大小。
完成之後再將檔案系統重新掛載即可。

VG Extend & Reduce
要進行VG的空間增加時,我們要先建立新的PV。
再使用 #vgextend [VG名稱] /dev/[PV分割區代號],就可以把新的PV加進VG了。

而要縮減VG大小時,先以 #pvmove /dev/[PV分割區代號] 移除PV。
再使用 #vgreduce [VG名稱] /dev/[PV分割區代號] 將VG中的PV移除。




備註 :

[root@vserver~]#umount /dev/vglab/lvlab /mnt/data
[root@vserver~]#lvextend -L 400M /dev/vglab/lvlab
[root@vserver~]#resize2fs -f /dev/vglab/lvlab
[root@vserver~]#mount /dev/vglab/lvlab /mnt/data


[root@vserver~]#umount /dev/vglab/lvlab /mnt/data
[root@vserver~]#fcsk -f /dev/vglab/lvlab
[root@vserver~]#resizefs -f /dev/vglab/lvlab 200M
[root@vserver~]#lvreduce -L 200M /dev/vglab/lvlab
[root@vserver~]#mount /dev/vglab/lvlab /mnt/data
 

Copyright © Jackie.Chen | Powered by Blogger | Template by 54BLOGGER | Fixed by Free Blogger Templates