Hyper

您所在的位置:网站首页 硬盘扇区大小怎么设置出来 Hyper

Hyper

2023-07-01 19:46| 来源: 网络整理| 查看: 265

Hyper-V 存储 I/O 性能 项目 06/19/2023

本文探讨用于优化虚拟机 (VM) 中存储 I/O 性能的不同选项和注意事项。 存储 I/O 路径跨越四个连续阶段:

来宾存储堆栈 主机虚拟化层 主机存储堆栈 物理磁盘

以下部分介绍每个阶段可能实现的优化。

虚拟控制器

Hyper-V 提供三种类型的虚拟控制器:IDE、SCSI 和虚拟光纤通道主机总线适配器 (HBA)。

IDE

IDE(集成驱动电子设备)控制器向 VM 公开 IDE 磁盘。 将模拟 IDE 控制器。 它是运行早期 Windows 版本且没有 Hyper-V VM 集成服务的来宾 VM 唯一可用的控制器。 使用集成服务提供的 IDE 筛选器驱动程序执行的磁盘 I/O 明显优于模拟 IDE 控制器提供的磁盘 I/O 性能。

建议:仅将 IDE 磁盘用于操作系统 (OS) 磁盘。 由于可以向这些设备发出的最大 I/O 大小,OS 磁盘具有性能限制。

SCSI(SAS 控制器)

SCSI(小型计算机系统接口)控制器向 VM 公开 SCSI 磁盘。 每个虚拟 SCSI 控制器最多可支持 64 台设备。 SCSI 路径不是模拟的,因而它成了除 OS 磁盘以外的任何磁盘的首选控制器。 对于第 2 代 VM,SCSI 磁盘是唯一可能的控制器类型。 Windows Server 2012 R2 及更高版本中提供对 SCSI 磁盘的支持,其中控制器报告为 SAS 以支持共享 VHDX。

建议:为获得最佳性能,请将多个磁盘连接到单个虚拟 SCSI 控制器。 仅根据需要创建其他控制器,以缩放连接到 VM 的磁盘数。

虚拟光纤通道 HBA

可将虚拟光纤通道 HBA 配置为允许 VM 直接访问光纤通道和基于以太网的光纤通道 (FCoE) LUN。 虚拟光纤通道磁盘绕过根分区中的 NTFS 文件系统,从而减少了存储 I/O 的 CPU 使用率。

大型数据驱动器以及多个 VM 共享的驱动器(用于来宾群集方案)是虚拟光纤通道磁盘的首要候选项。

虚拟光纤通道磁盘要求在主机上安装一个或多个光纤通道 HBA。 每个主机 HBA 都需要使用一个支持 Windows Server 2016 虚拟光纤通道/NPIV 功能的 HBA 驱动程序。 SAN 结构应支持 NPIV,并且应在支持 NPIV 的光纤通道拓扑中设置用于虚拟光纤通道的 HBA 端口。

建议:为了在安装有多个 HBA 的主机上最大化吞吐量,请在 Hyper-V VM 中配置多个虚拟 HBA。 每个 VM 最多可以配置四个 HBA。 Hyper-V 会自动尽最大努力均衡访问同一虚拟 SAN 的虚拟 HBA 和主机 HBA。

虚拟磁盘

可以通过虚拟控制器向 VM 公开虚拟磁盘。 这些磁盘可以是虚拟硬盘(即磁盘的文件抽象),也可以是主机上的传递磁盘。

有两种虚拟硬盘格式:VHD 和 VHDX。 每种格式都支持三种类型的虚拟硬盘文件。

建议:升级到 Windows Server 2016 时,请将所有 VHD 文件转换为 VHDX 格式。 有关详细信息,请参阅以下 VHDX 部分。

VHD 格式

早期版本的 Hyper-V 仅支持 VHD 格式。 VHD 格式在 Windows Server 2012 及更高版本中可用。 更高版本的 Hyper-V 包含对 VHD 格式的改进,以便更好地对齐。 这些更新使新的大扇区磁盘的性能显著提高。

