VMFS 数据存储的块大小限制
search cancel

VMFS 数据存储的块大小限制

book

Article ID: 344071

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

本文提供有关 VMFS 块大小的信息以及与可用于创建数据存储的各种块大小相关联的优缺点。

注意:本文不适用于位于 NFS 卷上的数据存储。


Symptoms:

免责声明:本文为 Block size limitations of a VMFS datastore (1003565) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。



  • 部署虚拟机的模板或克隆失败,并显示以下错误:

    A general system error occurred:File *.vmdk is larger than the maximum size supported by datastore

  • 创建大于特定大小的虚拟磁盘失败,并显示以下错误:

    • 在 ESX 主机命令行:

      Failed to create virtual disk:There is not enough space on the file system for the selected operation.

    • 在安装有 Virtual Center 2.5 的 ESX 3.5 Virtual Infrastructure (VI) Client 和安装有 vCenter Server 4.x 的 ESX 4.x vSphere Client 中,您会看到以下警告:

      Create New Virtual Disk:The disk capacity entered was not a properly formed number or was out of range.It has been replaced with the nearest acceptable value.

注意:单击“确定”后,数值将调整为可能的最大文件大小。

  • 物理到虚拟或虚拟到虚拟机的转换可能因出现以下错误而失败:

    The file system on the destination does not support the files
  • 在安装有 VirtualCenter 2.0 的 ESX 3.0 VI Client 中,你会看到以下警告:

    The disk capacity specified is greater than the amount left on the datastore when it was last updated.Unless more space has become available since that update, creation of the virtual machine will fail.Do you wish to submit this task anyway?


Environment

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

Resolution

VMFS 块大小

VMFS 数据存储上的块大小定义两个内容:
  • 最大文件大小
  • 单个文件所占空间大小

要确定数据存储使用的块大小,请执行以下操作:

从 VI/vSphere Client:

  1. 选择包含该数据存储的 ESX 主机。
  2. 单击配置选项卡。
  3. 单击存储
  4. 选择该数据存储。
  5. 在“Formatting (格式)”副标题下的“Details (详细信息)”窗口中可确定块大小。

从 ESX 控制台:

  1. 登录 ESX 控制台。
  2. 运行以下命令:

    # vmkfstools -P <path to datastore>

    此行中的块大小以粗体显示:

    Capacity 429228294144 (409344 file blocks * 1048576), 8896118784 (8484 blocks) available

    其中,1048576 相当于 VMFS 数据存储上 1 MB 的块大小。

    下表报告了可在此输出中找到的各种块大小:

    块大小值实际块大小
    10485761 MB
    20971522 MB
    41943044 MB
    83886088 MB

    注意:vSphere 5.0 及更高版本的块大小仅为 1 MB。

VMFS-2 和 VMFS-3 大小限制

在厚置备虚拟磁盘 (VMDK) 上使用更大块大小时,不会出现明显的 I/O 性能差异。

精简置备虚拟磁盘 (VMDK) 的性能,尤其是首次写入的性能,将随着 VMFS 数据存储的块大小的增加而降低,但对任何块大小的精简 VMDK 的后续写入将等效于 eagerzeroedthick。
因此,VMware 建议在为精简置备虚拟磁盘创建 VMFS 数据存储时使用 1 MB 块大小以获得最佳性能。使用较小块大小的优势包括:
  • 在首次对精简置备虚拟磁盘写入时性能更高。
  • 由于使用精简置备虚拟磁盘的目的在于节省空间,因此可将内部碎片降至最少。如果使用了较大的块大小,则会因内部碎片而浪费更多空间。
数据存储的块大小也会影响可在其上创建的最大文件大小(包括要向虚拟机添加的虚拟磁盘大小)。因此,还必须考虑在创建 VMFS 数据存储时要使用的最大文件大小或虚拟磁盘大小。

注意:创建 VMFS 数据存储时请慎重选择 VMFS 块大小,因为创建后将无法更改 VMFS 数据存储的块大小。如果需要更大的块大小,则需要重新创建数据存储(本文稍后将谈及此过程)。

下表列出了根据 VMFS 数据存储的块大小而受支持的最大文件大小和虚拟磁盘大小:

块大小
VMFS-2 上的最大虚拟磁盘
VMFS-3 上的最大虚拟磁盘
1 MB
456 GB
256 GB*
2 MB
912 GB
512 GB*
4 MB
1.78 TB
1 TB*
8 MB
2 TB
2 TB - 512 B*
16 MB
2 TB
块大小无效
32 MB
2 TB
块大小无效
64 MB
2 TB
块大小无效

