主机服务器架构利用的存储设计对主机和来宾的性能有着极大的影响。存储性能是驱动器、接口、控制器、缓存、协议、SAN、HBA、驱动程序和操作系统考虑事项的复杂混合体。通常,存储架构的整体性能是通过最大吞吐量、每秒最大 IO 操作数 (IOPS) 和延迟或响应时间来测量的。尽管这三个因素均非常重要,但 IOPS 和延迟与服务器虚拟化的关系最为密切。
存储连接:Hyper-V主机服务器可通过三种不同的方式访问独立磁盘和存储阵列:直接连接存储、iSCSI 存储区域网络和光纤通道存储区域网络。
1) 直接连接存储:直接连接存储通常包含主机服务器内部的硬盘驱动器,或者通过 SCSI、SAS 或者 eSATA 连接,直接连接到服务器的专用存储阵列中的硬盘驱动器。主机服务器利用内部 SCSI、SAS 或 SATA 控制器卡来支持服务器访问存储,并支持各种 RAID 级别。存储阵列通常为各服务器专用。
2) iSCSI 存储区域网络:iSCSI 已经成为一种日渐流行的存储网络架构,它支持在 TCP/IP 网络基础结构上使用 SCSI 协议。iSCSI 支持使用标准以太网组件来构建存储区域网络,例如 NIC、交换机和路由器等。一般情况下,iSCSI SAN 的实现成本低于传统光纤通道 SAN。iSCSI 架构中使用的存储阵列通常是低端到中端阵列,由多台主机服务器共享。建议为 iSCSI 连接使用冗余、专用的千兆以太网 NIC。
3) 光纤通道存储区域网络:光纤通道存储区域网络提供了高速度、低延迟的存储阵列连接。主机服务器可以利用主机总线适配器 (HBA),通过交换机和控制器连接到光纤通道 SAN。光纤通道 SAN 通常与中端到高端存储阵列配合使用,提供 RAID、磁盘快照、多路径 IO 等多种功能。
驱动器类型:主机服务器或存储阵列中使用的硬盘驱动器的类型对于整体存储架构性能的影响最大。硬盘驱动器的关键性能要素包括接口架构(例如,U320 SCSI、SAS、SATA)、驱动器转速(7200、10k、15k RPM)以及以毫秒为单位的平均延迟。驱动器上的缓存、本机命令队列 (NCQ) 等高级功能都支持能够提高性能的其他要素。考虑Hyper-V主机服务器调整和来宾性能时,与存储连接相似,高 IOPS 和低延迟比最大持久吞吐量要重要得多。在选择驱动器时,这还意味着应该尽可能选择转速最高、延迟最低的驱动器。通过使用 15k RPM 的驱动器取代 10k RPM 的驱动器,可以使每个驱动器的 IOPS 提高达 35%。
1) SCSI: SCSI 驱动器正迅速被 SATA、SAS 和光纤通道驱动器所取代。不建议对新主机服务器架构使用 SCSI 驱动器;然而,使用 U320 SCSI 驱动器的现有服务器仍然能提供卓越的性能特征。
2) SATA: SATA 驱动器是一种成本较低、性能相对较高的存储选择。SATA 驱动器的主要形式包括 1.5 GB/s 和 3.0 GB/s 标准(SATA I 和 SATA II),转速为 7200 RPM、平均延迟约为 4 毫秒。少数 SATA I 驱动器的运行转速为 10k RPM、平均延迟为 2 毫秒,此类驱动器能够提供卓越的低成本存储解决方案。
3) SAS: SAS 驱动器通常比 SATA 驱动器的成本高很多,但在两种吞吐量下均能大幅提高性能,更重要的是,延迟也更低。SAS 驱动器通常的转速为 10k 或 15k RPM,平均延迟为 2 到 3 毫秒。
4) 光纤通道: 光纤通道驱动器通常成本最高,性能特征通常与 SAS 驱动器相似,但使用不同的接口。选择光纤通道还是 SAS 驱动器通常由所选择的存储阵列来决定。与 SAS 相似,它们通常提供 10k 和 15k 两种 RPM,平均延迟相似。如果您正在使用光纤通道 SAN,请确保交换机和控制器基础结构已调整为可处理整合后的服务器生成的大量存储 I/O。
磁盘冗余架构:建议对所有 Hyper-V 主机存储都使用廉价磁盘冗余阵列 (RAID)。根据微软官方介绍,Hyper-V 主机可运行和存储来自多个工作负载的数据。为了确保在磁盘故障期间保持可用性,RAID 必不可少。除此之外,若能合理地选择和配置,RAID 阵列可使整体性能提升。
1)RAID1: RAID 1 指磁盘镜像。两个驱动器存储相同的信息,因此,一个驱动器是另一个驱动器的镜像。对于每一项磁盘操作,系统都必须向两个磁盘写入相同的信息。由于双重写入操作可能会降低系统性能,因此许多此类系统都利用双工,每个镜像驱动器都有自己的主机适配器。尽管镜像方法提供了出色的容错能力,但其实现成本相对较高,因为仅有半数的可用磁盘空间可用于存储,其他空间则用于镜像。
2)RAID5:也称为带奇偶校验的带区,这种级别的战略在低端和中端存储系统中广受欢迎。RAID 5 可将数据分带到分布在一个阵列的磁盘间的大块中。RAID 5 可跨 RAID 5 集的所有磁盘写入奇偶校验数据。数据冗余由奇偶校验信息提供。数据和奇偶校验信息按照两类信息始终位于不同磁盘的方式存放在磁盘阵列上。由于奇偶校验算法的特征,每次写入请求都会带来 3 次实际磁盘写入操作,这会降低写入性能。带奇偶校验的带区能够提供优于磁盘镜像 (RAID 1) 的性能。然而,在部分带区缺失时,读取性能将会降低(例如,在一块磁盘发生故障时)。RAID 5 能够比 RAID 1 更有效地利用驱动器空间,因此是一种成本较低的选择。
3)RAID10: 这个级别也称为带有带区的镜像。RAID 10 使用带区磁盘阵列,随后将其镜像到另一个完全相同的带区磁盘组。例如,可以使用五块磁盘创建一个带区阵列。带区磁盘阵列随后利用另外一组五块带区磁盘进行镜像。RAID 10 提供了磁盘带区的性能优势以及镜像的磁盘冗余。RAID 10 提供了高于其他任何一种 RAID 级别的最高读写性能,但代价是使用两倍数量的磁盘。
4)RAID50: 这是一种嵌套的 RAID 级别,结合了 RAID 0 的块级带区和 RAID 5 的奇偶校验。可将其视为包含多个 RAID 5 阵列的 RAID 0 阵列。这个级别可提升 RAID 5 的写入性能,还能提供比单一 RAID 级别更出色的容错能力。具体配置和磁盘数量将决定这种 RAID 级别的实际可用性和性能特征。这种 RAID 类型已经成为低端存储设备上的常用功能。
通常在对Hyper-V主机服务器设计存储的时候建议对所有主机服务器架构模式中的系统卷都使用 RAID,对单一主机服务器架构模式中的数据卷使用 RAID 1 或 RAID 10,RAID 5 和 50 有着固有的写入性能惩罚,所以通常不建议对虚拟化环境使用这些级别。
存储控制器架构:存储控制器可以是服务器添加卡,例如 SCSI 或 SAS 控制器,也可以是中端到高端存储阵列的一个组件。存储控制器提供了磁盘驱动器与服务器或存储区域网络之间的接口。影响存储控制器性能的设计要素包括接口或 HBA 类型、缓存数量以及独立通道的数量。
1)磁盘控制器或 HBA 接口:磁盘控制器接口决定了可利用的驱动器类型以及存储 I/O 的速度和延迟。下表汇总了最常用的磁盘控制器接口。
架构 |
吞吐量(理论最大兆字节/秒) |
iSCSI(千兆以太网) |
125 MB/s |
Fibre Channel (2 GFC) |
212.5 MB/s |
SATA (SATA II) |
300 MB/s |
SCSI (U320) |
320 MB/s |
SAS |
375 MB/s |
Fibre Channel (4 GFC) |
425 MB/s |
Fibre Channel (8 GFC) |
850 MB/s |
iSCSI(10 千兆以太网) |
1250 MB/s |
2)控制器缓存:在突发传送过程中,或者在频繁访问相同数据的时候,存储控制器缓存可将数据存储在缓存内存中,这种缓存的速度往往比物理磁盘 I/O 快几个数量级,因此能够提高性能。
3)控制器通道:存储控制器的内部和外部通道的数量对整体存储性能有着极大的影响。多个通道可提高可执行的同步读写 I/O 操作数 (IOPS),特别是使用高级 RAID 阵列时。