在 Windows Server 2012 或更高版本中创建的 VHD 具有最佳的 4 KB 对齐。 对齐的格式可与以前的 Windows Server 版本完全兼容。 但是,对于由无法感知 4 KB 对齐的分析程序进行的新分配,对齐属性被破坏。 示例包括早期版本 Windows Server 中的 VHD 分析程序或非 Microsoft 分析程序。

将磁盘转换为 VHD 格式

将 VHD 从早期版本的 Hyper-V 或 Windows Server 移动到更高版本时,系统不会自动将磁盘转换为较新的改进 VHD 格式。

可以使用 Convert-VHD PowerShell 命令来将现有虚拟磁盘转换为使用较新的 VHD 格式:

Convert-VHD –Path E:\vms\testvhd\test.vhd –DestinationPath E:\vms\testvhd\test-converted.vhd

在此示例中,要转换的源磁盘为 test.vhd,转换后的新磁盘为 test-converted.vhd。 运行该命令时,请根据磁盘转换的需要更新 -Path 和 -DestinationPath 值。

注意

转换后的新 VHD 是通过“从源复制”磁盘选项使用源 VHD 中的数据创建的。 有关详细信息,请参阅 Window PowerShell Hyper-V 参考中的 Convert-VHD 命令。

检查磁盘对齐

可以在系统中检查 VHD 的 Alignment 属性。 转换磁盘后,可以查看该属性以确保新磁盘使用最佳的 4 KB 对齐。

可以使用 Get-VHD PowerShell 命令来检查磁盘的对齐设置。 对源磁盘运行该命令,然后针对转换后的磁盘再次运行该命令。 比较 Alignment 属性的值,以确保转换后的新磁盘可感知 4 KB 对齐。

运行 Get-VHD 命令以查看源磁盘的对齐设置。

Get-VHD –Path E:\vms\testvhd\test.vhd

在此示例中,源磁盘名为 test.vhd。 在系统上运行该命令时,请更新源磁盘的 -Path 值。

在输出中,注意 Alignment 属性的值。 在此示例中,值为 0,这意味着磁盘无法感知 4 KB 对齐。

Path : E:\vms\testvhd\test.vhd VhdFormat : VHD VhdType : Dynamic FileSize : 69245440 Size : 10737418240 MinimumSize : 10735321088 LogicalSectorSize : 512 PhysicalSectorSize : 512 BlockSize : 2097152 ParentPath : FragmentationPercentage : 10 Alignment : 0 Attached : False DiskNumber : IsDeleted : False Number :

再次运行 Get-VHD 命令以获取转换后的新磁盘的详细信息。

Get-VHD –Path E:\vms\testvhd\test-converted.vhd

在此示例中,转换后的新磁盘名为 test-converted.vhd。 在系统上运行该命令时,请更新转换后磁盘的 -Path 值。

在输出中,检查 Alignment 属性的值。 该值应为 1,这意味着磁盘已成功转换为较新的 VHD 格式,并且可感知 4 KB 对齐。

Path : E:\vms\testvhd\test-converted.vhd VhdFormat : VHD VhdType : Dynamic FileSize : 69369856 Size : 10737418240 MinimumSize : 10735321088 LogicalSectorSize : 512 PhysicalSectorSize : 512 BlockSize : 2097152 ParentPath : FragmentationPercentage : 0 Alignment : 1 Attached : False DiskNumber : IsDeleted : False Number : VHDX 格式

VHDX 是 Windows Server 2012 中引入的新虚拟硬盘格式。 使用此格式可以创建高达 64 TB 的弹性高性能虚拟磁盘。

VHDX 格式具有以下优点:

支持高达 64 TB 的虚拟硬盘存储容量

可通过记录对 VHDX 元数据结构的更新,保护数据在电源发生故障时不受损坏