* 生成虚拟机快照所需的开销。

VMFS-3 将子块用于目录和小于 64 KB 的小文件。当 VMFS 使用 1 个 64 KB 的子块时,我们将转换为使用文件块。文件块大小取决于创建数据存储时选择的块大小。

在 vSphere 4.0 以及更高版本中,如果要使用快照,则将对虚拟磁盘大小有更多的大小限制,因为快照需要额外开销。有关详细信息,请参见 Creating a snapshot for a virtual machine fails with the error:File is larger than maximum file size supported (1012384)

VMFS-5 大小限制

借助 VMFS-5,可以使用统一的 1 MB 块大小,这种块大小已不再可配置,但由于对 VMFS 文件系统的增强,可放置比 VMFS-3 1 MB 块大小更大的文件。因此 1 MB 块大小的 VMFS-3 与 1 MB 块大小的 VMFS-5 的文件大小不同。

适用于 VMFS-5 数据存储的限制是:
  • 对于 ESXi 5.0 和 5.1,最大虚拟磁盘 (VMDK) 大小为 2 TB 减 512 B。在 ESXi 5.5 中,可将该大小增加至 62TB。
  • 对于 ESXi 5.0 和 5.1,最大虚拟模式的 RDM (vRDM) 大小为 2 TB 减 512 B。在 ESXi 5.5 中,可将该大小增加至 62TB。
  • 支持的物理模式 RDM 最高可达 64 TB。
有关 vSphere 5.5 中大型 VMDK 支持的详细信息,请参见 Support for virtual machine disks larger than 2 TB in vSphere 5.5 (2058287)

在 VMFS-5 中,非常小的文件(即,小于 1 KB 的文件)将以元数据形式而非使用文件块存储在文件描述符位置。一旦文件大小增加到超过 1 KB,便会使用子块。使用了一个 8 KB 的子块后,便会使用 1 MB 的文件块。由于 VMFS-5 使用 8 KB 而非 64 KB(VMFS-3 中使用此大小)的子块,因此可减少小文件所使用的磁盘空间量。有关 VMFS-5 的详细信息,请参见 vSphere 5 FAQ:VMFS-5 (2003813)

现有数据存储从 VMFS-3 升级到 VMFS-5 的注意事项

将 VMFS 数据存储从 VMFS-3 升级到 VMFS-5 时,可以将数据存储扩展为超过 2 TB - 512 B。将 VMFS-3 数据存储升级到 VMFS-5 需要注意的是,它将继承原始 VMFS-3 数据存储的块大小属性。

如果从 VMFS-3 升级到 VMFS-5,则不论块大小如何,VMFS-5 将使用二次间接寻址以满足升级的 VMFS-3 卷上大型文件(最大大小为 2 TB - 512 B)的需求。例如,如果 VMDK 超出 512 GB,则它将转换为使用二次间接寻址,这种寻址支持高达 2 TB - 512 B 的 VMDK。

现有 VMFS-3 数据存储升级到 VMFS-5 的示例

注意:在此示例中,我们将创建 VMFS-3 卷,然后尝试在该数据存储上创建大型文件 (513 GB)。然后我们会将该数据存储升级为 VMFS-5,并对在升级的数据存储上创建大型文件进行测试。

  1. 创建 VMFS-3 数据存储:

    vmkfstools -Ph -v10 /vmfs/volumes/cs -ee-d67-local/

    VMFS-3.54 file system spanning 1 partitions.
    File system label (if any): cs-ee-d67-local
    Mode: public
    Capacity 837 GB, 836.4 GB available, file block size 2 MB


  2. 测试大型文件(大于 512 GB 的 VMDK)的创建:

    # vmkfstools -c 513G /vmfs/volumes/cs-ee-d67-local/513GB.vmdk
    Failed to create virtual disk: The destination file system does not support large files (12).

  3. 将数据存储升级到 VMFS-5:

    vmkfstools -T /vmfs/double indirect addressingvolumes/cs-ee-d67-local/

    Please ensure that the VMFS-3 volume /vmfs/volumes/502369f3-0f06dcd7-ee21-0024e84b3c30 is not in active use by any local or remote ESX 3.x/4.x server.

    We recommend the following:

    Back up data on your volume as a safety measure.
    Take precautions to ensure no ESX 3.x/4.x servers are accessing this volume.

    Continue converting VMFS-3 to VMFS-5?

    0) _Yes
    1) _No

    Select a number from 0-1:

    在提示符下输入 0 后,你会看到:

    Checking if remote hosts are using this device as a valid file system. This may take a few seconds...
    Upgrading file system /vmfs/volumes/cs-ee-d67-local/...
    done.

  4. 升级完成后,验证块大小是否仍为 2 MB:

    vmkfstools -Ph -v10 /vmfs/volumes/cs-ee-d67-local/

    VMFS-5.54 file system spanning 1 partitions.
    File system label (if any): cs-ee-d67-local
    Mode: public
    Capacity 837 GB, 836.4 GB available, file block size 2 MB

  5. 再次测试大型文件的创建:

    vmkfstools -c 513G /vmfs/volumes/cs-ee-d67-local/513GB.vmdk

    Create: 100% done.
