为 ESXi/ESX 主机虚拟磁盘增加空间
search cancel

为 ESXi/ESX 主机虚拟磁盘增加空间

book

Article ID: 344374

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms:

免责声明:本文为 Adding space to an ESXi/ESX host virtual disk (994) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。


Environment

VMware ESX Server 3.5.x
VMware ESX 4.0.x
VMware ESX Server 2.0.x
VMware ESXi 4.0.x Embedded
VMware ESX Server 2.1.x
VMware ESX Server 3.0.x
VMware ESXi 4.0.x Installable
VMware ESX 4.1.x
VMware ESXi 4.1.x Installable
VMware ESX Server 2.5.x
VMware ESX Server 1.x
VMware vSphere ESXi 5.0
VMware vSphere ESXi 5.1
VMware ESXi 3.5.x Embedded
VMware vSphere ESXi 5.5
VMware ESXi 3.5.x Installable
VMware ESXi 4.1.x Embedded
VMware ESX Server 1.5.x

Resolution

:开始之前,请参见在 ESX 或 ESXi Server 上重新启动管理代理 (1003490)(Restarting the Management agents on an ESX or ESXi Server (1003490)) 获取有关重新启动 mgmt-vmware 服务的重要信息。

命令行实用程序 vmkfstools 允许您扩展或扩大 ESX 主机虚拟磁盘的大小。

请参考下列文档中的使用 vmkfstools

可以使用下面的 vmkfstools 命令将虚拟磁盘文件扩展到新的指定长度:

vmkfstools [-X | --extendfile] #[gGmMkK]

对于 ESX/ESXi 4.1 和 5.0:

vmkfstools [-X | --extendvirtualdisk] # [gGmMkK]

注意:此操作将对虚拟机的磁盘进行根本性的且不可逆转的更改。VMware 强烈建议您在尝试此操作之前,对此虚拟机进行完整备份。

警告:在当前版本的 ESX/ESXi 2.5、3.X、4.X 和 ESXi 5.x 中,不要扩展具有快照的磁盘。在增加虚拟磁盘的大小之前,请转移或丢弃快照。扩展具有快照的虚拟磁盘的大小将使快照失效。有时快照管理器会报告有关快照存在的不准确信息;了解虚拟机是否使用快照的最佳方式是检查 .vmx 指向何处。有关详细信息,请参见确定虚拟机是否正在使用快照 (1004343)(Determining if a virtual machine is using snapshots (1004343))。如果基础磁盘已在快照树下实现扩展,请参见扩展作为快照层次结构一部分的基础虚拟磁盘后虚拟机无法启动 (1646892)(A virtual machine cannot boot after extending a base virtual disk that is part of a snapshot hierarchy (1646892))

创建虚拟机后,可使用 vmkfstools 命令扩展分配给虚拟机的磁盘大小。当您输入此命令时,必须关闭使用此磁盘文件的虚拟机。此外,客户机操作系统必须能够识别并使用新的磁盘大小,例如,通过更新磁盘上的文件系统,来充分利用额外空间。

您可以通过分别添加后缀 k(千字节)、m(兆字节)或 g(千兆字节),以千字节、兆字节或千兆字节指定大小。

例如,要增加 ESX Server 2.x 上现有 Windows 2000 虚拟磁盘的大小,请执行以下命令:

[root@esxhost]# vmkfstools -X 8000m vms:win2000.vmdk

下面的示例是将存储在一个名为 vms 的 VMFS2 卷上的名为 win2000.vmdk 的虚拟磁盘文件扩展为 8GB 大小。

注意:您必须通过扩展为指定想要扩展的大小,并通过扩展到指定不希望扩展到的大小。否则,磁盘会缩小到更小的新大小,VMDK 文件中的数据可能会被损坏。ESX 3.5.0 不会发生这种情况,因为其中的 vmkfstools-X 只允许扩展磁盘,而不允许缩小磁盘。

下面是 ESX 3.5.0 中的一个示例,所示为将磁盘扩展为小于当前 vmdk 大小的失败尝试:

-rw------- 1 root root 392 Apr 16 14:17 slax.vmdk
-rw------- 1 root root 2.0G Apr 16 13:47 slax-flat.vmdk
[root@localhost slax]# vmkfstools -X 800M slax.vmdk
Failed to extend disk :One of the parameters supplied is invalid (1).
[root@localhost slax]#

注意:ESX 2 虚拟磁盘可以选择使用 .dsk 扩展名。

对于 ESX 3.x 和更高版本,您必须指定 .vmdk 文件的位置或在包含此文件的目录中发出命令。一定要使用 vmkfstools 命令指定虚拟磁盘描述符文件。例如:

[root@esxhost]# vmkfstools -X 8000m /vmfs/volumes/storage1/win2000/win2000.vmdk

要扩展最初采用 EagerZeroedThick 格式创建的虚拟磁盘,请运行以下命令:

vmkfstools -X #[gGmMkK] -d eagerzeroedthick /vmfs/volumes/datastore/file.vmdk

扩展磁盘文件后,您必须执行虚拟机中的 PartitionMagic、卷管理器或 ServerMagic 等分区操作工具,以将虚拟机客户机操作系统显示的分区扩展到虚拟磁盘上新创建的空间。

有关可用作 DISKPART 替代方案的第三方实用程序的示例,请参见增加磁盘分区容量 (1004071)(Increasing the size of a disk partition (1004071))

注意

  • 您可能需要重新启动管理服务才能看到 VirtualCenter 和 Virtual Infrastructure Client (mgmt-vmware) 中的更改。如果此操作失败,请检查 .vmdk 文件的大小。如果文件已扩展,但系统没有反映这一改变,请尝试删除 .vmdk 文件并将其重新添加到虚拟机。
  • 某些较旧 ESX 2.x 文件的文件扩展名可能是 .dsk,而不是 .vmdk
  • ESX 3.5.0 确实已在 GUI 的“虚拟机属性”中提供此磁盘扩展功能。
  • 在 ESX 3.5.0 的 GUI 中,当扩展具有快照的虚拟机的容量时,“重新配置虚拟机”任务完成时确实会显示“已完成”状态,但是磁盘并未扩展。这样可以防止损坏快照。
  • 使用 ESX 3.5 中的 GUI 界面扩展 1 TB 以上的虚拟磁盘可能会失败。使用命令行扩展虚拟磁盘则不会出错。此问题已在 ESX 4 中得到解决。有关详细信息,请参见无法将 VMDK 扩展为超过 1 TB (1008528)(Cannot extend a vmdk over 1TB (1008528))
  • 如果使用 GUI 扩展虚拟磁盘失败,请确认磁盘中没有快照,虚拟机中共享的总线设置为“无”,并且数据存储中有足够的磁盘空间。

    注意:如果由于磁盘越来越大而导致群集节点虚拟机关闭,则 vmware.log 中可能会显示类似以下内容的消息。扩展非共享磁盘时也会发生这种情况。如果在虚拟机中共享任何总线,则无法在虚拟机正在运行时扩展任何磁盘。

    2012-08-09T09:18:48.650Z| vcpu-0| [msg.disk.notCheckpointed3] Resuming virtual disk scsi1:1 failed.The disk has been modified since a snapshot was taken or the virtual machine was suspended.
    2012-08-09T09:18:48.650Z| vcpu-0| [msg.checkpoint.continuesync.fail] An error occurred while restarting virtual machine after taking a snapshot.The virtual machine will be powered off.


Additional Information

Adding space to an ESXi/ESX host virtual disk