当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 缩小 VMWare ESXi 上的 VMDK 虚拟磁盘大小

作者:精品下载站 日期:2024-12-14 23:00:47 浏览:16 分类:玩电脑

缩小 VMWare ESXi 上的 VMDK 虚拟磁盘大小


在本文中,我们将展示如何减小在 VMWare ESXi 上运行的虚拟机的虚拟磁盘 (vmdk) 文件的大小。与无需关闭虚拟机即可即时扩展 VMWare 虚拟机磁盘不同,在 VMWare ESXi 虚拟机管理程序上减小 vmdk 文件的大小更为复杂,并且无法通过 vSphere Web Client 图形界面来完成。 vSphere Client 不允许您指定较小的虚拟磁盘大小。

重要。本指南不是关于如何减小 VMWare 中 vmdk 磁盘大小的官方支持的解决方案。然而,这个方法我用了几十次。本文使用VMWare ESXi 6.7。

[玩转系统] 缩小 VMWare ESXi 上的 VMDK 虚拟磁盘大小

在减小虚拟磁盘的大小之前,请在 VMWare ESXi 主机上执行以下操作:

  1. 删除虚拟机的所有快照(否则可能会损坏虚拟磁盘);

  2. 创建虚拟机的完整备份,或创建要收缩的 vmdk 和平面文件的副本。使用这些命令:

    cp vmname.vmdk backup_vmname.vmdk
    cp vmname-flat.vmdk backup_vmname-flat.vmdk

减小虚拟磁盘大小的过程包括两个步骤:

  • 缩小来宾操作系统内的分区;

  • 减小 VMFS (NFS) 数据存储上 VMWare 虚拟机的 VMDK 文件的大小。

如何缩小来宾操作系统中的分区大小?

首先,减小来宾操作系统中磁盘分区的大小。如果您的虚拟机运行 Windows 操作系统,请使用磁盘管理器

diskmgmt.msc

收缩卷操作在所有受支持的 Windows 版本中均可用;

sdelete

工具用于旧版 Windows 版本以减小分区大小)或第三方工具(如 Acronis Disk Director)。如果您不这样做,那么您的文件系统可能会在缩小虚拟磁盘大小后崩溃。

[玩转系统] 缩小 VMWare ESXi 上的 VMDK 虚拟磁盘大小

假设您想要将磁盘大小减少 40 GB。因此卷大小必须减少 40960 MB (

40 GB x 1024

)。在压缩卷向导的相应字段中输入该值。减小分区大小后,分区右侧将有一些未分配空间(在我们的示例中为 40 GB)。

[玩转系统] 缩小 VMWare ESXi 上的 VMDK 虚拟磁盘大小

请注意,OEM 或 Windows 恢复分区有时可能会阻止扩展或缩小磁盘。

[玩转系统] 缩小 VMWare ESXi 上的 VMDK 虚拟磁盘大小

在Linux 中,您可以使用parted 减小分区大小。如果使用LVM逻辑卷,情况就不同了。

减小 VMWare 虚拟机的 VMDK 文件大小