能够存储用户可能想要记录的文件的自定义元数据,例如 OS 版本或应用的修补程序

VHDX 格式还提供多种性能功能:

使虚拟硬盘格式更加一致以在大扇区磁盘上良好地工作

动态磁盘和差异磁盘的块大小更大,使磁盘能够根据工作负载要求进行调整

4 KB 逻辑扇区虚拟磁盘,当由专用于 4 KB 扇区的应用程序和工作负载使用时可以提高性能

高效地表示数据,这可以使得文件大小变得更小并且允许基础物理存储设备回收未使用的空间

注意

修整需要传递磁盘或 SCSI 磁盘,以及与 Trim 兼容的硬件。

建议:升级到 Windows Server 2016 时,请将所有 VHD 文件转换为 VHDX 格式。 仅当 VM 可能移动到不支持 VHDX 格式的早期版本 Hyper-V 时,才保留 VHD 格式的文件。

虚拟文件

VHD 文件有三种类型:固定、动态和差异。

建议:比较 VHD 文件类型时,请考虑以下建议。

文件类型 磁盘格式 建议 固定 VHD 使用固定文件类型可获得最佳复原能力和性能。 固定 Any 当承载卷上的存储未受到主动监视时,请使用固定文件类型。 这可确保当 VHD 文件在运行时扩展时存在足够的磁盘空间。 动态 VHDX 使用动态文件类型可保证复原能力,并仅根据需要分配磁盘空间。 差异 Any 这可使 VM 快照链保持较短,以保持良好的磁盘 I/O 性能。 固定文件类型

创建 VHD 文件时,首先会分配 VHD 的空间。 这种类型的 VHD 文件不太可能出现碎片,因而在将单个 I/O 拆分为多个 I/O 时会减少 I/O 吞吐量。 在这三个选项中,固定文件类型的 CPU 开销最低,因为 Reads 和 Writes 不需要查找块的映射。

动态文件类型

按需分配 VHD 的空间。 磁盘中的块作为未分配的块启动。 文件中没有实际空间支持未分配的块。 当某个块收到第一个 Write 时,虚拟化堆栈必须在 VHD 文件中为该块分配空间,然后更新元数据。 此操作会增加 Write 所需的磁盘 I/O 数,并增加 CPU 使用率。 在元数据中查找块的映射时,对现有块进行 Reads 和 Writes 会产生磁盘访问与 CPU 开销。

差异文件类型

VM 快照创建一个差异 VHD 来存储对磁盘的 Writes。 VHD 指向父 VHD 文件。 对没有现有 Writes 的块的任何 Writes 都会导致在 VHD 文件中分配空间,就像动态扩展的 VHD 一样。 如果块包含 Writes,则会从 VHD 文件为 Reads 提供服务。 否则,将从父 VHD 文件为块提供服务。 在这两种情况下,都将读取元数据以确定块的映射。 对此 VHD 进行 Reads 和 Writes 可能会消耗更多的 CPU,并导致 I/O 用量比使用固定 VHD 文件时更多。

只创建少量快照可以提升存储 I/O 的 CPU 使用率,但可能不会明显地影响性能(除了在占用大量 I/O 的服务器工作负载中)。 保持长快照链可能会显著影响性能。 从 VHD 读取可能需要在许多差异 VHD 中检查请求的块。 因此必须使快照链保持较短,以保持良好的磁盘 I/O 性能。

大小注意事项

磁盘优化需要考虑两种大小的实现:块和扇区。

块大小

块大小可能会显著影响性能。 最好是使块大小符合使用磁盘的工作负载的分配模式。 如果应用程序以 16 MB 的区块分配块,则最好指定 16 MB 的虚拟硬盘块大小。 大于 2 MB 的块大小只能在 VHDX 格式的虚拟硬盘上指定。 如果块大小大于随机 I/O 工作负载的分配模式,则会显著增加主机上的空间使用量。

