在Zimbra Collaboration Suite中优化邮件存储

在我们先前在企业中实施Zimbra Collabortion Suite期间有关基础结构规划的文章之一中,有人说此解决方案工作的主要限制是邮件存储中磁盘设备的输入/输出速度。 确实,当企业的数百名员工同时访问同一邮件存储库时,用于从硬盘驱动器写入和读取信息的通道宽度可能不足以响应服务。 而且,如果对于小型Zimbra安装而言,这并不是一个特殊的问题,那么对于大型企业和SaaS提供商而言,所有这些都可能导致电子邮件工作无响应,从而降低员工效率,并违反SLA。 因此,在设计和操作大型Zimbra装置时,应特别注意优化邮件存储中硬盘操作的问题。 让我们看两种情况,并尝试找出可以在每种情况下应用优化磁盘存储负载的方法。

图片

1.设计大型Zimbra安装时的优化

在高负载的Zimbra安装的设计阶段,其管理员将不得不选择要使用的数据存储系统。 为了决定这个问题,您应该知道硬盘驱动器上的主要负载是由MariaDB DBMS,Apache Lucene搜索系统以及Zimbra Collaboration Suite中包含的Blob存储创建的。 因此,要使这些软件产品在高负载下运行,必须使用高速且可靠的设备。

在正常情况下,Zimbra既可以安装在硬盘驱动器的RAID上,也可以安装在通过NFS协议连接的存储器上。 如果安装量很小,则可以将Zimbra安装在常规SATA驱动器上。 但是,在大型安装中,所有这些技术都以降低的写入速度或低可靠性的形式表现出各种缺点,这对于大型企业,尤其是SaaS提供者是不可接受的。

这就是为什么在大型基础架构条件下Zimbra最好使用SAN的原因。 正是目前,它能够为存储设备提供最高的吞吐量,同时,由于具有连接大量缓存的能力,其使用对企业几乎没有任何重大风险。 一个好主意是使用NVRAM,它在许多SAN中使用以加快记录性能。 但是最好禁用磁盘本身上已记录数据的缓存,因为在电源出现问题的情况下,它可能导致无法修复的介质损坏和数据丢失。

至于文件系统的选择,最好的选择是使用Linux Ext3 / Ext4的标准。 与文件系统相关的主要细微差别在于,应使用-noatime选项挂载该文件系统。 此参数将禁用固定最后一次访问文件的时间的功能,这将大大减少读取和写入的负担。 通常,在为Zimbra创建ext3或ext4文件系统时,应使用mke2fs实用程序的以下参数:

-j-使用ext3 / ext4日志创建文件系统。
-L TITLE-要创建卷名,然后在/ etc / fstab中使用它
-O dir_index-使用哈希搜索树来加快大型目录中的文件搜索
-m 2-在根目录下的大文件系统中保留2%的卷
-J size = 400-创建大日志
-b 4096-确定块的大小(以字节为单位)
-i 10240-对于消息存储,此选项应与平均消息大小匹配。 您应该仔细考虑此参数,因为此后其值不能更改

另外,我们建议您为Blob存储,Lucene搜索元数据存储和MTA队列存储启用目录同步 。 这样做的原因是,通常Zimbra使用fsync实用程序来保证它将带有数据的Blob写入磁盘。 但是,当Zimbra Mailbox或MTA在邮件传递过程中创建新文件时,有必要将相应文件夹中发生的更改写入磁盘。 这就是为什么即使在已经使用fsync将文件写入磁盘的情况下,将文件添加到目录的记录也可能没有时间写入磁盘,结果可能由于突然的服务器故障而丢失。 通过使用目录同步,可以避免这些问题。

2.使用有效的Zimbra基础架构进行优化

经常发生的情况是,在Zimbra运营了数年之后,其用户数量显着增加,并且服务的响应速度每天都在下降。 解决这种情况的方法是显而易见的:您只需要向基础架构中添加新服务器,即可使该服务像以前一样快速地工作。 同时,几乎不可能总是立即将新服务器添加到基础结构中以提高其速度。 通常,IT经理必须与会计或安全部门长时间协调购买新服务器,此外,供应商经常无法将新服务器延迟交付或无法交付所需的产品。

当然,最好总是以一定的余量来构建Zimbra基础架构,以便始终为其扩展留有余量,而不依赖于任何人,但是,如果已经犯了错误,IT经理只能消除其后果。 例如,IT经理可以通过暂时禁用Linux系统服务来提高生产率,该Linux系统服务在操作过程中定期访问硬盘,从而对Zimbra的速度产生负面影响。 因此,您可以暂时禁用:

autofs,netfs-远程文件系统发现服务
-印刷服务
xinetd,vsftpd-内置*您很可能不需要的NIX服务
portmap,rpcsvcgssd,rpcgssd,rpcidmapd-远程过程调用服务,通常与网络文件系统结合使用
dovecot,cyrus-imapd,sendmail,exim,postfix,ldap -Zimbra Collaboration Suite中包含的主要实用程序的副本
slocate / updatedb-由于Zimbra将每个消息存储在单独的文件中,因此每天启动updateb服务可能会导致问题,因此您可以在服务器负载最小的情况下手动进行操作

由于禁用这些服务而节省系统资源不是很重要,但是即使在不可抗力的情况下,这样做也非常有用。 将新服务器添加到Zimbra基础结构后,建议重新启用以前禁用的服务。

也可以通过将syslog服务移至单独的服务器来优化Zimbra的操作,以使其在运行过程中不加载邮件存储硬盘。 出于这些目的,几乎所有计算机,直到便宜的单板Raspberry Pi都适用。

有关Zextras Suite的所有问题,您可以通过电子邮件katerina@zextras.com与“ Zextras” Katerina Triandafilidi公司的代表联系。

Source: https://habr.com/ru/post/zh-CN451920/


All Articles