注意:有关升级到 VMFS-5 的详细信息和其他条件,请参见 VMFS-5 Upgrade Considerations Guide

重新创建具有其他块大小的数据存储

数据存储上的块大小无法自动更改,因为块大小为只能在初始创建数据存储时指定的文件系统属性。

增加块大小的唯一方法是从数据存储中移除所有数据,然后用更大的块大小重新创建数据存储。重新创建数据存储的首选方法为从控制台或 SSH 会话进行创建,因为您只需重新创建文件系统,而不必对磁盘分区做任何更改。

注意:在重新创建数据存储时,VMFS 卷上的所有数据都将丢失。将所有虚拟机和其他数据迁移或移动到另一个数据存储。备份所有数据,然后再继续。

从 ESX/ESXi 控制台:

注意:不应对操作系统所在的 ESX 主机上的本地数据存储执行此过程,因为这样有可能移除该数据存储上的服务控制台特权虚拟机。
  1. Storage vMotion、移动或删除您希望用其他块大小重新创建的数据存储上的虚拟机。
  2. 登录 ESX/ESXi 主机的本地技术支持模式控制台。有关详细信息,请参见:
  3. 使用 esxcfg-scsidevs 命令为要重新创建的数据存储获取磁盘标识符(mpx、naa 或 eui):

    # esxcfg-scsidevs -m

  4. 使用 vmkfstools 在现有文件系统上新建不同块大小的 VMFS 数据存储文件系统:

    # vmkfstools -C VMFS-type -b Block-Size -S Datastore-Name /vmfs/devices/disks/Disk-Identifier:Partition-Number

    创建块大小为 8 MB 且名为 NewDatastore 的数据存储的示例:

    # vmkfstools -C vmfs3 -b 8m -S NewDatastore /vmfs/devices/disks/naa.60901234567890123456789012345678:1

  5. 使用 vmkfstools -V 命令从所有其他 ESX 主机重新扫描。

从 VI/vSphere Client:

注意:不应在包含 ESX/ESXi 操作系统的 LUN 上执行此过程,因为此过程可能需要采取额外操作来重新创建分区表。
  1. Storage vMotion、移动或删除您希望用其他块大小重新创建的数据存储上的虚拟机。
  2. 在清单中选择 ESX/ESXi 主机,然后单击配置选项卡。
  3. 选择硬件下的“存储”,右键单击数据存储,然后选择删除

    注意:请勿在包含 ESX/ESXi 操作系统的相同磁盘/LUN 上的数据存储上执行此操作。

  4. 从可看到数据存储的其他主机重新扫描 VMFS 卷。
  5. 使用“添加存储向导”在其中一台主机上用所需块大小创建新的数据存储。
  6. 从可看到数据存储的所有其他主机重新扫描 VMFS 卷。
注意:如果使用 GUI 在 ESX 3.5 主机上将 VMDK 扩展至超过 1 TB (1023 GB) 失败,请参见 Cannot extend a vmdk over 1TB (1008528)


Additional Information

要在 ESXi 4.x 及更早版本中创建大于 2 TB 的 VMFS 数据存储,则必须将 VMFS 数据存储扩展到其他 LUN。

    有关增加数据存储容量的信息,请参见:

    在 ESXi 5.x 中,可以使用高达 50 TB 的 LUN 创建块大小为 1 MB 的 VMFS3 卷以及使用高达 64 TB 的 LUN 创建本机 VMFS5 卷。

    注意:实际的最高配置将取决于 RAID 控制器,或取决于受正在使用的存储访问驱动程序(FC、iSCSI)支持的 LUN 的最大大小。请联系供应商以获取最高配置。
    Block size limitations of a VMFS datastore