在Linux中擴展/縮減LVM(第二部分)
前置需求
什麼時候我們需要縮減卷?
或許我們需要創建一個獨立的分區用於其它用途,或者我們需要擴展任何空間低的分區。遇到這種情況時,使用 LVM我們可以很容易地縮減大尺寸的分區,以及擴展空間低的分區,只要按下面幾個簡易的步驟來即可。
我的伺服器設置 —— 需求
- 操作系統 – 安裝有LVM的CentOS 6.5
- 伺服器IP – 192.168.0.200
如何擴展卷組以及縮減邏輯卷
擴展邏輯卷
目前,我們已經有一個PV,VG和2個LV。讓我們用下面的命令來列出它們。
# pvs
# vgs
# lvs
邏輯卷擴展
在物理卷和卷組中沒有空閑空間可用了,所以,現在我們不能擴展邏輯卷的大小。要擴展,我們需要添加一個物理卷(PV),然後通過擴展vg來擴展卷組,這樣我們就會得到足夠大的空間來擴展邏輯卷大小了。所以,首先我們應該去添加一個物理卷。
要添加一個新PV,我們必須使用fdisk來創建一個LVM分區。
# fdisk -cu /dev/sda
- 選擇n來創建新分區。
- 選擇p來創建主分區。
- 選擇我們需要創建的分區號。
- 如果有其它可用磁碟,請按1。
- 使用t來修改分區類型。
- 輸入8e來將分區類型修改為Linux LVM。
- 使用p來列印創建的分區(這裡我們沒有使用該選項)。
- 按w寫入修改。
完成後重啟系統。
創建LVM分區
使用fdisk列出並檢查我們創建的分區。
# fdisk -l /dev/sda
驗證LVM分區
接下來,使用下列命令來創建新PV(物理卷)。
# pvcreate /dev/sda1
使用下面的命令來驗證pv。
# pvs
創建物理卷
擴展卷組
添加該pv到vg_tecmint卷組來擴展卷組的大小,以獲取更多空間來擴展lv。
# vgextend vg_tecmint /dev/sda1
讓我們檢查現在正在使用的卷組的大小。
# vgs
擴展卷組
我們甚至可以看到哪個PV用於創建使用中的特定卷組。
# pvscan
檢查卷組
這裡,我們可以看到卷組所處的物理卷。我們已經添加了一個pv,而且它完全空著。在擴展邏輯卷之前,讓我們先看看我們所擁有的各個卷組的大小。
檢查所有邏輯卷
- LogVol00用於Swap。
- LogVol01用於/。
- 現在我們有16.50GB大小的空間用於/(root)。
- 當前有4226物理擴展(PE)可用。
現在,我們打算去擴展/分區LogVol01。在擴展後,我們可以像上面那樣列出它的大小以確認。我們能可以使用GB或PE來擴展,這一點我已經在LVM第一部分解釋過了,這裡我使用PE來擴展。
要獲取可用的物理擴展大小,運行以下命令。
# vgdisplay
檢查可用的物理擴展
總共有4607空閑PE可用,亦即有18GB空間空間可用。因此,我們可以將我們的邏輯卷擴展到18GB這麼大。讓我們使用PE大小來擴展。
# lvextend -l +4607 /dev/vg_tecmint/LogVol01
使用+來添加更多空間。在擴展後,我們需要改變文件系統大小,使用以下命令。
# resize2fs /dev/vg_tecmint/LogVol01
擴展邏輯卷
- 用來使用物理擴展擴展邏輯卷的命令。
- 這裡我們可以看到它從16.51GB擴展到了34GB。
- 如果文件系統已被掛載並處於使用中,改變文件系統大小。
- 要擴展邏輯卷,我們不需要卸載文件系統
現在,讓我們看看當前使用的改變大小後的邏輯卷。
# lvdisplay
改變邏輯卷大小
- LogVol01用於擴展的卷 /。
- 擴展後,從16.50GB上升到了34.50GB。
- C當前擴展,在擴展前有4226,我們已經添加了4607個擴展,因此現在有8833。
現在,如果我們檢查可用的vg的話,空閑PE將會是0。
# vgdisplay
查看擴展的結果。
# pvs
# vgs
# lvs
驗證分區大小改變
- 添加的新物理卷。
- 卷組vg_tecmint從17.51GB擴展到了35.50GB。
- 邏輯卷LogVol01從16.51GB擴展到了34.50GB。
這裡,我們已經完成擴展卷組和邏輯卷的過程。讓我們一起邁向邏輯卷管理中一些有趣的部分。
縮減邏輯卷(LVM)
這裡,我們將了解如何縮減邏輯卷。人人都說它很危險,在縮減lvm的時候可能會導致災難。縮減lvm在邏輯卷管理中比其它部分要來得確實有趣得多。
- 在開始之前,備份好數據總是對的,這樣如果出錯,就不會頭痛了。
- 要縮減邏輯卷,需要小心翼翼地完成5個步驟。
- 在擴展一個卷的時候,我們可以在該卷掛載時擴展它(在線),但對於縮減,我們必須在縮減前卸載文件系統。
讓我們來了解一下下面這5個步驟。
- 卸載文件系統以便縮減。
- 在卸載後檢查文件系統。
- 縮減文件系統。
- 5減少當前邏輯卷大小。
- 再檢查文件系統以防出錯。
- 將文件系統再次掛載回去。
為了演示,我已經創建了獨立的卷組和邏輯卷。這裡,我將縮減邏輯卷tecmintreducetest。現在它有18GB大小,我們需要將它縮減到10GB而不丟失數據。也就是說,我們需要從18GB中減少8GB。卷中已經有4GB被使用。
18GB ---> 10GB
在縮減大小的時候,我們只需要縮減8GB,所以在縮減後它總計會有10GB。
# lvs
縮減邏輯卷
這裡,我們可以看到文件系統信息。
# df -h
檢查文件系統大小
- 卷大小是18GB。
- 它已經使用了3.9GB。
- 可用空間是13GB。
首先,卸載掛載點。
# umount -v /mnt/tecmint_reduce_test/
卸載分區
然後,使用以下命令來檢查文件系統錯誤。
# e2fsck -ff /dev/vg_tecmint_extra/tecmint_reduce_test
掃描分區錯誤
注意:必須通過所有文件系統檢查的5個步驟,若未完全通過,則你的文件系統可能存在問題。
接下來,縮減文件系統。
# resize2fs /dev/vg_tecmint_extra/tecmint_reduce_test 8GB
縮減文件系統
使用GB來縮減邏輯卷。
# lvreduce -L -8G /dev/vg_tecmint_extra/tecmint_reduce_test
縮減邏輯分區
要使用PE來縮減邏輯卷,我們需要知道默認PE大小和卷組的總PE大小,以進行一次小小的計算來得出準確的縮減大小。
# lvdisplay vg_tecmint_extra
這裡,我們需要使用bc命令來做一些小計算來獲得10GB的PE大小。
1024MB x 10GB = 10240MB or 10GB
10240MB / 4PE = 2048PE
按CTRL+D來退出BC。
計算PE大小
使用PE來縮減大小。
# lvreduce -l -2048 /dev/vg_tecmint_extra/tecmint_reduce_test
使用PE來縮減大小
將文件系統大小調整回去。在這一步中,如果發生任何錯誤,這就意味著我們已經將文件系統搞亂了。
# resize2fs /dev/vg_tecmint_extra/tecmint_reduce_test
將文件系統掛載回同樣的掛載點。
# mount /dev/vg_tecmint_extra/tecmint_reduce_test /mnt/tecmint_reduce_test/
掛載文件系統
檢查分區和文件的大小。
# lvdisplay vg_tecmint_extra
這裡,我們可以看到最後的結果,邏輯已經被縮減到10GB。
在本文中,我們已經了解了如何來擴增卷組、邏輯卷以及縮減邏輯卷。在下一部分(第三部分)中,我們將了解如何為邏輯卷做快照並將它恢復到更早的狀態。
via: http://www.tecmint.com/extend-and-reduce-lvms-in-linux/
作者:Babin Lonston 譯者:GOLinux 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive