LFCS:如何使用 vgcreate、lvcreate 和 lvextend 命令管理和創建 LVM – 第 11 部分

由於2016年2月2日起生效的LFCS考試要求變更,我們在此新增必要的主題到已發佈的LFCS系列。為了準備這次考試,我們強烈建議您也使用LFCE系列

LFCS: Manage LVM and Create LVM Partition – Part 11

在安裝Linux系統時,最重要的決定之一是為系統文件、用戶目錄和其他內容分配存儲空間的量。如果在這一點上出錯,擴展已用完空間的分區可能會很麻煩且有些風險。

邏輯卷管理(也稱為LVM)已成為大多數(如果不是全部)Linux發行版安裝的默認選項,相較於傳統的分區管理,它具有許多優勢。也許LVM最突出的特點是,它允許對邏輯分卷進行隨意調整(縮小或擴大)而不需要太多麻煩。

LVM的結構包括:

  1. 將一個或多個整個硬盤或分區配置為物理卷(PVs)。
  2. A volume group (VG) is created using one or more physical volumes. You can think of a volume group as a single storage unit.
  3. 然後可以在卷組中創建多個邏輯卷。每個邏輯卷在某種程度上相當於傳統的分區-具有可以隨意調整大小的優勢,正如我們之前提到的。

在本文中,我們將使用每個8 GB的三個磁碟(/dev/sdb/dev/sdc/dev/sdd)來創建三個物理卷。您可以直接在設備上創建PV,也可以首先進行分區。

雖然我們選擇了第一種方法,但如果您決定採用第二種方法(如本系列的第4部分-在Linux中創建分區和文件系統中所解釋的),請確保將每個分區配置為類型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的磁碟:

List LVM Volume Groups

當谈到創建邏輯卷時,必須考慮當前和未來的需求來分配空間。一般來說,根據每個邏輯卷的用途來命名是被認為是好做法的。

例如,讓我們創建兩個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
List Logical Volume

在上面的工作中,我們可以看到LV被創建為存儲設備(請參考LV 路徑行)。在每個邏輯卷可以使用之前,我們需要在它上面創建一個文件系統。

在此我們以ext4作為示例,因為它讓我們既能增大也能減少每個LV的大小(相比之下xfs只允許增大大小):

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

在下一節中,我們將解釋當有需要時如何調整邏輯卷的大小和添加額外的 physicall storage space。

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

現在想像以下情境。你的 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
Resize Reduce Logical Volume and Volume Group

在調整邏輯卷宗大小時,必須包含負号 (-) 或正号 (+),否則你會為 LV 設定固定大小,而不是調整其大小。

有時候,調整邏輯卷宗的大小可能無法滿足你的儲存需求,此时你可能需要購買更多的儲存設備。假設你只需要另外一個磁碟,我們將透過添加我們初始設定中剩餘的 PV(/dev/sdd)來模擬這個情況。

要將 /dev/sdd 加入到 vg00,你可以这样做:

# vgextend vg00 /dev/sdd

如果你在執行上述命令前後运行 `vgdisplay vg00`,你就会看到VG大小的增加。

# vgdisplay vg00
Check Volume Group Disk Size

現在你可以根據需求調整新增加空间的现有LV,或者根據需求創建新的LV。

在開機時及需求時挂载邏輯卷宗

當然,如果我們不實際使用邏輯卷宗,那麼創建它們就没有任何意義!為了更好地標識邏輯卷宗,我們需要找出它的 UUID(一個唯一標識格式化存儲設備的不變屬性)。

要做此事,請使用 blkid 並跟上每個設備的路徑:

# blkid /dev/vg00/vol_projects
# blkid /dev/vg00/vol_backups
Find Logical Volume 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
Mount Logical Volumes on Linux

當實際使用 LV 時,您需要分配正確的 ugo+rwx 權限,如本系列中的 第 8 部分 – 在 Linux 中管理用戶和組 所解釋。

總結

在本文中,我們介紹了 邏輯卷管理,这是一种用于管理存储设备并提供可扩展性的多功能工具。与本系列中第 6 部分 – 在 Linux 中创建和管理 RAID所解釋的 RAID 结合使用时,您可以享有 LVM 提供的可扩展性以及 RAID 提供的冗余性。

在这种设置中,您通常会在 LVM 上找到 RAID,即先配置 RAID,然後在其上配置 LVM。

如果您对本篇文章有任何問題,或者有建議可以改進,欢迎使用下面的评论区與我們聯繫。

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