实用资料 | 虚拟化规划的指导原则和最佳实践( 三 )

  • 配置存储DRS以根据使用和延迟进行平衡 。
  • 对于光纤通道、NFS和iSCSI存储 , 可对存储进行相应设计 , 以降低延迟并提高可用性 。对于每秒要处理大量事务的工作负载来说 , 将工作负载分配到不同位置尤其重要(如数据采集或事务日志记录系统) 。通过减少存储路径中的跃点数量来降低延迟 。
  • NFS存储的最大容量取决于阵列供应商 。单个NFS数据存储的容量取决于将访问数据存储的每个虚拟机所需的空间 , 乘以在延迟可接受的情况下可以访问数据存储的虚拟机数量 。考虑将存储DRS配置为使其成员数据存储的使用量保持在80%(默认设置)的均衡水平 。
  • 单个VMFS数据存储的容量取决于将访问数据存储的每个虚拟机所需的空间 , 乘以在延迟可接受的情况下可以访问数据存储的虚拟机数量 。考虑配置存储DRS , 使数据存储使用量保持在80%的均衡水平 。保留10%到20%的额外容量 , 用于容纳快照、交换文件和日志文件
  • 为促进对iSCSI资源的稳定访问 , 应该为iSCSI启动器和目标配置静态IP地址 。
  • 对于基于IP的存储 , 应使用单独的专用网络或VLAN以隔离存储流量 , 避免与其他流量类型争用资源 , 从而可以降低延迟并提高性能 。
  • 根据可用性要求选择一个RAID级别 , 对大多数虚拟机工作负载而言 , 如果阵列具有足够的电池供电缓存 , RAID级别对性能不会产生影响 。
  • 对于大多数应用 , 除非存在对RDM的特定需求 , 否则请使用VMDK磁盘 。
    • 共享存储逻辑规划
    对于属主机与存储的连接应采用多链路 , 以提高负载及冗余 。
    确保每个ESXi主机内虚拟机并发IO队列长度与HBA适配卡设置保持一致 。
    底层LUN的需求根据实际虚拟机应用对存储IOPS的实际需求进行规划 。
    根据应用的需要设置LUN的RAID结构 , 如对于随机读写的数据库如Oracle、SQL数据库 , 建议在LUN级别采用RAID10结构 , 对于数据库日志通常为连续写或恢复时连续读 , 建议在LUN级别采用RAID5结构 。
    对于IO密集型的应用尽量采用单独的VMFS存储 , 避免在存储端与其他应用产生IO争用 。
    多个虚拟机共用一个数据存储或者多个主机共享一个数据存储时 , 可以启用存储队列QoS确保核心应用的延时在可控范围以及对数据存储读写的优先级 。
    通常情况下1~2TB的LUN大小具有较好的性能和可管理性 。
    磁盘阵列的选择应该满足整个虚拟化环境最大IOPS的吞吐量需求 , 并配置足够的存储处理器、缓存和端口数 。
    • 存储空间规划
    规划LUN容量时 , 建议每个LUN运行10到20个VM(数据事务类应用可以适当减少) , 并且每个LUN的使用量不超过容量的80% 。
    若VM需要直接访问存储卷 , 如NTFS或EXT3 , 应在存储中另外创建一LUN , 以RDM方式映射到VM , VM以裸磁盘方式使用 。
    LUN容量规划的公式如下所示 。
    LUN容量 = (Z x (X + Y) *1.25)
    其中:
    Z = 每LUN上驻留10个虚拟机
    Y = 虚拟磁盘文件容量
    X = 内存大小
    根据XXX客户的实际生产环境的情况 , 即:1GB内存 , 单一VMDK文件需要80GB , LUN容量计算如下:
    LUN容量= (10 x (1 + 80) * 1.25) ≈ 1000 GB
    • 存储分层规划
    每个存储层具有不同的性能、容量和可用性特征 , 只要不是每个应用都需要昂贵、高性能、高度可用的存储 , 设计不同的存储层将十分经济高效 。