如何在 Linux LVM 中新增新磁碟以增加其大小?


本文介紹如何將新磁碟新增到 LVM(邏輯卷管理器),LVM 相對於普通磁碟分割槽最大的優勢在於它支援“動態分割槽”;您可以根據需要動態建立和調整(擴充套件或縮小)LVM 卷。在 LVM 邏輯卷中沒有物理磁碟邊界的限制,因此您可以建立跨越多個較小物理磁碟的大型 LVM 卷。這種靈活的分割槽允許您更有效地管理儲存空間,因為磁碟使用情況會隨著時間的推移而發生變化。

如果您想將新磁碟新增到現有的 LVM 卷以擴充套件其大小,您可以輕鬆地做到這一點,以下是操作步驟:

配置

我們需要以 root 使用者身份登入,並執行 **fdisk** 以檢查系統上是否檢測到已連線的新磁碟。

# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c664e
Device Boot    Start    End    Blocks    Id    System
/dev/sda1 *       1       64    512000    83    Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2       64       2611    20458496 8e Linux LVM

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdc: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/VolGroup-lv_root: 18.8 GB, 18798870528 bytes
255 heads, 63 sectors/track, 2285 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/VolGroup-lv_swap: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

在上述命令中,我們發現了 3 個磁碟(/dev/sda、/dev/sdb、/dev/sdc)。第一個磁碟(/dev/sda)由 LVM 使用,顯示分割槽,而其他兩個(/dev/sdb 和 /dev/sdc)未新增到 LVM,並且磁碟上沒有任何分割槽。

使用“lvs”命令檢查 LVM 卷組和邏輯卷的可用性。

# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_root VolGroup -wi-ao---- 17.51g
lv_swap VolGroup -wi-ao---- 2.00g

在示例中,存在一個卷組(“lv”),並且在這個卷組中建立了兩個邏輯卷(“root”和“swap”)。

# df
Filesystem    1K-blocks    Used    Available    Use%    Mounted on
/dev/mapper/VolGroup-lv_root
            17938864    1997688    15023264    12% /
tmpfs          502384    0          502384    0%       /dev/shm
/dev/sda1       487652 41991          420061 10%       /boot

根據 df 輸出,邏輯卷“root”由裝置對映器對映到 /dev/mapper/VolGroup-lv-root。

使用此資訊,我將在後續步驟中向您展示如何將兩個磁碟 /dev/sdb 和 /dev/sdc 新增到“root”邏輯卷。

在新磁碟上建立分割槽

第一步是在將新磁碟新增到 LVM 之前,在每個新磁碟上建立一個分割槽。僅當您希望將磁碟的一部分分配給 LVM 時,才需要執行此步驟。如果您想將整個磁碟新增到 LVM,則無需建立分割槽,可以跳過此步驟。

在新磁碟上建立物理卷

接下來,在每個新磁碟分割槽(/dev/sdb1 和 /dev/sdc1)上建立一個物理卷。

# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created

像這樣將第三個磁碟新增到物理卷。

# pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created

使用 lvmdiskscan 驗證物理卷是否已成功建立。

#lvmdiskscan -l
/dev/ram0             [ 16.00 MiB]
/dev/root             [ 17.51 GiB]
/dev/ram1             [ 16.00 MiB]
/dev/sda1             [ 500.00 MiB]
/dev/VolGroup/lv_swap [ 2.00 GiB]
/dev/ram2             [ 16.00 MiB]
/dev/sda2             [ 19.51 GiB] LVM physical volume
/dev/sdb              [ 20.00 GiB] LVM physical volume
/dev/sdc              [ 20.00 GiB] LVM physical volume
2 disks
2 LVM physical volume whole disks
1 LVM physical volume

擴充套件現有邏輯卷

接下來,找到包含要擴充套件的邏輯卷的卷組,並透過向其新增新建立的物理捲來擴充套件該組。

在我們的示例中,邏輯卷“root”屬於“VolGroup-lv”卷組。讓我們新增 /dev/sdb,請使用以下命令代替。

# vgextend yoda-vg /dev/sdb

卷組“VolGroup”已成功擴充套件。要驗證卷是否已新增,請檢查以下內容:

# vgs
VG       #PV #LV #SN Attr VSize    VFree
VolGroup 2    2    0 wz--n- 39.50g 20.00g

# vgextend VolGroup /dev/sdc
Volume group "VolGroup" successfully extended

# vgs
VG       #PV    #LV #SN Attr    VSize VFree
VolGroup   3      2 0    wz--n- 59.50g 39.99g

給定已調整大小的卷組,現在擴充套件“root”邏輯卷本身。

# lvextend -l+100%FREE /dev/VolGroup/lv_root
Size of logical volume VolGroup/lv_root changed from 17.51 GiB (4482 extents) to 57.50 GiB (14720 extents).
Logical volume lv_root successfully resized

上述命令指示“root”邏輯卷使用卷組中所有可用的額外空閒空間。請注意,/dev/VolGroup/lv_root 是“root”卷對映到的裝置。

最後一步是擴大“root”卷內部建立的檔案系統。否則,檔案系統將無法識別卷中的額外空閒空間。

# resize2fs -p /dev/VolGroup/lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/VolGroup/lv_root is mounted on /; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 4
Performing an on-line resize of /dev/VolGroup/lv_root to 15073280 (4k) blocks.
The filesystem on /dev/VolGroup/lv_root is now 15073280 blocks long.

**resize2fs** 命令支援調整 ext2/ext3/ext4 檔案系統的大小。它還支援線上調整大小,以防您擴充套件檔案系統。無需解除安裝檔案系統。

此時,檔案系統應擴充套件到佔用已調整大小的“root”邏輯卷的 100%。

如果我們完成了以上步驟,並添加了磁碟以增加捲以擴充套件現有的 LVM,我們可以增加空間而不會丟失資料,這將有助於管理員在沒有任何停機時間的情況下管理他們的磁碟空間。

更新於:2020年1月27日

8K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告