然后减小VMWare VMFS 文件系统上VMDK 文件的大小。

  1. 关闭您想要减少磁盘大小的虚拟机;

  2. 使用SSH连接到虚拟机注册的ESXi主机的控制台(可以使用putty或内置的Windows SSH客户端);

  3. 转到虚拟机的 VMDK 文件所在的目录(您可以在 vSphere 客户端的虚拟磁盘属性中获取该文件的路径):

    cd /vmfs/volumes/datastore/test-VM

    [玩转系统] 缩小 VMWare ESXi 上的 VMDK 虚拟磁盘大小

  4. 使用 cat 命令显示虚拟磁盘配置文件 (*.vmdk) 的内容:

    # cat test_vm_3.vmdk

    vmdk 磁盘的大小显示在 #Extent description 部分(RW 字符之后)。在本例中,它是 167772160 (

    80 GB *1024*1024*1024 / 512

    );

    [玩转系统] 缩小 VMWare ESXi 上的 VMDK 虚拟磁盘大小

  5. 我想将 VMDK 磁盘从 80 GB 减少到 40 GB。这意味着我必须指定 83886080 (

    40 GB*1024*1024*1024 / 512

    )在范围描述部分。使用文本编辑器(vi 或 nano)设置虚拟磁盘的新大小;

  6. 我正在使用 vi:

    # vi test_vm_3.vmdk
  7. 使用向下箭头键,转到包含磁盘大小的行,然后按

    i

    (编辑它)。指定虚拟磁盘的新大小。按 ESC 退出编辑模式,然后键入

    :wq 

    -> 输入保存更改;

    [玩转系统] 缩小 VMWare ESXi 上的 VMDK 虚拟磁盘大小

  8. 然后只需将虚拟机克隆或迁移(使用 Storage vMotion)到另一个数据存储即可。移动虚拟机文件后,其虚拟磁盘的新大小将显示在其属性中。

    提示。如果您只有一台 ESXi 主机、一个 VMFS 数据存储,您将无法使用 Storage vMotion。然后您可以使用以下命令克隆 vmdk:

    vmkfstools -i test_vm_3.vmdk test_vm_3_newsize.vmdk

    [玩转系统] 缩小 VMWare ESXi 上的 VMDK 虚拟磁盘大小

    删除源VMDK磁盘,再次克隆扩孔VMDK磁盘并通过指定其原始名称进行重命名:

    rm test_vm_3.vmdk
    rm test_vm_3-flat.vmdk
    vmkfstools -i test_vm_3_newsize.vmdk test_vm_3.vmdk
  9. 确保虚拟磁盘的新大小现在显示在 VM 属性中。

    [玩转系统] 缩小 VMWare ESXi 上的 VMDK 虚拟磁盘大小

  10. 然后启动虚拟机,登录来宾操作系统并确保未分配的区域已消失,并且磁盘大小已减小。

    [玩转系统] 缩小 VMWare ESXi 上的 VMDK 虚拟磁盘大小

提示。如果您在上一步中使用了 vmkfstools,请在 VM 设置中重新连接虚拟磁盘,因为其新大小可能无法正确显示。

注意。通常使用以下方法来减小 VMDK 磁盘的大小:

  • 通过使用 VMware vCenter Converter 转换虚拟机来减少虚拟磁盘大小。指定一个小于源磁盘大小的磁盘来进行转换(我们将在下一节中展示);

  • 您可以使用第三方软件(例如 Acronis True Image 或 Symantec Ghost32)克隆虚拟磁盘内容。此任务是通过向虚拟机添加新的较小磁盘并将较大磁盘的内容克隆到其中来执行的。然后您可以删除较大的磁盘。

使用 VMware vCenter Converter Standalone 缩小 VMDK

减少 VMWare 虚拟机虚拟磁盘大小的另一种方法是使用免费的 GUI 工具 VMware vCenter Converter Standalone。

缺点:

  • V2V转换速度慢;

  • 数据存储上必须有足够的空间来保存新虚拟机;

  • 新的虚拟机将具有新的 MAC 地址。

优点:

  • 您无需打开 vCenter 或 ESXi 主机控制台;

  • 创建虚拟机的精确副本;

  • 转换任务设置错误不会损坏源盘。

注意。您要转换(更改磁盘大小等)的虚拟机必须关闭(使用关闭关闭,而不是挂起)。

指定 ESXi 主机地址。

[玩转系统] 缩小 VMWare ESXi 上的 VMDK 虚拟磁盘大小

选择源虚拟机。

[玩转系统] 缩小 VMWare ESXi 上的 VMDK 虚拟磁盘大小

设置新虚拟机的参数。

[玩转系统] 缩小 VMWare ESXi 上的 VMDK 虚拟磁盘大小

进入磁盘编辑模式(要复制的数据 -> 编辑)。

[玩转系统] 缩小 VMWare ESXi 上的 VMDK 虚拟磁盘大小

选择复制模式:选择要复制的卷

[玩转系统] 缩小 VMWare ESXi 上的 VMDK 虚拟磁盘大小

为新虚拟机指定新磁盘大小。可以看到,Guest OS 占用了 48 GB,磁盘大小为 150 GB。我们将虚拟磁盘的大小减少到 60 GB。

[玩转系统] 缩小 VMWare ESXi 上的 VMDK 虚拟磁盘大小

[玩转系统] 缩小 VMWare ESXi 上的 VMDK 虚拟磁盘大小

运行 VM 转换过程。然后,您可以关闭源虚拟机并启动新虚拟机。确保磁盘大小已减小。之后,原始虚拟机可能会被删除。

注意。在最新版本的 Microsoft Hyper-V 中,您可以使用 Hyper-V Online VHDX Resize 工具动态调整(扩展和收缩)虚拟磁盘的大小。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