传输服务器的存储设计

 

适用于: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

上一次修改主题: 2009-01-26

边缘传输服务器和集线器传输服务器是可执行下列传输任务的服务器角色:

  • 将邮件传入和传出组织。

  • 将邮件传入和传出邮箱服务器。

  • 传输统一消息服务器提交的语音邮件。

为了确保在整个 Exchange 组织中实现有效的邮件流和邮件传递,边缘传输服务器和集线器传输服务器应正确地设计存储解决方案。

本主题提供的信息和示例可以帮助您确定边缘传输服务器和集线器传输服务器对容量和输入/输出 (I/O) 的要求。

边缘传输服务器对容量和 I/O 的要求

边缘传输服务器的设计必须满足每个组织对容量和事务性 I/O 的要求。正确地控制队列增长并尽快地路由邮件,使服务级别协议 (SLA) 不会受到负面影响,这一点是至关重要的。下列几个因素会影响边缘传输服务器的总容量:

  • 邮件跟踪日志

  • 协议日志

  • 邮箱数据库

  • 连接日志

  • 代理日志

包含邮件队列数据库的驱动器上至少必须有 500 MB 的可用空间和可用数据库空间,否则,传输系统将激活反向施压功能,反向施压功能是 Microsoft Exchange Server 2007 传输服务的系统资源监视功能。

note注意:
在 Exchange Server 2007 的正式发布 (RTM) 版本中,当可用空间降到 4 GB 以下时,传输系统将激活反向施压功能。在 Exchange 2007 Service Pack 1 中该阈值降低到 500 MB。

反向施压功能的默认值由 PercentageDatabaseDiskSpaceUsedHighThreshold 参数控制,如果需要,可以修改此参数。有关反向施压功能的详细信息以及配置反向施压功能的选项,请参阅了解反压

如果启用了邮件跟踪日志,则需要更大的容量。邮件跟踪对容量的要求取决于传输服务器接收的邮件数。如果组织当前使用 Microsoft Exchange Server 2003,可以确定当前的日志生成速率,并为保留数据的天数设置硬性限制,例如 10 天。Microsoft 每个工作日生成 220 MB 的邮件跟踪日志(周末会少一些),并确保容量足以容纳一周的日志(大约 1.3 GB)。协议日志、连接日志和代理日志的大小由于活动的不同而有所不同。作为参考点,Microsoft 的生产传输服务器:

  • 每天在边缘传输服务器上生成 5 到 15 GB 的协议日志。确保容量足以容纳协议日志配额,即 15 GB。

  • 每天在边缘传输服务器上生成 100 MB 的连接日志。确保容量足以容纳一周的日志,即大约 600 MB。

  • 每天在边缘传输服务器上生成 250 MB 的代理日志。确保容量足以容纳一周的日志,即大约 1.5 GB。

对于事务日志,由于使用循环日志记录限制正常的日志创建,所以不需要太大的磁盘容量。因此,可以将事务日志放在包含操作系统的逻辑单元号 (LUN) 上。Microsoft 对此 LUN 使用双磁盘镜像。

数据库 (mail.que) 不会无限期存储项目,保留的容量应为平均邮件大小乘以最大队列大小(在队列处于最大大小并且服务器已关闭的情况下)。由 500,000 个项目组成的、平均邮件大小为 50 KB 的队列,在数据库中的数据大约为 25 GB。

对传入邮件运行防病毒扫描的边缘传输服务器需要为防病毒隔离提供足够的空间。对磁盘 I/O 资源的要求取决于受病毒感染的传入邮件的百分比,该百分比通常很小。受感染邮件和附件的数量及其保留在隔离中的时间确定隔离所需的空间量。尽管每个组织的实际需要各有不同,但是,1 GB 磁盘空间是个不错的起点。

对于大多数边缘传输服务器部署,建议您为数据库大小增加 20% 的额外开销因子(在考虑了所有其他因素之后)。此值将考虑到数据库的内部结构,确保在邮件流的峰值或变化导致数据库增大时,可以提供充足的空间。

边缘传输服务器的容量示例

