我不知道我的同事到底做了什么,但我知道他正在尝试增加 LVM 的大小。现在,执行命令后我可以看到这样的输出lsblk
:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 39G 0 part
│ ├─rhel-root 253:0 0 95G 0 lvm /
│ └─rhel-swap 253:1 0 4G 0 lvm [SWAP]
└─sda3 8:3 0 60G 0 part
└─rhel-root 253:0 0 95G 0 lvm /
可以看到,和rhel-root
下有两个相同的名称,并且都挂载在根目录下。sda2
sda3
/
然而, 的输出df -h
是:
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 9.6M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/rhel-root 35G 28G 7.3G 80% /
/dev/sda1 1014M 285M 730M 29% /boot
tmpfs 783M 8.0K 783M 1% /run/user/42
tmpfs 783M 0 783M 0% /run/user/1001
看起来大小/
还是35G,也就是说没有扩容。
看来我需要合并sda3
,sda2
但我不知道如何解决这个问题。
输出lvs
:
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root rhel -wi-ao---- 94.99g
swap rhel -wi-ao---- 4.00g
输出vgs
:
VG #PV #LV #SN Attr VSize VFree
rhel 2 2 0 wz--n- 98.99g 0
输出pvs
:
PV VG Fmt Attr PSize PFree
/dev/sda2 rhel lvm2 a-- <39.00g 0
/dev/sda3 rhel lvm2 a-- <60.00g 0
输出vgdisplay
:
--- Volume group ---
VG Name rhel
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 9
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 98.99 GiB
PE Size 4.00 MiB
Total PE 25342
Alloc PE / Size 25342 / 98.99 GiB
Free PE / Size 0 / 0
VG UUID tPY1JO-AwK2-ULra-Matz-5VVy-lxWK-CL60ng
答案1
您的同事已成功扩展了rhel-root
LV lvextend
,因此现在它的一部分已打开sda2
,另一部分也已打开sda3
。但LV内的文件系统还没有扩展。
只有一个rhel-root
LV,但lsblk
这里显示它的方式可能有点令人困惑:它显示了 LV 的总大小,显然与每个单独的部分相关。
sda2
和PVsda3
已合并到rhel
VG 中,因此该 VG 内的 LV 的增长可以超出单个 PV 的限制。显然,您的同事希望避免与动态编辑包含根文件系统的分区相关的风险,只是使用新空间创建了一个新分区,并将其作为新的 PV 添加到现有 VG 中。在我看来,这是在可启动磁盘上扩展 VG 的最安全方法:虽然它会给您留下多个分区作为 PV,这可能会损害您的整洁感,但它确实没有其他显着影响。
此时,如果您确实愿意,您仍然可以删除sda3
并扩展sda2
。程序如下:
首先,非常小心地lvreduce
将 LV 缩小root
到原来的样子。您可以使用 LVM 备份文件来/etc/lvm/archive
找出确切的大小,或者您可以使用lvdisplay -m /dev/mapper/rhel-root
查看 PV 上有多少个盘区sda2
,并使用该值。如果您选择这样做,则必须非常小心,不要将 LV 缩小到小于其中文件系统的当前大小:你不想切断文件系统的尾部,哪怕是一点点。
然后使用 删除VGsda3
中现在空的PV ,然后编辑分区表以删除和扩展,使用使系统在磁盘使用时接受新的分区表(如果不可用或无法执行操作,则重新启动job),然后通过扩展PV来扩展VG以占据新的空间。用于重新扩展LV。rhel
vgreduce rhel /dev/sda3
sda3
sda2
partprobe /dev/sda
partprobe
pvresize /dev/sda2
rhel
sda2
lvextend -l +100%FREE /dev/mapper/rhel-root
root
现在你和你的同事处于同样的境地,但没有美观上的不愉快sda3
。
您的同事错过的最后一步实际上是扩展文件系统以利用 LV 增加的容量。根据输出/run
中的存在df -h
以及 VG name rhel
,我假设该系统是 RHEL 7 或更高版本。所以默认的文件系统类型是XFS,这意味着扩展文件系统的命令将是:
fsadm resize /dev/mapper/rhel-root
或者
xfs_growfs /
注意:在执行此操作之前请仔细考虑,因为目前还没有生产质量的工具可以在线或离线缩小 XFS 文件系统。因此,一旦扩展文件系统,您将无法将其缩小到较小的大小。
无论您选择删除sda3
并扩展sda2
,还是保持同事的工作不变,此命令都是相同的。