如何缩小逻辑卷,并将释放的空间重新分配到同一驱动器上的新分区中?

如何缩小逻辑卷,并将释放的空间重新分配到同一驱动器上的新分区中?

我有一个驱动器,sda。它有两个分区:

sda1: /boot
sda2: LVM managed in Volume Group volgrp01

volgrp01 包含以下逻辑卷:

lv_root (30 GB)
lv_swap (8 GB)
lv_scratch (430 GB)

我想要做的是将 lv_scratch 减少到 50 GB,然后将新释放的 380 GB 重新分配到新分区 sda3(然后我将其添加到另一个卷组)。

我附上了我想要的前后图像。我正处于学习 LVM 的过程中,虽然我可以理解在卷组中调整逻辑卷大小的想法,但我不确定如何将该空间重新分配到新分区中。

我正在使用 RHEL6。

在此处输入图片描述

答案1

步骤1: 进行备份。

我知道,大多数人都会跳过这一步,但如果你搞砸了,你所做的更改可能会导致重大数据丢失,而且你正在从互联网上随机陌生人那里获得指导。 对您的数据安全负责。我不负责。

第2步: 缩小文件系统lv_scratch。如果是 ext2/3/4 文件系统,请将其卸载并使用resize2fs;如果是其他文件系统,则需要查找有关调整该类型文件系统大小的文档。

例如:

resize2fs /dev/volgrp01/lv_scratch 50G

完成后(假设您使用的是resize2fs),它会告诉您文件系统的新大小(以字节为单位)。记下该数字,因为您可以在下一步中使用它进行安全检查。

步骤3: 使用 缩小逻辑卷lvreduce

  • 如果想要简单一点,就用lvreduce --size 50G volgrp01/lv_scratch
  • 如果您要格外小心,不要将 LV 缩小到小于其包含的文件系统的大小,请使用检查卷组的物理扩展大小vgdisplay volgrp01,并计算需要多少个物理扩展来容纳文件系统的字节大小(使用 1MB =1048576 字节)。然后使用选项--extents而不是 来指定该数字--size 50G

或者,您可以跳过步骤 1,而使用lvreduce-r选项自动调整文件系统大小。这可能更容易,但我没有亲身体验过,不知道它有多可靠。

此时我建议运行fsck -f一下/dev/volgrp01/vg_scratch以确保它完好无损。如果您收到任何有关“访问超出设备范围”的错误,则意味着您将 LV 缩小了太多,需要lvextend先缩小它才能继续。

步骤4: 使用 缩小物理体积pvresize

pvresize --setphysicalvolumesize 88G /dev/sda2

您不需要在此处进行额外的安全检查,因为系统pvresize会拒绝将物理卷缩小到对于您现有的逻辑卷来说太小的大小。但是,如果您的其他 LV 的大小不是 1GB 的整数倍,则 88G 可能太小,您可能需要使用其他值。

步骤5:sda2使用 缩小分区fdisk

运行fdisk /dev/sda,并在其提示符下运行p以查看现有分区。记下分区的起始扇区号sda2。然后删除sda2分区(这不会触及实际数据,只会删除其开始和结束位置的记录),并sda2使用相同的起始扇区(这很重要)大小为 88G。分区的类型代码应为8e“Linux LVM”。

如果您想要格外小心 — — 我建议您这样做,特别是如果您必须指定与之前不同的大小pvresize— — 检查物理卷的 PE 大小和总 PE pvdisplay /dev/sda2,然后将它们相乘以找到物理卷的字节大小(再次使用 1MB = 1048576 字节)。然后从新sda2分区的结束扇区号中减去其起始扇区号,加 1 以便计算最后一个扇区,然后乘以磁盘的扇区大小(应该是 512 或 4096 字节)。确保两个结果匹配。

现在创建新sda3分区,保存更改并退出fdisk。如果您收到需要重新启动才能使更改生效的消息,请重新启动。

答案2

不确定它是否会起作用 - 我只增加了 pv。无论如何,除非您有可读的备份,否则不要在有价值的数据上尝试它。

  1. 使用 FS 特定工具(如果有)调整 lv_scratch 上的 FS 大小

  2. lvresize -L 50G /dev/volgrp01/lv_scratch

  3. pvresize --setphysicalvolumesize 88G /dev/sda2

  4. 调整 /dev/sda2 的大小(不确定是否可以使用 parted/cfdisk 等,可能需要其他分区编辑器)

  5. 创建新的分区、新的 pv、创建卷组等。

调整大小时请仔细检查所有数字,因为如果您将逻辑卷或物理卷的缩小幅度超过 FS,则最终可能会导致 FS 损坏和数据丢失,通常最好留下一些未使用的空间以免造成混淆。

相关内容