Optimización del almacenamiento de correo en Zimbra Collaboration Suite

En uno de nuestros articulos anteriores, dedicado a la planificación de infraestructura a la hora de implementar Zimbra Collabortion Suite en una empresa, dijo que la principal limitación en el funcionamiento de esta solución es la velocidad de E/S de los dispositivos de disco en los almacenamientos de correo. De hecho, en un momento en que varios cientos de empleados de una empresa acceden simultáneamente al mismo almacenamiento de correo, el ancho del canal para escribir y leer información de los discos duros puede no ser suficiente para el funcionamiento receptivo del servicio. Y si para pequeñas instalaciones de Zimbra esto no será un problema particular, entonces en el caso de grandes empresas y proveedores de SaaS, todo esto puede llevar a que el correo electrónico no responda y, como resultado, a una disminución en la eficiencia de los empleados, así como a una infracción. de SLA. Por eso, al diseñar y operar instalaciones Zimbra a gran escala, se debe prestar especial atención a optimizar el rendimiento de los discos duros en el almacenamiento de correo. Veamos dos casos e intentemos descubrir qué métodos para optimizar la carga en el almacenamiento en disco se pueden aplicar en cada uno de ellos.

Optimización del almacenamiento de correo en Zimbra Collaboration Suite

1. Optimización al diseñar una instalación Zimbra a gran escala

Durante la fase de diseño de una instalación de Zimbra de alta carga, el administrador tendrá que elegir qué sistema de almacenamiento utilizar. Para decidir sobre este tema, debes saber que la carga principal en los discos duros proviene del DBMS MariaDB incluido en Zimbra Collaboration Suite, el motor de búsqueda Apache Lucene y el almacenamiento de blobs. Es por eso que para operar estos productos de software en condiciones de alta carga, es necesario utilizar equipos confiables y de alta velocidad.

En condiciones normales, Zimbra se puede instalar tanto en RAID de discos duros como en almacenamientos conectados mediante protocolo NFS. Para instalaciones muy pequeñas, puede instalar Zimbra en una unidad SATA normal. Sin embargo, en el contexto de grandes instalaciones, todas estas tecnologías presentan varias desventajas en forma de velocidad de grabación reducida o baja fiabilidad, lo que no es inaceptable ni para las grandes empresas ni, especialmente, para los proveedores de SaaS.

Es por esto que en infraestructuras Zimbra de gran escala lo mejor es utilizar una SAN. Es esta tecnología la que actualmente es capaz de proporcionar el mayor rendimiento para los dispositivos de almacenamiento y al mismo tiempo, gracias a la capacidad de conectar una gran cantidad de caché, su uso prácticamente no presenta riesgos importantes para la empresa. Es una buena idea utilizar NVRAM, que se utiliza en muchas SAN para acelerar las cosas durante las escrituras. Pero es mejor desactivar el almacenamiento en caché de los datos grabados en los propios discos, ya que puede provocar daños irreparables en los medios y pérdida de datos si se producen problemas de alimentación.

En cuanto a la elección del sistema de archivos, la opción óptima sería utilizar los estándar para Linux Ext3/Ext4. El principal matiz asociado al sistema de archivos es que debe montarse con el parámetro -noatime. Esta opción deshabilitará la función de registrar la hora del último acceso a los archivos, lo que significa que reducirá en gran medida la carga de lectura y escritura. En general, al crear un sistema de archivos ext3 o ext4 para Zimbra, debe utilizar los siguientes parámetros de utilidad mke2fs:

-j — Para crear un diario del sistema de archivos: cree el sistema de archivos con un diario ext3/ext4.
-L NOMBRE - Para crear un nombre de volumen para luego usarlo en /etc/fstab
-O índice_directorio - Utilizar un árbol de búsqueda con hash para acelerar las búsquedas de archivos en directorios grandes
-m 2 — Reservar el 2% del volumen en sistemas de archivos grandes para el directorio raíz
-Tamaño J=400 — Para crear una revista grande
-b 4096 — Para determinar el tamaño del bloque en bytes
-yo 10240 - Para el almacenamiento de mensajes, esta configuración debe corresponder al tamaño promedio de los mensajes. Debes prestar mucha atención a este parámetro, ya que su valor no se puede cambiar más adelante.