在此示例中,事务日志存储在操作系统分区 (C:) 上,该分区由电池供电的缓存独立磁盘冗余阵列 (RAID) 控制器托管。对容量的要求很小(在几 MB 的范围内)。

确定边缘传输服务器容量的过程分为两个步骤。首先计算数据库大小,然后确定事务日志大小。

步骤 1:数据库大小

假设在 24 小时的期限内,边缘传输服务器平均每秒接收 5 封邮件(平均大小为 50 KB),队列最多包含 500,000 个项目。考虑了所有其他因素后,再增加 20% 的额外开销,磁盘总大小为 58 GB,如下表中所示。

数据库大小

队列最大大小 队列容量 协议日志 邮件跟踪日志 防病毒隔离 连接日志 代理日志 可用空间 磁盘总大小

500,000

大约 25 GB (500,000 × 50 KB)

15 GB

1.3 GB

1 GB

600 MB

1.5 GB

4 GB

58 GB (48 GB + 20%)

步骤 2:事务日志大小

若要确定事务日志大小,必须考虑事务性 I/O、其他磁盘 I/O 以及每封邮件每秒的数据库 I/O (IOPS)。

事务性 I/O

如果服务器拥有足够的可用内存,传入邮件将存储在 RAM 和事务日志中,对磁盘的影响最小。内存资源不足时,则只将邮件的前 128 KB 存储在内存和事务日志中。邮件的其他部分存储在数据库中。在内容转换过程中,数据流向一个临时位置,以便进行处理。这个临时位置由 EdgeTransport.exe.config 文件中的 TemporaryStoragePath 设置加以指定。默认情况下,TemporaryStoragePath 值已设置为“C:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Temp”。

note注意:
默认情况下,EdgeTransport.exe.config 文件位于 %ProgramFiles%\Microsoft\Exchange Server\Bin 文件夹中。

因此,将 temp 目录与数据库放在同一个 LUN 上是至关重要的。同样重要的是,将存储控制器缓存设置为 50% 读取和 50% 写入。如果没有大幅增长的队列,则几乎没有读取操作的磁盘 I/O。如果存在队列,邮件可能不会存储在数据库缓存中,因此需要更多的磁盘 I/O。

其他磁盘 I/O

除了事务性 I/O 之外,系统上可能还会进行其他磁盘 I/O。例如:

  • 启用邮件跟踪日志要求磁盘 I/O 增加 2%–5% 的额外开销。

  • 启用协议日志和连接日志产生的磁盘 I/O 开销很少,取决于传入邮件的数量。

  • 启用默认代理日志产生的磁盘 I/O 开销很少,尽管在使用自定义代理时,可能需要更多的磁盘资源。

  • 反垃圾邮件操作和防病毒操作在内存中进行,需要更多的 CPU 资源。

在测试期间,确保使用期望在生产中使用的所有服务来测试边缘传输服务器。

每封邮件的数据库 IOPS

在 Microsoft 的内部测试期间,使用的平均邮件大小是 60 KB。许多组织在调整传输服务器大小时会考虑特定的邮件速率,例如每秒 20 封邮件。此邮件速率将需要 140 (20 × (4.5 + 2.5)) 个数据库 I/O 和 220 (20 × 11) 个日志 I/O。

队列形成后,将需要更多的读取操作,特别是在 RAID-1/0 中,因为每个物理磁盘都会对读取请求做出响应,如下表中所示。

每封邮件的数据库 IOPS

边缘传输数据库 I/O(稳定状态) 接近边缘 I/O

每封邮件(大约 60 KB)的总 IOPS

18

每封邮件的日志写入 I/O(顺序)

11

每封邮件的数据库写入 I/O(随机)

4.5

每封邮件的数据库读取 I/O(随机)

2.5

note注意:
上表中的数字是许多服务器在生产中的平均值,上下最高浮动 30%。其他功能(例如日记和传输规则)也会影响每封邮件预计的 I/O,这些功能将影响本主题中提供的生产数字示例。

对边缘传输服务器的硬件设计应用大小调整准则

