Linux中國

LFCS 系列第十一講:如何使用命令 vgcreate、lvcreate 和 lvextend 管理和創建 LVM

LFCS:管理 LVM 和創建 LVM 分區

在安裝 Linux 系統的時候要做的最重要的決定之一便是給系統文件、home 目錄等分配空間。在這個地方犯了錯,再要擴大空間不足的分區,那樣既麻煩又有風險。

邏輯卷管理LVM)相較於傳統的分區管理有許多優點,已經成為大多數(如果不能說全部的話) Linux 發行版安裝時的默認選擇。LVM 最大的優點應該是能方便的按照你的意願調整(減小或增大)邏輯分區的大小。

LVM 的組成結構:

  • 把一塊或多塊硬碟或者一個或多個分區配置成物理卷(PV)。
  • 一個用一個或多個物理卷創建出的卷組(VG)。可以把一個卷組想像成一個單獨的存儲單元。
  • 在一個卷組上可以創建多個邏輯卷。每個邏輯卷相當於一個傳統意義上的分區 —— 優點是它的大小可以根據需求重新調整大小,正如之前提到的那樣。

本文,我們將使用三塊 8 GB 的磁碟(/dev/sdb/dev/sdc/dev/sdd)分別創建三個物理卷。你既可以直接在整個設備上創建 PV,也可以先分區在創建。

在這裡我們選擇第一種方式,如果你決定使用第二種(可以參考本系列第四講:創建分區和文件系統)確保每個分區的類型都是 8e

創建物理卷,卷組和邏輯卷

要在 /dev/sdb/dev/sdc/dev/sdd上創建物理卷,運行:

# pvcreate /dev/sdb /dev/sdc /dev/sdd

你可以列出新創建的 PV ,通過:

# pvs

並得到每個 PV 的詳細信息,通過:

# pvdisplay /dev/sdX

X 即 b、c 或 d)

如果沒有輸入 /dev/sdX ,那麼你將得到所有 PV 的信息。

使用 /dev/sdb/dev/sdc創建卷組 ,命名為vg00(在需要時是可以通過添加其他設備來擴展空間的,我們等到說明這點的時候再用,所以暫時先保留/dev/sdd`):

# vgcreate vg00 /dev/sdb /dev/sdc

就像物理卷那樣,你也可以查看卷組的信息,通過:

# vgdisplay vg00

由於 vg00 是由兩個 8 GB 的磁碟組成的,所以它將會顯示成一個 16 GB 的硬碟:

LVM 卷組列表

當談到創建邏輯卷,空間的分配必須考慮到當下和以後的需求。根據每個邏輯卷的用途來命名是一個好的做法。

舉個例子,讓我們創建兩個 LV,命名為 vol_projects10 GB) 和 vol_backups (剩下的空間), 在日後分別用於部署項目文件和系統備份。

參數 -n 用於為 LV 指定名稱,而 -L 用於設定固定的大小,還有 -l (小寫的 L)在 VG 的預留空間中用於指定百分比大小的空間。

# lvcreate -n vol_projects -L 10G vg00
# lvcreate -n vol_backups -l 100%FREE vg00

和之前一樣,你可以查看 LV 的列表和基礎信息,通過:

# lvs

或是查看詳細信息,通過:

# lvdisplay

若要查看單個 LV 的信息,使用 lvdisplay 加上 VGLV 作為參數,如下:

# lvdisplay vg00/vol_projects

邏輯卷列表

如上圖,我們看到 LV 已經被創建成存儲設備了(參考 LV Path 那一行)。在使用每個邏輯卷之前,需要先在上面創建文件系統。

這裡我們拿 ext4 來做舉例,因為對於每個 LV 的大小, ext4 既可以增大又可以減小(相對的 xfs 就只允許增大):

# mkfs.ext4 /dev/vg00/vol_projects
# mkfs.ext4 /dev/vg00/vol_backups

我們將在下一節向大家說明,如何調整邏輯卷的大小並在需要的時候添加額外的外部存儲空間。

調整邏輯卷大小和擴充卷組

現在設想以下場景。vol_backups 中的空間即將用完,而 vol_projects 中還有富餘的空間。由於 LVM 的特性,我們可以輕易的減小後者的大小(比方說 2.5 GB),並將其分配給前者,與此同時調整每個文件系統的大小。

幸運的是這很簡單,只需:

# lvreduce -L -2.5G -r /dev/vg00/vol_projects
# lvextend -l +100%FREE -r /dev/vg00/vol_backups

減小邏輯卷和卷組

在調整邏輯卷的時候,其中包含的減號 (-) 或加號 (+) 是十分重要的。否則 LV 將會被設置成指定的大小,而非調整指定大小。

有些時候,你可能會遭遇那種無法僅靠調整邏輯卷的大小就可以解決的問題,那時你就需要購置額外的存儲設備了,你可能需要再加一塊硬碟。這裡我們將通過添加之前配置時預留的 PV (/dev/sdd),用以模擬這種情況。

想把 /dev/sdd 加到 vg00,執行:

# vgextend vg00 /dev/sdd

如果你在運行上條命令的前後執行 vgdisplay vg00 ,你就會看出 VG 的大小增加了。

# vgdisplay vg00

查看卷組磁碟大小

現在,你可以使用新加的空間,按照你的需求調整現有 LV 的大小,或者創建一個新的 LV。

在啟動和需求時掛載邏輯卷

當然,如果我們不打算實際的使用邏輯卷,那麼創建它們就變得毫無意義了。為了更好的識別邏輯卷,我們需要找出它的 UUID (用於識別一個格式化存儲設備的唯一且不變的屬性)。

要做到這點,可使用 blkid 加每個設備的路徑來實現:

# blkid /dev/vg00/vol_projects
# blkid /dev/vg00/vol_backups

尋找邏輯卷的 UUID

為每個 LV 創建掛載點:

# mkdir /home/projects
# mkdir /home/backups

並在 /etc/fstab 插入相應的條目(確保使用之前獲得的UUID):

UUID=b85df913-580f-461c-844f-546d8cde4646 /home/projects    ext4 defaults 0 0
UUID=e1929239-5087-44b1-9396-53e09db6eb9e /home/backups ext4    defaults 0 0

保存並掛載 LV:

# mount -a
# mount | grep home

掛載邏輯卷

在涉及到 LV 的實際使用時,你還需要按照曾在本系列第八講:管理用戶和用戶組中講解的那樣,為其設置合適的 ugo+rwx

總結

本文介紹了 邏輯卷管理,一個用於管理可擴展存儲設備的多功能工具。與 RAID(曾在本系列講解過的 第六講:組裝分區為RAID設備——創建和管理系統備份)結合使用,你將同時體驗到(LVM 帶來的)可擴展性和(RAID 提供的)冗餘。

在這類的部署中,你通常會在 RAID 上發現 LVM,這就是說,要先配置好 RAID 然後它在上面配置 LVM。

如果你對本問有任何的疑問和建議,可以直接在下方的評論區告訴我們。

via: http://www.tecmint.com/manage-and-create-lvm-parition-using-vgcreate-lvcreate-and-lvextend/

作者:Gabriel Cánepa 譯者:martin2011qi 校對: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中國