Copias de seguridad a través de sistemas de archivos distribuidos

Copias de seguridad a través de sistemas de archivos distribuidos

Espero poder articular mi pregunta lo más precisa posible.

Estoy buscando una manera de hacer copias de seguridad de mis servidores vm tan pronto y con la mayor frecuencia posible, ya que los datos que manejan/producen son valiosos. Tengo un host KVM y al menos 2 invitados: servidor web (Apache/PHP) y servidor de base de datos (MySQL/Solr). No me importa mucho el anfitrión, sino los invitados. No quiero que profundices en KVM o virtualización para este tema. Este hilo debería ser aplicable a todos los entornos basados ​​en máquinas virtuales y también a todos los demás entornos. El escenario vm encaja bien porque es más complicado y representa una de las situaciones más complejas en mi imaginación. Al menos, lo necesito sobre esta base.

Actualmente, tengo copias de seguridad en máquina virtual e instantáneas basadas en LVM que genero 1 o 2 veces al día. En caso de una falla de hardware (que tuve recientemente), me pierdo una gran cantidad de datos en el mejor de los casos.

Entonces, una forma podría ser bajar cada aplicación/servicio y aplicar la mejor estrategia de respaldo disponible. Se debe considerar en cada caso.

Otra forma interesante parece ser el uso de un sistema de archivos distribuido. La idea es tener un sistema de archivos que actúe ligeramente como el registro binario de MySQL. O más general: captura todas las acciones de escritura en el sistema de archivos y las replica en otra máquina de forma asíncrona. Dependiendo de la red y la cantidad de datos escritos, esto puede terminar en segundos o minutos de latencia y no hace falta decir que se pierden todas las acciones retenidas en la caché. Entonces tengo una máquina virtual que se encuentra en un sistema de archivos distribuido que está instalado en el host de la máquina virtual. Luego, cada acción de escritura se aplica de forma asincrónica en un (digamos) servidor de respaldo. Cuando se trata de una falla de hardware, puedo cambiar al servidor de respaldo (en teoría) como nuevo maestro o simplemente copiar los archivos nuevamente al servidor maestro restaurado en caso de que el tiempo de inactividad sea más aceptable que la pérdida de datos. El efecto debería ser que la máquina virtual actúe como si se hubiera apagado inmediatamente segundos o minutos antes. Pero no horas. No busco una replicación maestro-maestro a nivel de sistema de archivos, ya que esto no es compatible con la mayoría de las aplicaciones, ¡especialmente servidores de bases de datos como MySQL!

Entonces mi pregunta es: ¿Hay alguien que ya haya adquirido alguna experiencia con este tipo de configuraciones o que tenga conocimientos tanto positivos como negativos para este intento de realizar una copia de seguridad de los datos? No tengo mucha experiencia con estos sistemas de archivos. Especialmente en confiabilidad y rendimiento.

Respuesta1

Un sistema de archivos distribuido no es una copia de seguridad, es redundancia. También hará una "copia de seguridad" de tus eliminaciones accidentales.

Dicho eso,DRBD.

Respuesta2

La mejor respuesta posible a su situación es el almacenamiento en clúster, mediante el cual los datos se almacenan de forma redundante a nivel de bloque. Hay varias formas diferentes de implementar esto, pero la mejor que puedo imaginar (al menos según sus especificaciones de tiempo de actividad) sería un clúster de pila abierta. Openstack distribuirá tanto el almacenamiento como la computación de modo que, en caso de una falla del hardware, tanto la ejecución como el almacenamiento sean redundantes e incesantes. En otras palabras, la mejor manera de mantener la integridad de los datos y el tiempo de actividad es asegurarse de que la aplicación no falle en primer lugar. Como señaló yoonix, esto no lo protegerá de errores lógicos/de usuario, pero la pila abierta también incluye herramientas para imágenes/copia de seguridad del disco: cargar una imagen y arrancar lleva minutos, si no segundos. Amazon Web Services y Rackspace son ejemplos de implementaciones de OpenStack. http://www.openstack.org/

Un buen lugar para comenzar con openstack es devstack (prácticamente un script de implementación con varios modos de implementación diferentes para probar) http://devstack.org/

La debilidad de esta implementación es la falta de hardware, este sistema no brilla exactamente en una oficina pequeña con solo dos servidores físicos o similares (aunque funciona muy bien con sistemas blade)

Respuesta3

¿Ha considerado migrar a una plataforma VMware y utilizar sus soluciones para ello?

'Fault Tolerance' (usando vLockstep) mantiene actualizada una segunda copia 'en espera' de cualquier VM con todos los cambios realizados en la versión principal de la VM. Si algo le sucede a la versión principal, el sistema conmuta por error a la VM secundaria inmediatamente. (poco o ningún tiempo de inactividad o impacto)

La 'alta disponibilidad' mantiene preparada una máquina virtual en espera, pero la máquina virtual en espera se mantiene apagada. En caso de que falle la máquina virtual principal, el sistema enciende automáticamente la máquina virtual en espera. (varios minutos de inactividad)

Esto funciona muy bien y es muy confiable. Pero es costoso. Si no tiene el presupuesto para las licencias necesarias para ejecutar estas tecnologías, esta sugerencia no le ayudará en absoluto. Con suerte, al menos le dará más ideas sobre las herramientas que existen.

información relacionada