Optimice el almacenamiento de correo en Zimbra Collaboration Suite

En uno de nuestros artículos anteriores sobre planificación de infraestructura durante la implementación de Zimbra Collabortion Suite en la empresa, se dijo que la principal limitación en el trabajo de esta solución es la velocidad de entrada / salida de los dispositivos de disco en los almacenes de correo. De hecho, en un momento en que varios cientos de empleados de la empresa acceden simultáneamente al mismo almacén de correo, el ancho del canal para escribir y leer información de los discos duros puede no ser suficiente para el servicio receptivo. Y si para instalaciones pequeñas de Zimbra esto no se convierte en un problema particular, entonces, en el caso de las grandes empresas y los proveedores de SaaS, todo esto puede llevar a un trabajo de correo electrónico que no responde y, como resultado, a una menor eficiencia de los empleados, así como a la violación del SLA. Es por eso que al diseñar y operar instalaciones Zimbra a gran escala, se debe prestar especial atención a la cuestión de optimizar el funcionamiento de los discos duros en el almacenamiento de correo. Veamos dos casos e intentemos averiguar qué métodos de optimización de la carga en los almacenamientos de disco se pueden aplicar en cada uno de ellos.

imagen

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

En la etapa de diseño de una instalación de Zimbra altamente cargada, su administrador tendrá que elegir qué sistema de almacenamiento de datos usar. Para decidir sobre este problema, debe saber que la carga principal en los discos duros es creada por MariaDB DBMS, el sistema de búsqueda Apache Lucene, así como el almacenamiento de blobs que forman parte de Zimbra Collaboration Suite. Es por eso que para el funcionamiento de estos productos de software bajo altas cargas es necesario utilizar equipos confiables y de alta velocidad.

En condiciones normales, Zimbra se puede instalar tanto en RAID desde discos duros como en almacenamiento conectado a través del protocolo NFS. En casos de instalaciones muy pequeñas, puede instalar Zimbra en una unidad SATA normal. Sin embargo, en instalaciones grandes, todas estas tecnologías demuestran varias desventajas en forma de velocidad de escritura reducida o baja confiabilidad, lo cual es inaceptable para las grandes empresas y, especialmente, para los proveedores de SaaS.

Es por eso que en condiciones de infraestructuras a gran escala, Zimbra es mejor usar SAN. Es ella quien en este momento es capaz de proporcionar el mayor ancho de banda para dispositivos de almacenamiento y, al mismo tiempo, debido a la capacidad de conectar una gran cantidad de caché, su uso prácticamente no conlleva riesgos significativos para la empresa. Una buena idea sería usar NVRAM, que se usa en muchas SAN para acelerar el rendimiento de grabación. Pero es mejor deshabilitar el almacenamiento en caché de los datos grabados en los discos, ya que puede provocar daños irreparables en los medios y la pérdida de datos en caso de problemas de alimentación.

En cuanto a la elección del sistema de archivos, la mejor opción sería utilizar el estándar para Linux Ext3 / Ext4. El matiz principal asociado con el sistema de archivos es que debe montarse con la opción -noatime . Este parámetro deshabilitará la función de fijar el tiempo 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, se deben usar los siguientes parámetros de la utilidad mke2fs :

-j : crea el sistema de archivos con un diario ext3 / ext4.
-L TITLE : para crear un nombre de volumen, luego úselo en / etc / fstab
-O dir_index : para usar un árbol de búsqueda hash para acelerar las búsquedas de archivos en directorios grandes
-m 2 : para reservar el 2% del volumen en sistemas de archivos grandes en el directorio raíz
-J size = 400 - Para crear un registro grande
-b 4096 - Para determinar el tamaño del bloque en bytes
-i 10240 : para el almacén de mensajes, esta opción debe coincidir con el tamaño promedio del mensaje. Debe considerar cuidadosamente este parámetro, ya que posteriormente su valor no se puede cambiar

Además, le recomendamos que habilite la sincronización de directorios para el almacenamiento de blobs, el almacenamiento de metadatos de búsqueda de Lucene y el almacenamiento de colas MTA. Esto debe hacerse por la razón por la que Zimbra usa la utilidad fsync para garantizar que escribirá blob con datos en el disco. Sin embargo, cuando el buzón de Zimbra o el MTA crean nuevos archivos durante la entrega del mensaje, se hace necesario escribir en el disco los cambios que ocurrieron en las carpetas correspondientes. Es por eso que incluso en el caso de que el archivo ya se haya escrito en el disco usando fsync , el registro de agregarlo a los directorios puede no tener tiempo para escribir en el disco y, como resultado, puede perderse debido a una falla repentina del servidor. Al usar dirsync, estos problemas se pueden evitar.

2. Optimización con una infraestructura de Zimbra en funcionamiento

A menudo sucede que después de varios años de operación de Zimbra, el número de usuarios aumenta significativamente y el servicio se vuelve cada vez menos receptivo todos los días. La solución a esta situación es obvia: solo necesita agregar nuevos servidores a la infraestructura para que el servicio vuelva a funcionar tan rápido como antes. Mientras tanto, está lejos de ser siempre posible agregar inmediatamente nuevos servidores a la infraestructura para aumentar su velocidad. A menudo, los gerentes de TI deben coordinar durante mucho tiempo la compra de nuevos servidores con el departamento de contabilidad o seguridad, además, los proveedores a menudo no logran retrasar el nuevo servidor o no entregar lo que se necesita.

Por supuesto, es mejor construir su infraestructura Zimbra con un margen para tener siempre un margen para su expansión y no depender de nadie, sin embargo, si el error ya se ha cometido, el administrador de TI solo puede suavizar sus consecuencias. Por ejemplo, un administrador de TI puede lograr un pequeño aumento en la productividad al deshabilitar temporalmente los servicios del sistema Linux, que acceden regularmente a los discos duros durante la operación y, como resultado, pueden afectar negativamente la velocidad de Zimbra. Entonces, por un tiempo puedes deshabilitar:

autofs, netfs - Servicios de descubrimiento de sistemas de archivos remotos
tazas - Servicio de impresión
xinetd, vsftpd - Servicios incorporados * NIX que probablemente no necesitará
portmap, rpcsvcgssd, rpcgssd, rpcidmapd : servicios de llamada a procedimientos remotos que se usan comúnmente junto con sistemas de archivos de red
dovecot, cyrus-imapd, sendmail, exim, postfix, ldap - Duplicados de las principales utilidades incluidas en Zimbra Collaboration Suite
slocate / updatedb : dado que Zimbra almacena cada mensaje en un archivo separado, iniciar el servicio updatedb a diario puede causar problemas y, por lo tanto, puede hacerlo manualmente durante la carga más pequeña del servidor

El ahorro de recursos del sistema como resultado de la desactivación de estos servicios no es muy significativo, pero incluso esto puede ser muy útil en condiciones cercanas a causas de fuerza mayor. Después de agregar el nuevo servidor a la infraestructura de Zimbra, se recomienda volver a habilitar los servicios previamente deshabilitados.

También es posible optimizar la operación de Zimbra moviendo el servicio syslog a un servidor separado para que no cargue discos duros de almacenamiento de correo durante la operación. Para estos fines, casi cualquier computadora, hasta una Raspberry Pi barata de una sola placa, es adecuada.

Para todas las preguntas relacionadas con la Suite Zextras, puede contactar al representante de la compañía "Zextras" Katerina Triandafilidi por correo electrónico katerina@zextras.com

Source: https://habr.com/ru/post/451920/


All Articles