确定对边缘传输服务器的容量和事务性 I/O 要求后,可以将要求应用于建议的硬件设计中。有关处理器和内存的配置,请参阅规划处理器配置规划内存配置。在设计边缘传输服务器时,重要的是系统中拥有足够的 RAM(每封邮件需要 8 或 9 KB 的内存),以避免将排队邮件正文暂时缓存到磁盘上。

边缘传输服务器使用可扩展存储引擎 (ESE) 数据库。在将出现较大队列的环境中,将日志文件和数据库文件分别放在各自的物理磁盘上,对于弹性和实现最佳性能是至关重要的。在对磁盘 I/O 要求较低的较小部署中,也许可以将事务日志和数据库放在同一个 LUN 上。边缘传输服务器(例如邮箱服务器)要求 I/O 响应时间小于 20 毫秒。

重要的是使用电池供电的缓存 RAID 控制器,并在每天晚上运行数据库维护。此外,还应确保所选的磁盘类型可以在容量和性能之间实现很好的平衡。

边缘传输服务器的硬件设计大小调整示例

此示例说明如何根据每秒预计的邮件数设计存储。在此示例中,边缘传输服务器每秒处理 20 封邮件,数据库 LUN 要求 140 IOPS,日志 LUN 要求 220 IOPS。始终增加 20% 的增长因子,以便磁盘 I/O 性能可以处理超过平时的负载。磁盘布局为 RAID10。有关硬件大小调整的结果,请参阅下表。

硬件大小调整

磁盘 (1) 和 (2),RAID1 布局 磁盘 (3)、(4)、(5) 和 (6),RAID10 布局

操作系统日志和事务日志 220 + 20% = 264 IOPS

数据库日志、协议日志和邮件跟踪日志以及防病毒隔离 140 + 20% = 168 IOPS

此示例对数据库 LUN 容量的要求大约为 70 GB,可以容纳一周的数据。如果需要两周的数据,应将容量要求翻倍至 140 GB。在 RAID10 配置中,使用 146 GB 的物理磁盘将允许 292 GB 的 LUN。

集线器传输服务器对容量和 I/O 的要求

集线器传输服务器的设计必须也要满足组织对容量和事务性 I/O 的要求。与边缘传输服务器相同,包含邮件队列数据库的驱动器上必须存在至少 500 MB 的可用空间和可用数据库空间,否则,传输系统将激活反向施压功能。可以在集线器传输服务器上修改 PercentageDatabaseDiskSpaceUsedHighThreshold 参数的默认值。

note注意:
在 Exchange Server 2007 的 RTM 版本中,当可用空间降到 4 GB 以下时,传输系统将激活反向施压功能。在 Microsoft Exchange 2007 Service Pack1 (SP1) 中该阈值降低到 500 MB。

邮件跟踪日志的容量取决于传输服务器接收的邮件数。如果组织当前使用 Exchange 2003,可以确定当前的日志生成速率,并为保留数据的天数设置硬性限制,例如 10 天。Microsoft 每个工作日在集线器传输服务器上生成 700 MB 的邮件跟踪日志(周末会少一些),并确保容量足以容纳一周的日志,即大约 4.5 GB。

协议日志大小由于活动的不同而有所不同。Microsoft 每天在集线器传输服务器上生成 2.7 GB 的协议日志,并确保容量足以容纳一周的日志,即大约 16 GB。

对于事务日志,由于使用循环日志记录限制正常的日志创建,所以不需要太大的磁盘容量。因此,可以将事务日志放在操作系统 LUN 上。Microsoft 对此 LUN 使用双磁盘镜像。

数据库 (mail.que) 不会无限期存储项目,保留的容量应为平均邮件大小乘以最大队列大小(在队列处于最大大小并且服务器已关闭的情况下)。由 500,000 个项目组成的、平均邮件大小为 50 KB 的队列,在数据库中的数据大约为 25 GB。

对于大多数集线器传输服务器部署,在考虑了所有其他因素后,建议您还要为数据库大小增加 20% 的额外开销。

传输转储程序

包含下列服务器的站点中的集线器传输服务器需要特别考虑:

  • 使用 Exchange Server 2007 RTM 或 Exchange 2007 SP1 在群集连续复制 (CCR) 环境中部署的群集邮箱服务器。

  • 运行 Exchange 2007 (SP1) 并且包含一个或多个启用了本地连续复制 (LCR) 的存储组的邮箱服务器。