建议:最好是使磁盘块大小符合使用磁盘的工作负载的分配模式。

扇区大小

软件组织通常依赖于 512 字节的磁盘扇区,但行业标准正在转向 4 KB 磁盘扇区。 为了减少扇区大小变化引起的兼容性问题,硬盘驱动器供应商引入了一种称为“512 模拟驱动器 (512e)”的过渡大小。

这些模拟驱动器具有 4 KB 磁盘扇区原生驱动器的一些优点,例如改进了格式效率和纠错码 (ECC) 方案。 它们减少了在磁盘接口上公开 4 KB 扇区大小所带来的兼容性问题。

建议:为了充分利用 4 KB 扇区,请使用 VHDX 格式,而不使用 512 字节的磁盘扇区。 若要减少磁盘大小之间的兼容性问题,请实现 512e 驱动器来进行过渡大小调整。

使用 512e 磁盘来支持过渡大小

512e 磁盘只能对物理扇区执行 Write 操作。 这种类型的磁盘无法直接写入向其发出的 512 字节扇区。 该磁盘有一个内部过程,使 Write 操作成为可能。 该过程涉及 Read-Modify-Write (RMW) 操作,并实现以下步骤:

磁盘将 4 KB 物理扇区 Reads 到其内部缓存。 缓存包含 Write 操作中引用的 512 字节逻辑扇区。

磁盘 Modifies 4 KB 缓冲区中的数据,以包含更新的 512 字节扇区。

磁盘将已更新的 4 KB 缓冲区 Writes 回其磁盘上的物理扇区。

RMW 过程的总体性能影响取决于工作负载。 RMW 过程会导致虚拟硬盘性能下降,原因如下:

动态和差异虚拟硬盘在其数据有效负载前面有一个 512 字节扇区位图。 尾部、头部和父定位符与 512 字节扇区对齐。 虚拟硬盘驱动器通常执行 512 字节的 Write 操作来更新这些结构,这会导致前面所述的 RMW 过程。

应用程序通常以 4 KB 大小(NTFS 的默认群集大小)的倍数执行 Reads 和 Writes。 动态和差异虚拟硬盘在其数据有效负载块前面有一个 512 字节扇区位图。 此位图会导致 4 KB 块不与物理 4 KB 边界对齐。 下图显示了不与物理 4 KB 边界对齐的 VHD 4 KB 块(突出显示)。

当前分析程序为更新有效负载数据而执行的每个 4 KB Write 操作都会导致磁盘上的两个块出现两次 Reads。 然后,这些块将更新并写回到两个磁盘块。 Windows Server 2016 中的 Hyper-V 可缓解 VHD 堆栈上 512e 磁盘上的一些性能影响。 Hyper-V 准备结构以对齐 VHD 格式的 4 KB 边界。 这种缓解措施可以避免在访问虚拟硬盘文件中的数据以及更新虚拟硬盘元数据结构时造成 RMW 影响。

如前所述,从早期版本 Windows Server 复制的 VHD 不会自动进行 4 KB 对齐。 可以使用 Convert-VHD 命令通过“从源复制”磁盘选项手动转换磁盘,从而以最佳方式对齐磁盘。

默认情况下,VHD 公开的物理扇区大小为 512 字节。 这种方法可确保在从早期版本的 Windows Server 移动应用程序和 VHD 时,依赖物理扇区大小的应用程序不会受到影响。

默认会使用 4 KB 物理扇区大小创建 VHDX 格式的磁盘,以优化常规磁盘和大扇区磁盘的性能状况。

建议:若要减少磁盘大小之间的兼容性问题,请实现 512e 驱动器来进行过渡大小调整。 若要充分利用 4 KB 扇区,请使用 VHDX 格式。

原生 4 KB 磁盘

