如何在 VMWare ESXi 中调整 Fedora 客户虚拟机的磁盘大小

如何在 VMWare ESXi 中调整 Fedora 客户虚拟机的磁盘大小

如何调整(特别是增加)在 VMWare ESXi 4.1 下运行的 Fedora 客户 VM 的磁盘大小?

我有一台 Fedora 16 VM,磁盘为 lvm2 格式,我使用 vSphere 客户端将其磁盘大小从 50GB 增加到大约 250GB。我重新启动了客户机,它使用 正确显示了此大小fdisk -l /dev/sda。但是,df -H仍然显示旧大小。

我找到了一些知识库文章解释了如何调整某些 Linux 版本的分区大小,但没有介绍如何调整带有 ext4 的 Fedora 分区大小。该文章似乎暗示我必须创建一个全新的分区,而不能简单地扩展现有分区。使用 Gparted 还阻止我简单地调整现有分区的大小。这在 Linux 下不可能做到吗?

编辑:事实证明驱动器被格式化为 LVM2,显然大多数 Linux 工具(例如 GParted)都不支持。

编辑:我需要调整大小的逻辑卷中的分区是根分区。有没有办法在没有 LiveCD 的情况下做到这一点?

答案1

这是我为内部使用而编写的一份文档的剪切粘贴,尽管它可能过度回答了你的问题,但我想把它放在这里,以防它对你或其他人有用。

  1. 以 root 身份登录到机器,或者sudo输入以下每个命令fdisk –l,您应该会看到类似这样的内容;

    Disk /dev/sda: 21.1 GB, 21xxxxxxxxx bytes
    255 heads, 63 sectors/track, 5221 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          13      104391   83  Linux
    /dev/sda2              14        2610    20860402+  8e  Linux LVM
    

    在这种情况下,我改变了值,但正如您所看到的,这台机器有一个~20GB 的根虚拟磁盘,其中有两个分区,sda1 和 sda2,sda2 是我们的第一个 LVM“物理卷”,看看 LVM 如何使用分区类型“8e”。

  2. 现在输入pvdisplay,您将看到第一个 PV(sda2)的部分,如下所示;

      --- Physical volume ---
    PV Name               /dev/sda2
    VG Name               rootvg
    PV Size               19.89 GB / not usable 19.30 MB
    Allocatable           yes (but full)
    PE Size (KByte)       32768
    Total PE              636
    Free PE               0
    Allocated PE          636
    PV UUID               PgwRdY-EvCC-b5lO-Qrnx-tkrd-m16k-eQ9beC
    

    这表明第二个分区(sda2)被映射到名为“rootvg”的“卷组”。

  3. 现在我们可以使用常用的 vSphere VSClient 增加虚拟磁盘的大小,方法是选择虚拟机,选择“编辑设置”,然后选择“硬盘 1”。然后,您可以增加“已配置大小”数字(只要没有快照),然后选择“确定”。这将需要几秒钟才能完成。

  4. 如果你随后切换回 Linux VM 并输入

    echo "- - -" > /sys/class/scsi_host/hostX/scan
    

    其中 X 字符可能为零,它将执行 SCSI 总线重新扫描,然后运行fdisk –l,您应该会看到类似的内容;

    Disk /dev/sda: 42.2 GB, 42xxxxxxxxx bytes
    255 heads, 63 sectors/track, 5221 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          13      104391   83  Linux
    /dev/sda2              14        2610    20860402+  8e  Linux LVM
    

    您会看到磁盘大小已经增加,在本例中从~20GB 增加到~40GB,但分区表保持不变。

  5. 我们现在需要创建一个新的 LVM 分区,输入parted,您应该会看到类似这样的内容;

    GNU Parted 1.8.1
    Using /dev/sda
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted)
    

    现在您需要为额外的新空间创建一个新的分区,输入“p”来查看当前分区表,例如:

    Model: VMware Virtual disk (scsi)
    Disk /dev/sda: 42.9GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos
    
    Number  Start   End     Size    Type     File system  Flags
     1      32.3kB  107MB   107MB   primary  ext3         boot
     2      107MB   21.5GB  21.4GB  primary               lvm
    

    然后输入mkpart,然后选择“p”表示“Primary”,对于文件系统类型输入“ext3”,对于开始输入一个略高于上面列出的两个“大小”组合的数字(即 107MB + 21.4GB,所以说 21.6GB),对于结束输入磁盘的大小(即在本例中为 42.9GB)。按下回车键后,它将创建这个新的主分区,输入“p”以显示新的分区表,您应该会看到类似的内容;

    Model: VMware Virtual disk (scsi)
    Disk /dev/sda: 42.9GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos
    
    Number  Start   End     Size    Type     File system  Flags
     1      32.3kB  107MB   107MB   primary  ext3         boot
     2      107MB   21.5GB  21.4GB  primary               lvm
     3      21.5GB  42.9GB  21.5GB  primary               ext3
    

    您会看到新分区在前两个分区之后开始并填充可用空间,不幸的是我们必须将其设置为“ext3”类型,所以让我们更改它。

  6. 输入“t”,然后输入分区号(在我们的例子中为 3,因为它是第三个分区),然后在“十六进制代码”中输入“8e”——完成此操作后再次输入“p”,您应该会看到它变为“Linux LVM”;

    Disk /dev/sda: 42.9 GB, 42949672960 bytes
    ads, 63 sectors/track, 5221 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    
    Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        1          13      104391   83  Linux
    /dev/sda2           14        2610    20860402+  8e  Linux LVM
    /dev/sda3         2611        5221    20972857+  8e  Linux LVM
    
  7. 现在我们需要在这个新分区中创建一个新的 LVM“物理卷”,输入pvcreate /dev/sda3,这将创建一个名为 /dev/sda3 的新 LVM PV,输入pvdisplay以检查;

    --- Physical volume ---
    PV Name               /dev/sda3
    VG Name              
    PV Size               20.00 GB / not usable 1.31 MB
    Allocatable           no
    PE Size (KByte)       0
    Total PE              0
    Free PE               0
    Allocated PE          0
    PV UUID               gpYPUv-XdeL-TxKJ-GYCa-iWcy-9bG6-tfZtSh
    

    您应该会看到与上面类似的内容。

  8. 现在我们需要扩展‘rootvg 卷组’,或者为非根‘卷组’创建一个新的,输入vgdisplay列出所有‘卷组’,这里有一个例子;

    --- Volume group ---
    VG Name               rootvg
    System ID
    Format                lvm2
    Metadata Areas        2
    Metadata Sequence No  19
    VG Access             read/write
    VG Status             resizable
    MAX LV                0
    Cur LV                8
    Open LV               8
    Max PV                0
    Cur PV                2
    Act PV                2
    VG Size               21.3 GB
    PE Size               32.00 MB
    Total PE              1276
    Alloc PE / Size       846 / 26.44 GB
    Free  PE / Size       430 / 13.44 GB
    VG UUID               tGM4ja-k6es-la0H-LcX6-1FMY-6p2g-SRYtfY
    
    • 如果您想要扩展“rootvg 卷组”类型vgextend rootvg /dev/sda3,按下回车键后您将看到一条消息,提示“卷组”已扩展。

    • 如果您想创建一个新的“卷组”,您将需要使用该vgcreate命令 - 最好打电话给我寻求帮助。

    一旦扩展,vgdisplay再次进入即可看到“rootvg”“卷组”确实已扩展,例如这里;

    --- Volume group ---
    VG Name               rootvg
    System ID
    Format                lvm2
    Metadata Areas        2
    Metadata Sequence No  19
    VG Access             read/write
    VG Status             resizable
    MAX LV                0
    Cur LV                8
    Open LV               8
    Max PV                0
    Cur PV                2
    Act PV                2
    VG Size               39.88 GB
    PE Size               32.00 MB
    Total PE              1276
    Alloc PE / Size       846 / 26.44 GB
    Free  PE / Size       430 / 13.44 GB
    VG UUID               tGM4ja-k6es-la0H-LcX6-1FMY-6p2g-SRYtfY
    

    您可以看到“VG Size”符合预期。

  9. 现在我们需要扩展“逻辑卷”,输入lvdisplay以显示我们的“逻辑卷”,您将看到类似的内容;

    --- Logical volume ---
    LV Name                /dev/rootvg/var
    VG Name                rootvg
    LV UUID                NOP1jF-09Xt-LkX5-ai4w-Srqb-xGka-nYbI2J
    LV Write Access        read/write
    LV Status              available
    # open                 1
    LV Size                3.00 GB
    Current LE             320
    Segments               3
    Allocation             inherit
    Read ahead sectors     auto
    currently set to       256
    Block device           253:2
    

    如果我们要将 /var 文件系统从 3GB 扩展到 10GB,那么输入lvextend –L 10G /dev/rootvg/var,现在再次输入lvdisplay,您会看到“逻辑卷”已经增长到 10GB;

    --- Logical volume ---
    LV Name                /dev/rootvg/var
    VG Name                rootvg
    LV UUID                NOP1jF-09Xt-LkX5-ai4w-Srqb-xGka-nYbI2J
    LV Write Access        read/write
    LV Status              available
    # open                 1
    LV Size                10.00 GB
    Current LE             320
    Segments               3
    Allocation             inherit
    Read ahead sectors     auto
    currently set to     256
    Block device           253:2
    
  10. 现在我们需要做的最后一件事是扩大实际的文件系统,顺便说一下,这不必使用所有新添加的空间。输入df –h以显示当前文件系统,以下是示例;

    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/rootvg-root
                          2.0G  1.4G  495M  74% /
    /dev/mapper/rootvg-home
                          248M  124M  113M  53% /home
    /dev/mapper/rootvg-var
                          3.0G  1.1G  1.8G  30% /var
    /dev/mapper/rootvg-usr
                          3.0G  936M  1.9G  34% /usr
    /dev/mapper/rootvg-opt
                          3.0G  811M  2.0G  29% /opt
    

    如果我们想将 /var 文件系统从 3GB 扩展到 10GB,则输入resize2fs /dev/mapper/rootvg-var(在 CentOS 上可能为xfs_growfs /dev/mapper/rootvg-var,或者根据文件系统的类型输入类似命令)。按下回车键时,实际文件系统将增长,这可能需要一些时间,df –h完成后输入以检查。

    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/rootvg-root
                          2.0G  1.4G  495M  74% /
    /dev/mapper/rootvg-home
                          248M  124M  113M  53% /home
    /dev/mapper/rootvg-var
                          9.88G  1.1G  8.2G  12% /var
    /dev/mapper/rootvg-usr
                          3.0G  936M  1.9G  34% /usr
    /dev/mapper/rootvg-opt
                          3.0G  811M  2.0G  29% /opt
    

你现在完成了!

答案2

在 lvextend 之前执行以下步骤

  • #pvcreate /dev/sda3(创建一个新的物理卷,如果无法创建,那么可能是在创建分区后没有重新启动)

  • #pvdisplay(检查您是否已创建新的物理卷)

  • #vgcreate 卷组 /dev/sda3(将 VolGroup 分配给新的物理卷)

  • #lvdisplay(获取要扩展的分区的逻辑路径名)

  • #lvcreate -LxxGB -n root_new VolGroup(分配逻辑大小并创建新的逻辑卷)

  • #lvextend /dev/mapper/VolGroup-lv_root /dev/sda3(最后扩展根(if)分区)

  • #lvdisplay(检查路威酩轩尺寸是否增加)

  • #resize2fs /dev/mapper/VolGroup-lv_root(调整实际文件系统的大小)

  • #df-h(然后检查实际文件系统值是否增加了)

答案3

你必须立即调整其大小

resize2fs /dev/sda

您必须在 2.6 内核上执行此操作,并且挂载文件系统并启用允许在线调整大小的参数。否则,您必须先卸载设备,调整大小,然后再次挂载设备。

相关内容