部署上述任一环境时,确保设计的集线器传输服务器容量足以在足够长的时间内存储其站点中所有存储组的邮件,这样,可以在主动节点非计划停机时恢复邮件。此功能称为“传输转储程序”。

传输转储程序的 I/O 开销类似于队列的增长。可以使用以下两个参数来控制邮件保留在传输转储程序中的时间:MaxDumpsterSizePerStorageGroupMaxDumpsterTimeMaxDumpsterSizePerStorageGroup 的默认值为 18 MB。若要根据您的环境适当调整传输转储程序的大小,应采用可接受的最大邮件大小并将该大小增大 50%。例如,如果邮件配额为 10 MB,则需要将 MaxDumpsterSizePerStorageGroup 设置为 15 MB。如果多个集线器传输服务器与 CCR 环境或运行 Exchange 2007 SP1 的 LCR 环境中的群集邮箱服务器位于同一个 Active Directory 目录服务站点中,该群集邮箱服务器上存储组的总存储将分布在所有集线器传输服务器上。例如,如果有四个包含 15 MB 传输转储程序的集线器传输服务器,该存储组将有一个 60 MB 的传输转储程序。

对于没有邮件大小限制的组织,建议将 MaxDumpsterSizePerStorageGroup 的值设置为组织中发送的平均邮件大小的 1.5 倍。此外,如果不设置最大邮件大小,无法保证在 CCR 环境中发生意外故障转移之后或在运行 Exchange 2007 SP1 的 LCR 环境中激活被动副本之后,返回该邮件。

建议将 MaxDumpsterTime 设置为默认值 7 天。

传输转储程序占用的容量应为存储组数乘以最大传输转储程序大小。如果最大传输转储程序大小为 15 MB,并且集线器传输服务器在 LCR (Exchange 2007 SP1) 或 CCR (Exchange 2007 RTM) 环境中处理 100 个存储组,则应为该传输转储程序分配 1.5 GB。

传输转储程序大小调整示例

在此示例中,事务日志存储在包含操作系统分区 (C:) 的磁盘上,该分区由电池供电的缓存 RAID 控制器托管。对容量的要求很小(在几 MB 的范围内)。有关大小调整的结果,请参阅下表。

确定传输转储程序功能所需容量的过程分为两个步骤。首先计算数据库大小,然后确定事务日志大小。

步骤 1:数据库大小

假设在 24 小时的期限内,集线器传输服务器平均每秒接收 5 封邮件,队列最多包含 500,000 个项目。

传输转储程序大小调整

队列最大大小 队列容量 协议日志 邮件跟踪日志 传输转储程序 磁盘总大小

500,000

25 GB (500,000 × 50 KB)

15 GB

4.5 GB

1.5 GB

55 GB (46 GB + 20%)

步骤 2:事务日志大小

若要确定事务日志的大小,必须考虑事务性 I/O、其他磁盘 I/O 以及每封邮件的数据库 IOPS。

事务性 I/O

前面为边缘传输服务器列出的相同事务性 I/O 准则同样适用于集线器传输服务器。如上所述,在存储控制器上配置以下缓存设置尤其重要:50% 读取,50% 写入。

传输转储程序 I/O

启用传输转储程序后,磁盘 I/O 将增加。尽管数据库写入操作将增加,但是,数据库读取操作现在也会进行,在 Microsoft 生产服务器上,每封邮件平均大约三次读取。

其他磁盘 I/O

前面为边缘传输服务器列出的相同其他磁盘 I/O 准则同样适用于集线器传输服务器。在测试期间,使用期望在生产中使用的所有服务来测试集线器传输服务器是尤其重要的。

每封邮件的数据库 IOPS

在 Microsoft 的内部测试中,使用的平均邮件大小是 40 KB,启用传输转储程序需要集线器传输服务器上有更多的磁盘资源。许多企业在调整传输服务器大小时会考虑特定的邮件速率,例如每秒 20 封邮件。如果启用了传输转储程序,将需要 200 个数据库 I/O (20 × (7 + 3)) 和 140 个日志 I/O (20 × 7) 来应对每秒 20 封邮件的传入邮件速率。如果禁用了传输转储程序,将需要 40 个数据库 I/O (20 × 2) 和 40 个日志 I/O (20 × 2) 来应对每秒 20 封邮件的传入邮件速率。

