Linux中國

在Linux中擴展/縮減LVM(第二部分)

前置需求

什麼時候我們需要縮減卷?

或許我們需要創建一個獨立的分區用於其它用途,或者我們需要擴展任何空間低的分區。遇到這種情況時,使用 LVM我們可以很容易地縮減大尺寸的分區,以及擴展空間低的分區,只要按下面幾個簡易的步驟來即可。

我的伺服器設置 —— 需求

  • 操作系統 – 安裝有LVM的CentOS 6.5
  • 伺服器IP – 192.168.0.200

如何擴展卷組以及縮減邏輯卷

擴展邏輯卷

目前,我們已經有一個PV,VG和2個LV。讓我們用下面的命令來列出它們。

# pvs
# vgs
# lvs

Logical Volume Extending

邏輯卷擴展

在物理卷和卷組中沒有空閑空間可用了,所以,現在我們不能擴展邏輯卷的大小。要擴展,我們需要添加一個物理卷(PV),然後通過擴展vg來擴展卷組,這樣我們就會得到足夠大的空間來擴展邏輯卷大小了。所以,首先我們應該去添加一個物理卷。

要添加一個新PV,我們必須使用fdisk來創建一個LVM分區。

# fdisk -cu /dev/sda
  • 選擇n來創建新分區。
  • 選擇p來創建主分區。
  • 選擇我們需要創建的分區號。
  • 如果有其它可用磁碟,請按1
  • 使用t來修改分區類型。
  • 輸入8e來將分區類型修改為Linux LVM。
  • 使用p來列印創建的分區(這裡我們沒有使用該選項)。
  • w寫入修改。

完成後重啟系統。

Create LVM Partition

創建LVM分區

使用fdisk列出並檢查我們創建的分區。

# fdisk -l /dev/sda

Verify LVM Partition

驗證LVM分區

接下來,使用下列命令來創建新PV(物理卷)。

# pvcreate /dev/sda1

使用下面的命令來驗證pv。

# pvs

Create Physical Volume

創建物理卷

擴展卷組

添加該pv到vg_tecmint卷組來擴展卷組的大小,以獲取更多空間來擴展lv

# vgextend vg_tecmint /dev/sda1

讓我們檢查現在正在使用的卷組的大小。

# vgs

Extend Volume Group

擴展卷組

我們甚至可以看到哪個PV用於創建使用中的特定卷組。

# pvscan

Check Volume Group

檢查卷組

這裡,我們可以看到卷組所處的物理卷。我們已經添加了一個pv,而且它完全空著。在擴展邏輯卷之前,讓我們先看看我們所擁有的各個卷組的大小。

Check All Logical Volume

檢查所有邏輯卷

  • LogVol00用於Swap。
  • LogVol01用於/。
  • 現在我們有16.50GB大小的空間用於/(root)。
  • 當前有4226物理擴展(PE)可用。

現在,我們打算去擴展/分區LogVol01。在擴展後,我們可以像上面那樣列出它的大小以確認。我們能可以使用GB或PE來擴展,這一點我已經在LVM第一部分解釋過了,這裡我使用PE來擴展。

要獲取可用的物理擴展大小,運行以下命令。

# vgdisplay

Check Available Physical Size

檢查可用的物理擴展

總共有4607空閑PE可用,亦即有18GB空間空間可用。因此,我們可以將我們的邏輯卷擴展到18GB這麼大。讓我們使用PE大小來擴展。

# lvextend -l +4607 /dev/vg_tecmint/LogVol01

使用+來添加更多空間。在擴展後,我們需要改變文件系統大小,使用以下命令。

# resize2fs /dev/vg_tecmint/LogVol01

Expand Logical Volume 擴展邏輯卷

  • 用來使用物理擴展擴展邏輯卷的命令。
  • 這裡我們可以看到它從16.51GB擴展到了34GB。
  • 如果文件系統已被掛載並處於使用中,改變文件系統大小。
  • 要擴展邏輯卷,我們不需要卸載文件系統

現在,讓我們看看當前使用的改變大小後的邏輯卷。

# lvdisplay

Resize Logical Volume

改變邏輯卷大小

  • LogVol01用於擴展的卷 /。
  • 擴展後,從16.50GB上升到了34.50GB。
  • C當前擴展,在擴展前有4226,我們已經添加了4607個擴展,因此現在有8833。

現在,如果我們檢查可用的vg的話,空閑PE將會是0。

# vgdisplay

查看擴展的結果。

# pvs
# vgs
# lvs

Verify Resize Partition

驗證分區大小改變

  • 添加的新物理卷。
  • 卷組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

Reduce Logical Volume

縮減邏輯卷

這裡,我們可以看到文件系統信息。

# df -h

Check File System Size

檢查文件系統大小

  • 卷大小是18GB。
  • 它已經使用了3.9GB。
  • 可用空間是13GB。

首先,卸載掛載點。

# umount -v /mnt/tecmint_reduce_test/

Unmount Parition

卸載分區

然後,使用以下命令來檢查文件系統錯誤。

# e2fsck -ff /dev/vg_tecmint_extra/tecmint_reduce_test

Scan Parition for Errors

掃描分區錯誤

注意:必須通過所有文件系統檢查的5個步驟,若未完全通過,則你的文件系統可能存在問題。

接下來,縮減文件系統。

# resize2fs /dev/vg_tecmint_extra/tecmint_reduce_test 8GB

Reduce File System

縮減文件系統

使用GB來縮減邏輯卷。

# lvreduce -L -8G /dev/vg_tecmint_extra/tecmint_reduce_test

Reduce Logical Partition

縮減邏輯分區

要使用PE來縮減邏輯卷,我們需要知道默認PE大小和卷組的總PE大小,以進行一次小小的計算來得出準確的縮減大小。

# lvdisplay vg_tecmint_extra

這裡,我們需要使用bc命令來做一些小計算來獲得10GB的PE大小。

1024MB x 10GB = 10240MB or 10GB

10240MB / 4PE = 2048PE

CTRL+D來退出BC。

Calculate PE Size

計算PE大小

使用PE來縮減大小。

# lvreduce -l -2048 /dev/vg_tecmint_extra/tecmint_reduce_test

Reduce Size Using PE

使用PE來縮減大小

將文件系統大小調整回去。在這一步中,如果發生任何錯誤,這就意味著我們已經將文件系統搞亂了。

# resize2fs /dev/vg_tecmint_extra/tecmint_reduce_test

Resize File System

將文件系統掛載回同樣的掛載點。

# mount /dev/vg_tecmint_extra/tecmint_reduce_test /mnt/tecmint_reduce_test/

Mount File System

掛載文件系統

檢查分區和文件的大小。

# lvdisplay vg_tecmint_extra

這裡,我們可以看到最後的結果,邏輯已經被縮減到10GB。

Verify Logical Volume Size

在本文中,我們已經了解了如何來擴增卷組、邏輯卷以及縮減邏輯卷。在下一部分(第三部分)中,我們將了解如何為邏輯卷做快照並將它恢復到更早的狀態。

via: http://www.tecmint.com/extend-and-reduce-lvms-in-linux/

作者:Babin Lonston 譯者:GOLinux 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國