如何在 VMWare ESXi 中调整 Fedora 来宾 VM 的磁盘大小

Cer*_*rin 6 linux fedora vmware-esxi

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

我有一个带有 lvm2 格式磁盘的 Fedora 16 虚拟机,我使用 vSphere 客户端将其磁盘大小从 50GB 增加到大约 250GB。我重新启动了来宾,它使用fdisk -l /dev/sda. 但是,df -H仍然显示旧尺寸。

我找到了一些KB 文章,解释了如何为某些 Linux 版本调整分区大小,但对于带有 ext4 的 Fedora 没有任何解释。那篇文章似乎暗示我必须创建一个全新的分区,并且不能简单地扩展现有分区。使用 Gparted,它还可以防止我简单地调整现有分区的大小。这在Linux下是不可能的吗?

编辑:原来驱动器被格式化为 LVM2,这显然是大多数 Linux 工具,如 GParted,不支持。

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

Cho*_*er3 11

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

  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
    
    Run Code Online (Sandbox Code Playgroud)

    在这种情况下,我更改了值,但正如您所看到的,这台机器有一个 ~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
    
    Run Code Online (Sandbox Code Playgroud)

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

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

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

    echo "- - -" > /sys/class/scsi_host/hostX/scan
    
    Run Code Online (Sandbox Code Playgroud)

    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
    
    Run Code Online (Sandbox Code Playgroud)

    您会看到磁盘大小增加了,在这种情况下,从 ~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)
    
    Run Code Online (Sandbox Code Playgroud)

    您现在需要为额外的新空间创建一个新分区,键入“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
    
    Run Code Online (Sandbox Code Playgroud)

    然后输入mkpart,然后为“主要”选择“p”,为文件系统类型输入“ext3”,为开始输入一个比上面列出的两个“大小”组合稍高的数字(即 107MB + 21.4GB,所以说 21.6 GB),最后输入磁盘的大小(即在本例中为 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
    
    Run Code Online (Sandbox Code Playgroud)

    您将看到新分区在前两个分区之后开始并填充可用空间,不幸的是我们不得不将其设置为“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
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)

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

  8. 现在我们需要扩展'rootvg Volume Group',或者为非root'volume group'创建一个新的'volume group',输入vgdisplay列出所有'volume group',这里是一个例子;

    --- 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
    
    Run Code Online (Sandbox Code Playgroud)
    • 如果您想扩展“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
    
    Run Code Online (Sandbox Code Playgroud)

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

  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
    
    Run Code Online (Sandbox Code Playgroud)

    如果我们想将 /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
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)

    如果我们想将 /var 文件系统从 3GB 扩展到 10GB,请输入resize2fs /dev/mapper/rootvg-var(或在 CentOS 上xfs_growfs /dev/mapper/rootvg-var,或类似的命令,取决于文件系统的类型)。当您按 Enter 时,实际的文件系统会增长,这可能需要一些时间,请在输入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
    
    Run Code Online (Sandbox Code Playgroud)

你现在完成了!


Mik*_*ike 0

你现在必须调整它的大小

resize2fs /dev/sda
Run Code Online (Sandbox Code Playgroud)

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