sql >> Base de Datos >  >> RDS >> MariaDB

Actualizaciones sin tiempo de inactividad simplificadas con ClusterControl

“Mantenga su base de datos actualizada a la última versión, es por su seguridad” es algo que puede escuchar con frecuencia como un buen consejo y una mejor práctica cuando se trata de la administración de bases de datos. Por otro lado, actualizar su base de datos puede ser una tarea que requiere mucho tiempo. Incluso una actualización de versión secundaria requiere que pruebe minuciosamente la actualización en un entorno de prueba antes de actualizar su configuración de producción. ¿Así que cuál es el problema? Si solo te estás quedando atrás con una versión menor, no debería importar, ¿verdad? Bueno, puede que no... hasta que lo haga. ¿Y estás realmente preparado para correr ese tipo de riesgo?

A principios de este año, se identificó una nueva vulnerabilidad potencialmente peligrosa en Galera Cluster (CVE-2021-27928). A primera vista, vemos que la gravedad se marcó como alta y, cuando comenzamos a profundizar en el problema, parece realmente grave. Parece que un usuario SUPER puede ejecutar cualquier código arbitrario cambiando las variables wsrep_provider y wsrep_notify_cmd en el tiempo de ejecución. Le permite al usuario cargar la biblioteca .so y apuntar hacia un script que ejecutará el servidor. Como puedes imaginar, esta no es una buena situación. Claro, necesita tener acceso al usuario SUPER, y necesitaría tener algo disponible para ejecutar en el nodo de la base de datos, pero el hecho de que Galera pueda configurarse para ejecutar código arbitrario como un usuario 'mysql' es bastante malo en su propia.

Como de costumbre, en casos como estos, se crearon las correcciones y se enviaron nuevas versiones del software, que no se vieron afectadas por la vulnerabilidad. Este problema en particular se solucionó en MariaDB 10.5.9, 10.4.18, 10.3.28 y 10.2.37, así como en Percona XtraDB Cluster 5.6.51-28.46, Percona XtraDB Cluster 5.7.33-31.49 y Percona XtraDB Cluster 8.0.22-13.1. Todo parece volver a la normalidad. ¿Verdad?

Incorrecto. Hay innumerables sistemas que se ejecutan en producción que aún no se han actualizado a la nueva versión no afectada. El equipo de soporte de Variousnines está en contacto con muchos entornos de bases de datos y estamos trabajando constantemente con clientes potenciales para ayudarlos a migrar a un entorno administrado por ClusterControl. Vemos todo tipo de MySQL (y no solo MySQL) ejecutándose en versiones obsoletas, a veces incluso versiones que han llegado al final de su vida útil y ya no reciben actualizaciones de seguridad. Ese no debería ser el caso, especialmente si es un usuario de ClusterControl.

ClusterControl viene con un conjunto de funciones que lo ayudarán a mantenerse actualizado con todas las correcciones de seguridad. Echemos un vistazo:

En primer lugar, ClusterControl viene con informes operativos, uno de ellos es el informe de actualización de paquetes:

Al igual que todos los informes operativos de ClusterControl, el informe de actualización de paquetes se puede programar para ejecutarse regularmente y luego enviarse por correo electrónico. Contendrá información sobre las versiones de paquetes instaladas en los nodos y si hay algún tipo de actualización que deba realizarse:

El informe de actualización de paquetes presenta una lista de paquetes que deben actualizarse para todos bases de datos, balanceadores de carga, correcciones de seguridad y cualquier otro paquete instalado en el nodo. Para todos los paquetes del sistema, la solución es actualizarlos utilizando métodos estándar (apt, yum). Cuando se trata de bases de datos y balanceadores de carga, ClusterControl viene con una funcionalidad que le permite realizar la actualización de la versión secundaria directamente desde la interfaz de usuario.

Antes de ir allí, supongamos que la base de datos debe actualizarse. No desea continuar y ejecutar la actualización a ciegas, ya que podría causar problemas a su aplicación. No debería:las versiones menores no rompen la compatibilidad con versiones anteriores (excepto cuando usa MySQL 8.0; entonces sí, puede esperar cualquier cosa al pasar de 8.0.x a 8.0.x + 1); sin embargo, siempre hay algún riesgo involucrado. Lo que debe hacer primero es probar la actualización en un entorno separado.

Tenemos un clúster MariaDB Galera simple con ProxySQL y Keepalived:

Nos gustaría crear un clúster de prueba para poder probar la actualización proceso. Con ClusterControl, es tan fácil como usar el trabajo Crear clúster de réplica:

Podemos obtener los datos nuevos del clúster existente o podemos usar los datos de una copia de seguridad.

También tenemos que elegir un nodo de origen en el clúster de producción:

Luego tenemos que pasar por un asistente de implementación normal, elegir la versión y proveedor de la base de datos, definición de la contraseña raíz, etc. Concluimos pasando los nodos en los que se instalará el clúster.

Como resultado, verá un nuevo clúster en la lista con un marca clara de que se está replicando fuera del clúster de producción. Una cosa que vale la pena mencionar, en la configuración predeterminada, ClusterControl usará las últimas versiones de los paquetes para crear el clúster de réplica. Si desea volver a verificar solo las consultas, esto es suficiente. Si desea realizar todo el proceso de actualización, deberá fijar las versiones anteriores de los paquetes de MySQL para poder instalar una versión anterior (y luego desanclarlas y probar la actualización).

De una forma u otra, después de las pruebas exitosas, eventualmente querrá realizar la actualización. ClusterControl puede ayudarlo a lograr esto:

En Administrar -> Actualizaciones, encontrará una interfaz de usuario para realizar la actualización .

Puede usar "Buscar nuevos paquetes" para actualizar la base de datos de paquetes disponibles paquetes También podemos elegir qué nodos queremos actualizar y qué servicios: 

Simplemente confirme y listo:ClusterControl realizará la actualización y le proporcionará la última versión de los paquetes.

Como puede ver, ClusterControl hace que mantener sus bases de datos actualizadas sea fácil y directo. El único paso que debe manejar manualmente es la prueba adecuada. De lo contrario, ClusterControl puede realizar todo lo demás por usted. ¿Está interesado en obtener más información sobre cómo ClusterControl puede ayudarlo a administrar su base de datos de manera efectiva? Pruébelo gratis durante 30 días.