También se recomienda habilitar sincronización de directorios para almacenamiento de blobs, almacenamiento de metadatos de búsqueda de Lucene y almacenamiento de colas MTA. Esto debe hacerse porque Zimbra suele utilizar la utilidad fsync para garantizar la escritura de un blob con datos en el disco. Sin embargo, cuando el almacén de correo de Zimbra o MTA crea nuevos archivos durante la entrega del mensaje, se hace necesario escribir en el disco los cambios que se producen en las carpetas correspondientes. Por eso, incluso si el archivo ya se ha escrito en el disco usando fsync, es posible que el registro de su adición al directorio no tenga tiempo de escribirse en el disco y, como resultado, se pierda debido a una falla repentina del servidor. Gracias al uso sincronización de directorios Estos problemas se pueden evitar.

2. Optimización con la infraestructura Zimbra en ejecución

Suele ocurrir que, tras varios años de usar Zimbra, el número de usuarios aumenta considerablemente y el servicio pierde cada vez más capacidad de respuesta. La solución es obvia: simplemente añadir nuevos servidores a la infraestructura para restaurar la velocidad del servicio. Sin embargo, no siempre es posible añadir nuevos servidores de inmediato a la infraestructura para mejorar su rendimiento. Los responsables de TI suelen tener que dedicar mucho tiempo a coordinar la compra. nuevos servidores Además, a menudo los proveedores no entregan tarde un nuevo servidor o incluso entregan el artículo equivocado, incluso a los departamentos de contabilidad o seguridad.

Por supuesto, lo ideal es construir la infraestructura de Zimbra con margen de maniobra, para así tener siempre espacio para expandirse y no depender de nadie. Sin embargo, si ya se ha cometido un error, el administrador de TI solo puede mitigar sus consecuencias en la medida de lo posible. Por ejemplo, puede lograr una pequeña mejora en el rendimiento desactivando temporalmente los servicios del sistema. Linuxque acceden regularmente a los discos duros durante el funcionamiento y, como resultado, pueden afectar negativamente al rendimiento de Zimbra. Por ejemplo, puede deshabilitar temporalmente:

autofs, netfs - Servicios de descubrimiento remoto de sistemas de archivos
tazas de — Servicio de impresión
xinetd, vsftpd - Servicios *NIX integrados que probablemente no necesitarás
mapa de puertos, rpcsvcgssd, rpcgssd, rpcidmapd — Servicios de llamada a procedimientos remotos, que generalmente se utilizan junto con sistemas de archivos de red.
palomar, cyrus-imapd, sendmail, exim, postfix, ldap — Duplicados de las principales utilidades incluidas en Zimbra Collaboration Suite
ubicar/actualizardb - Dado que Zimbra almacena cada mensaje en un archivo separado, ejecutar el servicio actualizado todos los días puede causar problemas y, por lo tanto, es posible hacerlo manualmente durante la menor carga en los servidores.

El ahorro de recursos del sistema como resultado de la desactivación de estos servicios no será muy significativo, pero incluso esto puede resultar muy útil en condiciones cercanas a la fuerza mayor. Una vez que se agrega el nuevo servidor a la infraestructura de Zimbra, se recomienda volver a habilitar los servicios previamente deshabilitados.

También puede optimizar el funcionamiento de Zimbra moviendo el servicio syslog a un servidor separado para que durante el funcionamiento no cargue los discos duros de los almacenes de correo. Casi cualquier computadora es adecuada para estos fines, incluso una Raspberry Pi económica de placa única.

Fuente: habr.com

Compre alojamiento confiable para sitios con protección DDoS, servidores VPS VDS 🔥 Compra alojamiento web fiable con protección DDoS, servidores VPS VDS | ProHoster