Windows Server 2012 R2 和更高版本中的 Hyper-V 支持 4 KB 原生磁盘。 还可以通过在虚拟存储堆栈层中实现软件 RMW 算法来将 VHD 磁盘数据存储在 4 KB 原生磁盘上。 该算法会将 512 字节的访问和更新请求转换为相应的 4 KB 访问和更新。

由于 VHD 文件只能公开为 512 字节逻辑扇区大小磁盘,因此可能存在发出 512 字节 I/O 请求的应用程序。 在这种情况下,存储堆栈层的 RMW 算法满足请求并导致性能下降。 逻辑扇区大小为 512 字节的 VHDX 磁盘也会出现相同的结果。

可以将 VHDX 文件配置为公开为 4 KB 逻辑扇区大小磁盘。 此实现是 4 KB 原生物理设备上承载的磁盘的最佳性能配置。 但是,请务必确保 4 KB 逻辑扇区大小同时支持使用虚拟磁盘的来宾和应用程序。 VHDX 格式设置可在 4 KB 逻辑扇区大小设备上正常工作。

建议:避免将 4 KB 原生磁盘与 VHD 和 VHDX 文件一起使用,这可能会导致性能下降。 当需要 4 KB 原生磁盘时,VHDX 格式可在 4 KB 逻辑扇区大小设备上正常工作。

直通磁盘

可以将 VM 中的 VHD 直接映射到物理磁盘或逻辑单元号 (LUN),而不是映射到 VHD 文件。 这种方法的优点是,能够绕过根分区中的 NTFS 文件系统,从而减少存储 I/O 的 CPU 使用率。 但是,传递方法也存在风险,那就是在计算机之间移动物理磁盘或 LUN 比映射到 VHD 文件更困难。

建议:由于 VM 迁移方案引入的限制,请避免使用传递磁盘。

高级存储功能

对于高级存储功能,还需要考虑更多性能优化。

服务存储质量 (QoS)

在 Windows Server 2012 R2 及更高版本中,Hyper-V 包括为 VM 上的存储设置某些服务质量 (QoS) 参数的功能。 可以实现这些参数来获得以下几个好处:

在多租户环境中配置存储性能隔离

指定虚拟硬盘每秒最大和最小输入/输出操作数 (IOPS)

管理员可以限制存储 I/O,以防止一个租户消耗过多存储资源,从而影响其他租户。 设置最小 IOPS 值,并在未达到最佳性能阈值时接收通知。 最大/最小 IOPS 值以规范化 IOPS 的形式指定,其中每 8 KB 数据计为一个 I/O。

当存储 I/O 性能低于定义的阈值时接收通知,以高效运行 VM 工作负载

访问 VM 指标基础结构的存储参数,使管理员能够监视性能和退款相关参数

存储 QoS 也有一些限制:

仅适用于虚拟磁盘

差异磁盘不能包含其他卷上的父虚拟磁盘

副本站点的 QoS 与主站点分开配置

不支持共享 VHDX

有关详细信息,请参阅 Hyper-V 的存储服务质量。

建议:实现存储 QoS 以访问额外的存储参数,设置虚拟硬盘的最大/最小 IOPS 阈值,并监视磁盘性能。

大型 VM 的 NUMA I/O 注册表设置

Windows Server 2012 及更高版本支持将虚拟、非统一内存访问 (NUMA) 拓扑投影到 Hyper-V VM 中。 NUMA 支持有助于提高在配置了大量内存的 VM(或大型 VM)上运行的工作负载的性能。 若要启用此支持,大型 VM 配置需要 I/O 吞吐量方面的可伸缩性。 大型 VM 的一个示例是运行 64 个虚拟处理器的 Microsoft SQL Server。

以下 Windows Server 增强功能可实现大型 VM 的 I/O 可伸缩性要求:

来宾设备和主机存储堆栈之间创建的通信通道数增加。

更高效的 I/O 完成机制,涉及虚拟处理器之间的中断分布,以避免高开销的处理器间中断。

注册表项

