如何在 Debian 8.6 中调整 LVM 磁盘大小而不丢失数据

如何在 Debian 8.6 中调整 LVM 磁盘大小而不丢失数据

我需要将第一个磁盘 (/dev/xvda) 的大小从 40 GB 调整为 80 GB。我正在使用 XEN 虚拟化,并且在 XenCenter 中调整了磁盘大小,但我需要调整其分区大小而不丢失任何数据。虚拟机运行的是 Debian 8.6。

Disk /dev/xvda: 80 GiB, 85 899 345 920 bajtů, 167 772 160 sektorů
Jednotky: sektorů po 1 * 512 = 512 bajtech
Velikost sektoru (logického/fyzického): 512 bajtů / 512 bajtů
Velikost I/O (minimální/optimální): 512 bajtů / 512 bajtů
Typ popisu disku: dos
Identifikátor disku: 0x5a0b8583

Device     Boot  Start      End  Sectors  Size Id Type
/dev/xvda1        2048   499711   497664  243M 83 Linux
/dev/xvda2      501758 83884031 83382274 39,8G  5 Extended
/dev/xvda5      501760 83884031 83382272 39,8G 8e Linux LVM

Disk /dev/xvdb: 64 GiB, 68 719 476 736 bajtů, 134 217 728 sektorů
Jednotky: sektorů po 1 * 512 = 512 bajtech
Velikost sektoru (logického/fyzického): 512 bajtů / 512 bajtů
Velikost I/O (minimální/optimální): 512 bajtů / 512 bajtů
Typ popisu disku: gpt
Identifikátor disku: 0596FDE3-F7B7-46C6-8CE1-03C0B0ADD20A

Device     Start       End   Sectors Size Type
/dev/xvdb1  2048 134217694 134215647  64G Linux filesystem

Disk /dev/mapper/xenhosting--vg-root: 38,1 GiB, 40 907 046 912 bajtů, 79 896 576 sektorů
Jednotky: sektorů po 1 * 512 = 512 bajtech
Velikost sektoru (logického/fyzického): 512 bajtů / 512 bajtů
Velikost I/O (minimální/optimální): 512 bajtů / 512 bajtů
Disk /dev/mapper/xenhosting--vg-swap_1: 1,7 GiB, 1 782 579 200 bajtů, 3 481 600 sektorů
Jednotky: sektorů po 1 * 512 = 512 bajtech
Velikost sektoru (logického/fyzického): 512 bajtů / 512 bajtů
Velikost I/O (minimální/optimální): 512 bajtů / 512 bajtů

答案1

这应该相对容易,因为您使用的是 LVM:

  1. 首先,一如既往,进行备份。
  2. 在 Xen 中调整磁盘大小(您已经完成了此操作;尽管如此,请重新阅读步骤 1)。
  3. 使用parted调整扩展分区的大小(xvda2);运行parted /dev/xvda,然后在 pared 提示符下resizepart 2 -1s将其大小调整为在磁盘末尾结束(顺便说一句:quit将退出 pared)。
  4. 任何一个xvda6(a)使用可用空间创建另一个逻辑分区 ( ),然后:

    1. 重新启动以获取分区表更改
    2. pvcreate /dev/xvda6
    3. vgextend xenhosting-vg /dev/xvda6

    或者(二)

    1. 使用扩展 xvda5resizepart 5 -1s
    2. 重新启动以获取分区表更改
    3. pvresize /dev/xvda5
  5. 最后,如果您想将其添加到根文件系统中,lvextend -r -l +100%FREE /dev/xenhosting-vg/root.选项-r告诉lvextend它调用resize2fs自己。

您没有考虑的另一个选择:

添加另一个虚拟磁盘。如果您可以在 Xen 中执行此操作而无需重新启动来宾,那么您可以完全在线执行此操作(无需任何重新启动)。对新磁盘进行分区xvdc(这不需要重新启动,因为它未被使用),然后继续使用pvcreate& 。vgextend/dev/xvdc1

答案2

我目前正在 ProxMox 上的虚拟机中运行 Devuan Jessie 1.0(稳定版)。我需要扩展的分区已/var/lib安装在/dev/sda5elasticsearch上。由于这对操作系统并不重要,因此我可以在虚拟机启动的情况下完成此操作。我只是确保没有任何使用分区的内容lsof。为了实现这一目标,我执行了以下操作:

  1. 检查分区以确保其不忙:

    lsof /dev/sda5
    
    • 如果您从此命令获得任何输出,则必须确定正在使用该分区的内容并终止该过程。以下是参考。LSOF 命令示例
  2. 卸载分区:

    umount /dev/sda5
    
  3. 奔跑分手

    parted
    
  4. 内部分开:

    resizepart 5 -1s
    
  5. 退出分手:

    quit
    
  6. 检查磁盘:

    e2fsck -f /dev/sda5
    
  7. 扩展磁盘以便操作系统可以看到它:

    resize2fs /dev/sda5
    
  8. 重新安装:

    mount -a. 
    
  9. 检查以确保操作系统能够识别新扩展的驱动器:

    df -h /dev/sda5
    

现在一切都应该顺利进行了。顺便说一句,lvextend抛出了一个错误,所以对我来说,该resize2fs路线是最简单的方法。 HTH。

相关内容