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 elegir un sistema de archivos, la mejor opción sería utilizar el estándar Linux Ext3/Ext4. El principal matiz asociado con el 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

A menudo sucede que después de varios años de uso de Zimbra, el número de usuarios aumenta significativamente y el servicio cada día responde menos. La salida a esta situación es obvia: basta con agregar nuevos servidores a la infraestructura para que el servicio vuelva a funcionar tan rápido como antes. Mientras tanto, no siempre es posible agregar inmediatamente nuevos servidores a la infraestructura para aumentar su rendimiento. Los administradores de TI a menudo tienen que dedicar mucho tiempo a coordinar la compra de nuevos servidores con el departamento de contabilidad o de seguridad; además, a menudo se ven decepcionados por proveedores que pueden entregar un nuevo servidor tarde o incluso entregar algo incorrecto.

Por supuesto, es mejor construir su infraestructura Zimbra con una reserva para tener siempre una reserva para su expansión y no depender de nadie, sin embargo, si ya se ha cometido un error, el administrador de TI solo puede suavizar sus consecuencias como tanto como sea posible. Por ejemplo, un administrador de TI puede lograr un pequeño aumento de productividad al deshabilitar temporalmente los servicios del sistema Linux que acceden regularmente a los discos duros durante la operación y, por lo tanto, pueden afectar negativamente el rendimiento de Zimbra. Entonces, puedes desactivar 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

Añadir un comentario