VMFS 块大小
VMFS 数据存储上的块大小定义两个内容:
要确定数据存储使用的块大小,请执行以下操作:
从 VI/vSphere Client:
- 选择包含该数据存储的 ESX 主机。
- 单击配置选项卡。
- 单击存储。
- 选择该数据存储。
- 在“Formatting (格式)”副标题下的“Details (详细信息)”窗口中可确定块大小。
从 ESX 控制台:
- 登录 ESX 控制台。
- 运行以下命令:
# vmkfstools -P <path to datastore>
此行中的块大小以粗体显示:
Capacity 429228294144 (409344 file blocks * 1048576), 8896118784 (8484 blocks) available
其中,1048576 相当于 VMFS 数据存储上 1 MB 的块大小。
下表报告了可在此输出中找到的各种块大小:
块大小值 | 实际块大小 |
1048576 | 1 MB |
2097152 | 2 MB |
4194304 | 4 MB |
8388608 | 8 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 的子块时,我们将转换为使用文件块。文件块大小取决于创建数据存储时选择的块大小。
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。
现有数据存储从 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,并对在升级的数据存储上创建大型文件进行测试。
- 创建 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
- 测试大型文件(大于 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).
- 将数据存储升级到 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.
- 升级完成后,验证块大小是否仍为 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
- 再次测试大型文件的创建:
vmkfstools -c 513G /vmfs/volumes/cs-ee-d67-local/513GB.vmdk
Create: 100% done.
重新创建具有其他块大小的数据存储
数据存储上的块大小无法自动更改,因为块大小为只能在初始创建数据存储时指定的文件系统属性。
增加块大小的唯一方法是从数据存储中移除所有数据,然后用更大的块大小重新创建数据存储。重新创建数据存储的首选方法为从控制台或 SSH 会话进行创建,因为您只需重新创建文件系统,而不必对磁盘分区做任何更改。
注意:在重新创建数据存储时,VMFS 卷上的所有数据都将丢失。将所有虚拟机和其他数据迁移或移动到另一个数据存储。备份所有数据,然后再继续。
从 ESX/ESXi 控制台:
注意:不应对操作系统所在的 ESX 主机上的本地数据存储执行此过程,因为这样有可能移除该数据存储上的服务控制台特权虚拟机。
- Storage vMotion、移动或删除您希望用其他块大小重新创建的数据存储上的虚拟机。
- 登录 ESX/ESXi 主机的本地技术支持模式控制台。有关详细信息,请参见:
- 使用 esxcfg-scsidevs 命令为要重新创建的数据存储获取磁盘标识符(mpx、naa 或 eui):
# esxcfg-scsidevs -m
- 使用 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
- 使用 vmkfstools -V 命令从所有其他 ESX 主机重新扫描。
从 VI/vSphere Client: 注意:不应在包含 ESX/ESXi 操作系统的 LUN 上执行此过程,因为此过程可能需要采取额外操作来重新创建分区表。
- Storage vMotion、移动或删除您希望用其他块大小重新创建的数据存储上的虚拟机。
- 在清单中选择 ESX/ESXi 主机,然后单击配置选项卡。
- 选择硬件下的“存储”,右键单击数据存储,然后选择删除。
注意:请勿在包含 ESX/ESXi 操作系统的相同磁盘/LUN 上的数据存储上执行此操作。
- 从可看到数据存储的其他主机重新扫描 VMFS 卷。
- 使用“添加存储向导”在其中一台主机上用所需块大小创建新的数据存储。
- 从可看到数据存储的所有其他主机重新扫描 VMFS 卷。
注意:如果使用 GUI 在 ESX 3.5 主机上将 VMDK 扩展至超过 1 TB (1023 GB) 失败,请参见
Cannot extend a vmdk over 1TB (1008528)。