什麼是 LVM
傳統的硬碟空間在切割完時就決定了大小,如果要重新規劃必須將資料先備份下來,硬碟磁區重新切割才可能有改變原來的硬碟磁區環境.透過 LVM (Logical Volume Manager) 就不同了,LVM 是一種可以動態變更 Volume 大小的方式 (由 LVM 所切割出來的空間稱為 Volume),它可以讓我們更容易管理硬碟空間.
如果磁區空間不夠了,我們可以把使用率低的磁區空間縮小再將空間不夠的磁區放大 (放大縮小時皆都不影響硬碟上的資料).
LVM 說明:
- Physical Volume (PV)
這就是硬碟切割出來的實體 Partition (/dev/sdb1,/dev/sdc1) - volume group (VG)
接下來再由多個(可以單一) PV (/dev/sdb1,/dev/sdc1) 的磁區再組合成一個虛擬的磁碟 ( /dev/volum00 ) ,使用上如同一般磁碟 ( /dev/sda) ,但不同於一般磁碟他是可以做縮放的. - Logical Volume (LV)
由 VG 這個虛擬磁碟所切割出來的 Partition ( /dev/volum00/LVOL1 ) 使用時就如同一般磁區 ( /dev/sda1 ),但不同於一般磁區他是可以做縮放的. - Physical Extent (PE)
PE 就如同是磁碟機在格式化時,每個 Block 的大小.而 PE 系統預設大小為 4M 而一個 VG 最多可以擁有 65534 個 PE ( LVM2 已經沒有這個限制了 ) ,所以當系統預設時,ㄧ個 VG 最大尺寸為 65534*4M 大概為256G.對於現在大硬碟 的狀況下很快就無法再延伸了.所以建議在設定PE時指定大小.除了預設的 4M 外只要是 2的倍數在 8k-16GB 都是可以的範圍.
LVM 的整個架構如下:
整個架構就是將許多的 partition(/dev/sdb1 /dev/sdc1) 組成一個虛擬的磁碟(/dev/vg).之後就可以將它動態切割成你需要大小的 partition(/dev/vg/lv1,/dev/vg/lv2).就可以像一般的 partition 來使用.
系統是否有支援 LVM2
並不是每一個版本的核心都有支援 LVM 的功能,最簡單的方式就是檢查目前核心是否有支援.
[root@benjr ~]# cat /boot/config-kernel-version | grep -i lvm #Multi-device support (RAID and LVM) CONFIG_BLK_LVM=m CONFIG_LVM_PROC_FS=m
此時如果能看到上敘幾項功能已經編譯至核心中,那你的檔案系統已經有支援 LVM 的功能
如果沒有那請自己編譯一個含有上敘功能的模組吧!!這些功能在編譯核心選項中的 Multi-device support (RAID and LVM) 下的 Logical volume manager(LVM) support 可以找到.
LVM2 還需要 Device Mapper的模組才成使用
[root@benjr ~]# cat /boot/config-kernel-version | grep -i BLK_DEV_DM CONFIG_BLK_DEV_DM=m
如果你在編譯核心時找不到上敘功能的模組,請至 RedHat 的官方網站來安裝 LVM
LVM1:ftp://sources.redhat.com/pub/lvm/current
LVM2:ftp://sources.redhat.com/pub/lvm2
如果你的 "/ (root)" 是掛在 LVM 下請確定你的 LVM 是編譯在核心下的,如果是編譯模組也沒關係,請重做你的 initrd .
在模組下加入兩行
[root@benjr ~]# vi /etc/modules.conf alias block-major-58 lvm-mod alias char-major-109 lvm-mod
關於重做 initrd, 請參考系統重要檔案 initrd
note: 除了 boot 外其他的檔案系統能掛在 LVM 上.
文字模式
- LVM 工具 – https://benjr.tw/7362
- LVM Mapping – https://benjr.tw/7358
- LVM Snapshot – https://benjr.tw/7353
圖形介面
- RHEL5 LVM(Logical Volume Manager) – https://benjr.tw/18720
- RHEL5 LVM mapping modes (linear/striped/mirrored) – https://benjr.tw/18697
- RHEL5 LVM Snapshots – https://benjr.tw/18692
7 thoughts on “Linux – LVM (Logical Volume Manager)”