为了支持增强功能,添加了或更新了一些注册表项,以允许调整通道数。 这些项位于:

HKLM\System\CurrentControlSet\Enum\VMBUS\\\StorChannel

路径的 \\ 部分对应于你的配置。 这些注册表项还可用于使处理 I/O 完成的虚拟处理器与应用程序分配给 I/O 处理器的虚拟 CPU 对齐。 注册表设置是设备的硬件键中按适配器配置的。

需要考虑以下两个关键设置:

ChannelCount (DWORD):可使用的通道总数。 最大值为 16 个。 通道计数默认为上限,等于虚拟处理器数除以 16。

ChannelMask (QWORD):通道的处理器相关性。 如果未指定此项设置或值为 0,则通道掩码默认为普通存储或网络通道的现有通道分布算法。 默认操作可确保存储通道不会与网络通道冲突。

建议:使用 Windows Server NUMA 注册表项设置来提高大型 VM 上运行的工作负载的性能。

卸载的数据传输集成

针对 VHD 的重要维护任务(例如合并、移动和压缩)涉及复制大量数据。 当前复制数据的方法需要在其他位置进行读写操作,这是一个非常耗时的过程。 此方法还使用主机上可用于其他目的(例如为 VM 提供服务)的 CPU 和内存资源。

存储区域网络 (SAN) 供应商正致力于提供几乎能瞬间复制大量数据的功能。 此存储设计用于允许磁盘上的系统指定特定数据集从个一位置到另一位置的移动。 此硬件功能称为“卸载数据传输”。

Windows Server 2012 及更高版本中的 Hyper-V 支持卸载数据传输 (ODX) 操作,因此复制的数据可以从来宾 OS 传递到主机硬件。 此方法可确保工作负载可以使用已启用 ODX 的存储,类似于在非虚拟化环境中运行。 Hyper-V 存储堆栈还会在 VHD 的维护操作期间发出 ODX 操作。 维护操作的示例包括合并磁盘和移动大量数据的存储迁移元操作。

建议:实现 ODX 操作,确保 VM 工作负载可以使用已启用 ODX 的存储,类似于在非虚拟化环境中运行。

取消映射通知集成

虚拟硬盘文件作为存储卷上的文件存在,并与其他文件共享可用空间。 由于这些文件往往很大,它们消耗的空间可能会迅速增长。 对更多物理存储的需求会影响 IT 硬件预算。 必须尽量加大物理存储使用量的优化力度。

在 Windows Server 2012 之前,来宾 OS 和 Hyper-V 主机中的 Windows 存储堆栈存在限制。 当应用程序删除虚拟硬盘中的内容时,会放弃该内容的存储空间。 删除的信息未传达到虚拟硬盘和物理存储设备。 这种行为会阻止 Hyper-V 存储堆栈优化基于 VHD 的虚拟磁盘文件的空间使用量。 此外,还会阻止底层存储设备回收已删除数据占用的空间。

在 Windows Server 2012 及更高版本中,Hyper-V 支持取消映射通知。 此功能使 VHDX 文件能够更高效地表示其包含的数据。 这种方法可以减小文件大小,并使底层物理存储设备可以回收未使用的空间。

只有 Hyper-V 特定的 SCSI、启发式 IDE 和虚拟光纤通道控制器允许从来宾 OS 发出 unmap 命令来访问主机虚拟存储堆栈。 在虚拟硬盘上,只有 VHDX 格式的虚拟磁盘才支持从来宾 OS 发出 unmap 命令。

建议:集成取消映射通知以提高 VHDX 文件的效率,并使基础物理存储设备能够回收未使用的空间。

相关链接

Hyper-V 术语

Hyper-V 体系结构

Hyper-V 服务器配置

Hyper-V 处理器性能

Hyper-V 内存性能

Hyper-V 网络 I/O 性能

检测虚拟化环境中的瓶颈

Linux 虚拟机



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3