LVM邏輯卷管理
- 邏輯卷:將多個物理磁盤邏輯組成一個邏輯組,把邏輯組分爲若干個
分區(劃掉),這裏叫邏輯卷,我們只關心邏輯卷大小即可,實際上它裏面的數據可能存儲在組成邏輯組的物理磁盤的各個角落。在邏輯捲上可以創建文件系統。 - 邏輯卷管理:針對磁盤分區而言的手段;允許對捲進行方便操作的抽象層,包括重新設定文件系統的大小;允許在多個物理設備間重新組織文件系統。
相關命令我放在下面了,先看栗子
- 看圖說話,在Linux裏,將若干塊設備貼上物理設備的標籤來組成邏輯組,邏輯組分爲若干邏輯卷。
創建邏輯卷示例
1. 這裏先準備用一個分區和一個硬盤來組成邏輯組
- fdisk /dev/sdc,這裏我用sdc創建分區,另外準備sdd硬盤
- n
- p
- enter
- enter
- +2G
- w
2. 開始創建邏輯卷
- pvcreate /dev/sd{c1,d},創建物理卷。可以看到VG裏沒有信息,說明這兩個物理卷還不屬於任何卷組
- vgcreate vg0 -s 16M /dev/sd{c1,d},創建邏輯卷組。vg0是卷組名,- s 16M是在指定PE的大小,並且-s要求大小是扇區的指數倍,也就是2的n次方,最小爲128K。
- 詳細看一下信息,pvdisplay。以上面的物理卷爲例,一個pe16M,一共127個,總共2G。整個卷組大小爲2+1=3G。
- lvcreate -n lv0 -L 1.5G vg0創建邏輯卷,-n指定名字爲lv0,-L 1.5G vg0指定從vg0中分配1.5G大小的空間給lv0。下圖可以看到分配1.5G用了96個LE(PE)。
- 此時再pvdisplay看看物理卷
- 繼續創建邏輯卷,這次將剩餘的空間全部用上。lvcreate -n lv1 -l 100%FREE vg0。-l 100%FREE意思是將剩餘空間都用上。此時邏輯卷信息如下圖。
- 對比一下物理卷信息pvdisplay,此時PE都用光了。
- 此時的邏輯卷還不能用,因爲沒有文件系統。
- 創建文件系統,既然是做實驗,那就創建兩個不同的文件系統。
- mkfs.ext4 /dev/vg0/lv0
- mkfs.xfs /dev/vg0/lv1
- 創建兩個文件夾,把lv0和lv1掛上去
- touch /mnt/lv0
- touch /mnt/lv1
- vim /etc/fstab
- !blkid
- mount -a
- df看一下,已經可以使用了。
擴展邏輯卷
- 首先,要知道想要擴展邏輯卷,卷組要有空間,得有PE。
- 擴展過程:新建一個物理卷,並加到之前的卷組裏,用卷組擴展命令擴展卷組空間,繼續用邏輯卷擴展命令擴展邏輯卷。
- 開始操作,繼續看圖說話,先放一張沒擴展前的邏輯卷信息。lv0是1.5G,lv1也差不多有1.5G
- pvcreate /dev/sde,雖然我用的是sde,但是讀者你可以用別的。
- vgextend vg0 /dev/sde,將物理卷sde的加到邏輯卷組vg0
- lvextend -L 3G /dev/vg0/lv0 和 lvextend -L +3G /dev/vg0/lv0。擴展邏輯卷lv0的大小。前者是擴展到3G大小,後者是在原來的基礎上再加3G大小。如圖
- 空間是加上去了,但是別忘記同步文件系統。判斷一下是什麼類型的文件系統
- ext4:resize2fs /dev/vg0/lv0
- xfs:xfs_growfs /mnt/lv1(用相同操作我又擴展了lv1的空間而lv1是xfs類型的文件系統)
- 擴展完成
- 其實不用判斷也可以(捂臉),直接用lvextend -r -L 3G /dev/vg0/lv0,-r選項自動判斷
縮減
- 還是首先,縮減不支持xfs文件系統,只支持ext4的。其次,縮減不是壓縮,可能會造成數據丟失,萬一有1G的內容,縮成了500M肯定丟失。所以縮減前先備份。
- 步驟:
- 取消掛載umount /mnt/lv0
- 檢查系統完整性 e2fsck -f /dev/vg0/lv0(不檢查不能繼續執行後面的cmd)
- 縮減文件系統,resize2fs /dev/vg0/lv0 4G,縮到4G
- 縮減邏輯卷,lvreduce -L 4G /dev/vg0/lv0,出現提示,y確認
- 縮減完畢,重新掛載,mount -a,df -h看到已經縮減了。
LVM邏輯卷管理
- 邏輯卷:將多個物理磁盤邏輯組成一個邏輯組,把邏輯組分爲若干個
分區(劃掉),這裏叫邏輯卷,我們只關心邏輯卷大小即可,實際上它裏面的數據可能存儲在組成邏輯組的物理磁盤的各個角落。在邏輯捲上可以創建文件系統。 - 邏輯卷管理系統:針對磁盤分區而言的手段;允許對捲進行方便操作的抽象層,包括重新設定文件系統的大小;允許在多個物理設備間重新組織文件系統。
- lvm介紹
- LVM: Logical Volume Manager
- dm: device mapper: 將一個或多個底層塊設備組織成一個邏輯設備的模塊
- 設備名(真名): /dev/dm-#
- 軟鏈接(真名不容識別,軟鏈接的顯示就很清晰):
- /dev/mapper/VG_NAME-LV_NAME
- /dev/mapper/vol0-root
- /dev/VG_NAME/LV_NAME
- /dev/vol0/root
- LVM更改文件系統的容量
- LVM可以彈性更改LV的容量,通過PE(擴展或縮減LVM的單位)實現,通過交換PE來進行資料的轉換,將原來LV內的PE轉移到其它設備中以降低LV的容量,或將其它設備中的PE加到LV中以加大容量。加一句,邏輯卷的LE跟物理卷的PE是一回事。
- pv(物理卷)管理工具
- 顯示pv信息(物理卷)
- pvdisplay
- pvs簡要顯示
- 創建pv
- pvcreate /dev/device
- 顯示pv信息(物理卷)
- vg(卷組)管理
- 顯示卷組
- vgs
- vgdisplay
- 創建卷組
- vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
- 管理卷組
- vgextend VolumeGroupName PhysicalDevicePath
- vgreduce VolumeGroupName PhysicalDevicePath
- 刪除卷組
- 現將物理卷裏的內容移除pvremove,再做vgremove
- 顯示卷組
- lv(邏輯卷)管理
- 顯示邏輯卷
- lvs 簡單顯示
- lvdisplay 詳細顯示
- 創建邏輯卷
- lvcreate -L #[mMgGtT] -n NAME VolumeGroup,-L後面接要創建的邏輯卷大小,後面是邏輯卷的名字,之後接邏輯組名
- 舉個栗子
- lvcreate -l 60%VG -n mylv testvg,小寫的-l 60%VG意思是創建相當於邏輯組60%大小的邏輯卷
- lvcreate -l 100%FREE -n yourlv testvg,把邏輯組剩下的空間全用來創建邏輯卷
- 刪除邏輯卷
- lvremove /dev/邏輯組名/邏輯卷名
- 重設文件系統大小
- fsadm [options] resize device [new_size[BKMGTEP]]
- resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]
- resize2fs命令被用來增大或者收縮未加載的ext文件系統的大小
- 擴展邏輯卷
- lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
- resize2fs /dev/VG_NAME/LV_NAME
- lvresize -r -l +100%FREE /dev/VG_NAME/LV_NAME
- 縮減邏輯卷
- umount /dev/VG_NAME/LV_NAME
- e2fsck -f /dev/VG_NAME/LV_NAME
- resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
- lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
先這麼多吧,Thanks♪(・ω・)ノ