多种体系结构通用的最佳做法

 

上一次修改主题: 2005-05-13

在集中介绍适用于具体存储体系结构的最佳实践之前,应先熟悉多种体系结构都适用的最佳实践。不管公司的存储体系结构如何,都必须考虑下列组件:

  • 硬盘
  • 内存缓存
  • 存储控制器
  • 心轴
  • RAID
  • 总线
  • SCSI 适配器
  • 电源

与其他组件相比,更多时候会涉及硬盘优化,因此首先讨论该主题。通常,下列最佳实践适用于硬盘优化:

  • 容量规划是存储规划的重要方面。为了优化 Exchange 服务器性能,应该购买很多快速硬盘(更高的磁盘访问速度)。有关规划存储容量的详细信息,请参阅 Windows Server 2003 部署指南中的“Planning Storage for Each Server Configuration”。
  • 对于事务日志卷(顺序磁盘访问),请使用转速更快的磁盘。对于数据库驱动器(随机磁盘访问),请使用寻道更快的磁盘。
  • 使用能够检测即将出现的故障以及可以抢救或重定位受影响数据的磁盘系统。大多数磁盘驱动器都具备此功能。
  • 根据所使用的具体硬件 RAID 配置,对 I/O 限制进行规划。通常,对于每个写入请求,硬件 RAID 都生成下列 I/O:
    • RAID-0 = 1 次写入
    • RAID-1 或 RAID-10 = 2 次写入
    • RAID-5 = 4 次写入
      使用以下公式计算 I/O 限制:
      (IOPS/邮箱 × 读取比率) + ((IOPS/邮箱 × 写入比率) ×RAID 限制)
      例如,如果每个邮箱有 1,500 IOPS(使用本指南前面介绍的步骤计算得到),读取比率是 66%/33%(每三个请求中有两个是读取请求,另一个是写入请求),并且使用 RAID-1 或 RAID-10 阵列,则实际硬件 IOPS 是:
      (1,500 × 2/3) + ((1,500 × 1/3) × 2) = 2,000
      对 RAID-5 阵列应用相同情形,实际硬件 IOPS 是:
      (1,500 × 2/3) + ((1,500 × 1/3) × 4) = 3,000
      如果所有驱动器都是 10,000 RPM,则至少需要 30 个驱动器才能在 RAID-5 配置中获得必需的 IOPS。如果实现 RAID-1 或 RAID-10,则需要至少 20 个驱动器(在 RAID-1 或 RAID-10 解决方案中,磁盘数不能为奇数)。
  • 大多数情况下,应使用 DiskPar 来使硬盘磁道与物理磁盘分区对齐。由于 Windows 2000 和 Windows Server 2003 将最大隐藏扇区数限制为 63 个,因此,对于每个磁道具有 63 个以上扇区的磁盘,其默认启动扇区是第 64 个扇区。Windows 2000 和 Windows Server 2003 所创建的所有分区都从第 64 个扇区开始,这使得写入磁盘的每八个数据块中有一个数据块会跨越两个磁道。有关详细步骤,请参阅 Exchange Server 2003 Performance and Scalability Guide上的“如何将 Exchange I/O 与存储磁道边界对齐”。请注意,Diskpart 只能用于基本磁盘。Diskpar 不能用于动态磁盘。

下表总结了其余每个存储组件的最佳实践。

优化常见存储组件的最佳实践

组件 最佳实践
  • 内存缓存

由于在物理内存变得有限时内存会缓存到磁盘中,因此请确保有足够的可用内存。内存不足时,将有更多页被写入磁盘,从而导致磁盘活动增加。有关优化虚拟内存的详细信息,请参阅 Microsoft 知识库文章 815372“How to optimize memory usage in Exchange Server 2003”。

而且,请确保对页面文件大小的设置合理。有关如何设置页面文件的信息,请参阅 Microsoft Windows 2000 资源工具包中的“Evaluating Memory and Cache Usage”。

较多的缓存有助于使磁盘 I/O 请求高峰发生偏移。但应注意的是,更多的缓存很少能解决心轴不足的问题,而心轴足够多时却可以不用较大的缓存。

  • 存储控制器

如果有电池供电的缓存,请启用写入缓存,以提高事务日志文件卷和数据库卷上的磁盘写入性能。写入缓存对写入 I/O 请求提供的响应时间是 2 ms,而不是 10 到 20 ms。启用写入缓存可以大大改善对客户端执行的任何提交操作的响应能力。

读取缓存不会改善性能,因为它只在顺序磁盘读取中有用,而顺序磁盘读取只发生在事务日志文件中。只有当回放事务日志文件时(例如,在数据库还原后或服务器没有正确关机时),才会读取事务日志文件。

缓存越大,就能缓冲越多的数据,这意味着可以提供的饱和时段就会越长。

如果控制器允许配置缓存页面大小,则应将其设置为 4 KB。较大的页面大小(如 8 KB)会导致缓存浪费,因为 4 KB I/O 请求会占用整个 8 KB 的缓存页,从而导致可用缓存减少一半。

  • 心轴

心轴比容量更重要,如果心轴支持较高的随机 I/O 请求数,则可以使 Exchange 性能得到改善。

如果使用 Raid-1+0,则可以使用以下公式并将结果取整到下一个偶数来计算心轴数:

1.25 × [(邮箱数 × 每个邮箱 IOPS / 每个心轴 IOPS ) + 读取 I/O 比率] / [读取 I/O 比率+ (写入 I/O 比率/ 2)] = 心轴数

该公式考虑到如下的规划:不超过总使用率的 80%,并确保即使在心轴出现故障的情况下也有足够的可用 I/O。

  • RAID

应该根据公司的成本与性能权衡来选择应使用的 RAID 解决方案。因此,在很多情况下,可能建议您根据特定的数据存储要求而采用多种类型的 RAID 解决方案。一般的建议是:

  • 事务日志文件卷、数据库卷和 SMTP 队列使用 Raid-1+0。
  • 事务日志文件卷、SMTP 队列和 MTA 队列使用 Raid-1。
  • 通常,Raid-5 不能很好地顾及到可靠性/可用性与性能之间的权衡。
  • 建议绝不要采用 Raid-0。
  • 总线

吞吐速度越高,所提供的性能越好。. 通常,与 IDE 或 ATA 总线相比,SCSI 总线能够提供更快的吞吐速度和更好的可伸缩性。

可以使用以下公式来计算总线的理论吞吐量限制值:

(总线速度(位) / 每字节 8 位) × 操作速度 (MHz) = 吞吐量 (MB/s)

通过将多个驱动器分散放在独立的 I/O 总线上,也可以提高性能。

  • SCSI 适配器
  • 吞吐速度越高,所提供的性能越好。使用制造商的规格可以确定适配器能够处理的 I/O 数量。请记住,适配器执行的某些处理专门将 I/O 请求引向正确的设备。