队列形成后,将需要更多的读取操作,特别是在 RAID-1/0 中,因为每个物理磁盘都会对读取请求做出响应。有关详细信息,请参阅下表。

事务日志大小调整

集线器传输服务器数据库 I/O(稳定状态) 已启用传输转储程序 已禁用传输转储程序

每封邮件(大约 40 KB)的总 IOPS

17

4

每封邮件的日志写入 I/O(顺序)

7

2

每封邮件的数据库写入 I/O(随机)

7

2

每封邮件的数据库读取 I/O(随机)

3

0

note注意:
上表中的数字是许多服务器在生产中的平均值,上下最高浮动 30%。其他功能(例如日记和传输规则)将影响每封邮件预计的 I/O,这些功能将影响此示例中的值。

对集线器传输服务器的硬件设计应用大小调整准则

确定对集线器传输服务器的容量和事务性 I/O 要求后,可以将要求应用于建议的硬件设计中。有关集线器传输服务器的处理器和内存的配置,请参阅规划处理器配置规划内存配置。在设计集线器传输服务器时,重要的是系统中拥有足够的 RAM(每封邮件需要 8 或 9 KB 的内存),以避免将排队邮件正文暂时缓存到磁盘上。

集线器传输服务器使用 ESE 数据库。在将出现较大队列的环境中,或在使用传输转储程序时,将日志文件和数据库文件分别放在各自的物理磁盘上,对于实现最佳性能是至关重要的。在对磁盘 I/O 要求较低的较小部署中,也许可以将事务日志和数据库放在同一个 LUN 上。集线器传输服务器(例如边缘传输服务器)要求 I/O 响应时间小于 20 毫秒。

集线器传输服务器的硬件设计大小调整示例

根据每秒预计的邮件数设计存储是至关重要的。在此示例中,集线器传输服务器在禁用了传输转储程序的情况下,每秒处理 20 封邮件,数据库 LUN 要求 40 IOPS,日志 LUN 要求 40 IOPS。始终增加 20% 的增长因子,以便磁盘 I/O 性能可以处理超过平时的负载。磁盘布局将为 RAID1。此示例对数据库 LUN 容量的要求大约为 55 GB,可以容纳一周的数据。如果需要两周的数据,应将容量要求翻倍至 110 GB。在 RAID1 配置中,使用 140 GB 的物理磁盘将提供 140 GB 的数据库 LUN 以及 140 GB 的日志 LUN。有关结果,请参阅下表。

在禁用了传输转储程序的情况下每秒处理 20 封邮件的集线器传输服务器的硬件大小调整

磁盘 (1) 和 (2),RAID1 布局 磁盘 (3) 和 (4),RAID1 布局

操作系统日志和事务日志 40 + 20% = 48 IOPS

数据库日志、协议日志、邮件跟踪日志和防病毒隔离 40 + 20% = 48 IOPS

在下一个示例中,集线器传输服务器在启用了传输转储程序的情况下,每秒处理 20 封邮件。在此配置中,数据库 LUN 要求 200 IOPS,日志 LUN 要求 140 IOPS,再加上额外 20% 的增长因子。磁盘布局为 RAID10。此示例对数据库 LUN 容量的要求大约为 55 GB,可以容纳一周的数据库,如果需要两周的数据,则为 110 GB。在 RAID10 配置中,使用 140 GB 的物理磁盘将提供 280 GB 的数据库 LUN,在 RAID1 配置中,将提供 140 GB 的日志 LUN。

在启用了传输转储程序的情况下每秒处理 20 封邮件的集线器传输服务器的硬件大小调整

磁盘 (1) 和 (2),RAID1 布局 磁盘 (3)、(4)、(5) 和 (6),RAID10 布局

操作系统日志和事务日志 140 + 20% = 168 IOPS

数据库日志、协议日志、邮件跟踪日志和防病毒隔离 200 + 20% = 240 IOPS