如何在没有空闲分区的情况下扩展lvm+xfs

如何在没有空闲分区的情况下扩展lvm+xfs

我被困在一个带有 1 个磁盘的 centos 7 虚拟机上,该磁盘创建了 4 个主分区......现在我需要添加更多空间:

目前看起来像这样 - 简化:

mount
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  175G   14G  162G   8% /

lsblk
sda               8:0    0  250G  0 disk
├─sda1            8:1    0  500M  0 part /boot
├─sda2            8:2    0 59.5G  0 part
│ └─centos-root 253:0    0  175G  0 lvm  /
├─sda3            8:3    0   60G  0 part
│ └─centos-root 253:0    0  175G  0 lvm  /
└─sda4            8:4    0   80G  0 part
  └─centos-root 253:0    0  175G  0 lvm  /

磁盘/dev/sda已扩容,有50GB空闲且未分区。通常,我会执行以下操作之一:

  • 使用可用空间创建一个新分区并将其添加到centos-rootLV。很遗憾,sda1-4都是主分区,所以我实际上无法再创建了。

  • 用于resize2fs收缩文件系统,然后是lvreduceLV。但这个文件系统是xfs,不能缩减。

我还尝试创建一个新的虚拟磁盘/dev/sdb,并运行以下命令来清除其中一个分区:

pvcreate /dev/sdb
vgextend centos /dev/sdb
pvmove /dev/sda4 /dev/sdb
  /dev/sda4: Moved: 0.00%
  /dev/sda4: Moved: 3.06%
  [kernel panic] ????

但这实际上使整个虚拟机崩溃了……现在我陷入了困境。如何清理至少其中一个分区,或者至少添加我已经扩展的空间?

答案1

看来您一开始就将其sda2作为唯一的物理卷。后来,您添加了sda3, then sda4(我不明白您为什么这样做,因为您的根文件系统仅使用 14GB)。现在您的磁盘有sda四个分区,但如果我计算正确的话,仍然有大约 50GB 的可用空间。

LVM 的存在是为了自动化存储空间管理并使其更加灵活。但是,您可以手动管理空间sda并仍然使用 LVM。这没有多大意义。您应该sda2从一开始就提供整个剩余空间,然后使用 LVM 来管理该空间,而不是添加分区。

我不知道/dev/sdb是什么以及为什么您的系统在pvmove.我不确定您的卷组现在处于什么状态。假设它仍然可以,我会简单地扩展sda4.使用正确版本的parted,这是一个简单的命令resizepart。看Red Hat 关于 parted 的博客条目

不幸的是,某些版本的 Centos 7 包含一个parted没有resizepart.如果这是您的情况,请尝试更新parted,或使用fdisk删除然后重新创建分区。或者使用gparted 现场 DVD

如果您使用上面的 Live DVD,我想您已经完成了,因为它还涉及 LVM 和文件系统。如果没有,pvresize /dev/sda4需要通知 LVM 新的大小。

理想情况下,您应该将三个 PV 合并sda为一个,但这需要复制数据,例如使用pvmove.由于我不明白的原因,您的情况失败了。

答案2

本文帮助我安装额外的 SSD 驱动器并使用 LVM 添加它。

文章发表在 Fedora 杂志上,与 CentOS 一样稳定。

使用 LVM 向 Fedora 系统添加存储

相关内容