我遇到了一个非常具体的问题。我在虚拟机上的单个物理卷上运行了一个 LVM。逻辑卷的大小约为 150GB,我希望将其扩展到 250GB。
我能够从虚拟机管理器扩展物理卷,但物理大小的变化并未反映在我的 LVM 逻辑卷上。
我没有直接找到任何答案,而是通过一些实验找到了解决方案。我想在下面的答案中分享它。
答案1
LVM 图示例:
LVM 的理念是将逻辑卷从物理卷中抽象出来,这样多个物理卷在用户看来就像一个连续的逻辑卷。
根文件系统位于 ,/dev/file-server-vg/root
而交换位于/dev/file-server-vg/swap
。我们的想法是,实际上我们可以在 PV 层中拥有多个真实硬盘,并且它们都可以添加到卷组中,这将允许它们全部作为单个连续的文件系统出现在系统中/dev/file-server-vg/root
。
在这个问题中,我一直将其用作/dev/file-server-vg/root
文件服务器,但它空间不足。幸运的是,这个系统在虚拟机上,我能够/dev/sda
使用虚拟机管理器扩展物理卷。但是,大小的增加不会自动传递到/dev/file-server-vg/root
文件系统。我们需要执行一些简单的命令才能使其正常工作。
开始之前,使用pvdisplay
查看存在哪些物理卷。这将列出所有物理卷及其所属的卷组。在本例中,我们只有一个物理卷/dev/sda3
。
--- Physical volume ---
PV Name /dev/sda3
VG Name file-server-vg
PV Size 155.26 GiB / not usable 0
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 65346
Free PE 0
Allocated PE 65346
PV UUID 0EXhc4-EoHZ-b79R-ncSe-SWXI-ztPe-Fsc7zk
sudo parted
可以使用然后列出当前分区表print
。
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 boot
2 538MB 794MB 256MB ext2
3 794MB 167GB 166GB lvm
在此示例中,我们希望将容量从 155.56GiB 扩展到 255.56GiB。使用虚拟机管理器,我们通常可以扩展磁盘空间,在本例中,我们将扩展 100GiB。
扩容成功后,生成的分区表(使用print free
)将如下所示。请注意,“可用空间”显示 108GB (~100GiB)。
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 boot
2 538MB 794MB 256MB ext2
3 794MB 275GB 166GB lvm
167GB 275GB 108GB Free Space
扩展逻辑卷有两种方法:创建一个新的分区并将其添加到卷组,或者增加相同的分区。
我认为,在可能的情况下,第二种方法更简洁。当然,如果/dev/sda3
是物理硬盘,并且你又买了一块硬盘来扩展空间,那么使用第一种方法是合乎逻辑的。
在 parted 中输入resize 3 794MB 275GB
将调整分区 3 的大小以占用所有可用空间,差不多:
Number Start End Size File system Name Flags
17.4kB 1049kB 1031kB Free Space
1 1049kB 538MB 537MB fat32 boot
2 538MB 794MB 256MB ext2
3 794MB 275GB 274GB lvm
275GB 275GB 1032kB Free Space
这已经足够好了,只有 1MB 没有被使用。
接下来我们将重新启动机器。这是刷新分区表所必需的。
现在你会看到,物理体积已经增大了,pvdisplay
--- Physical volume ---
PV Name /dev/sda3
VG Name file-server-vg
PV Size 255.26 GiB / not usable 0
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 65346
Free PE 0
Allocated PE 65346
PV UUID 0EXhc4-EoHZ-b79R-ncSe-SWXI-ztPe-Fsc7zk
大小的增加将自动传递给卷组,使用时vgdisplay
您将获得以下内容。请注意,vgextend
它实际上并没有像您想象的那样做。它不会占用可用空间,而是用于向特定卷组添加新的物理卷。
--- Volume group ---
VG Name file-server-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 255.26 GiB
PE Size 4.00 MiB
Total PE 65346
Alloc PE / Size 65346 / 255.26 GiB
Free PE / Size 0 / 0
VG UUID NwwIgT-W0SH-aeTe-d078-hcxx-XZ6W-QfnSA0
逻辑卷不会自动增加大小。这实际上是有道理的,因为计算机不知道您要增加哪个逻辑卷的大小,或者您可能想使用卷组中的额外空间创建一个新的逻辑卷。因此,您lvdisplay
将看到下表,显示/dev/file-server-vg/root
只有 153.26GiB,但不用担心,我们非常接近。
--- Logical volume ---
LV Path /dev/file-server-vg/root
LV Name root
VG Name file-server-vg
LV UUID l6qvYZ-AmYw-tdgi-2jUu-XNB2-gecQ-6fDPt8
LV Write Access read/write
LV Creation host, time file-server, 2014-07-10 14:54:58 +1000
LV Status available
# open 1
LV Size 153.26 GiB
Current LE 64834
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Path /dev/file-server-vg/swap_1
LV Name swap_1
VG Name file-server-vg
LV UUID OohMkN-rGLa-fM4M-6he2-MbM9-BBc3-Ck2Hs5
LV Write Access read/write
LV Creation host, time file-server, 2014-07-10 14:54:58 +1000
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1
增加逻辑卷的方法是使用lvextend -L +100GB /dev/file-server-vg/root
之后使用以下命令扩展文件系统resize2fs /dev/file-server-vg/root
您已完成。您可以lvdisplay
检查/dev/file-server-vg/root
卷是否已扩展到 253.26GiB
--- Logical volume ---
LV Path /dev/file-server-vg/root
LV Name root
VG Name file-server-vg
LV UUID l6qvYZ-AmYw-tdgi-2jUu-XNB2-gecQ-6fDPt8
LV Write Access read/write
LV Creation host, time file-server, 2014-07-10 14:54:58 +1000
LV Status available
# open 1
LV Size 253.26 GiB
Current LE 64834
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Path /dev/file-server-vg/swap_1
LV Name swap_1
VG Name file-server-vg
LV UUID OohMkN-rGLa-fM4M-6he2-MbM9-BBc3-Ck2Hs5
LV Write Access read/write
LV Creation host, time file-server, 2014-07-10 14:54:58 +1000
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1