¿Cómo build un clúster personal?

Tengo un server Debian ejecutando algunos services (correo, web, git, mysql …). Pero está solo, lo que significa que si se rompe, tengo que repararlo para acceder a mis services.

Me gustaría poner un segundo server para que, si el primero muere, el segundo esté automáticamente listo para funcionar. No quiero que ninguno de estos serveres sea un maestro y el otro un esclavo. La idea es evitar fallas de hardware de cualquiera de los dos serveres.

Encontré mucha información sobre cómo crear algunos clusters grandes, pero no he encontrado nada que implique solo dos serveres.

Crear un entorno ha tiene muchas salvedades y es complicado, y muchas veces depende del software real (por ejemplo, la creación de un entorno maestro-esclavo para mysql es diferente de para postfix0

Si quiere comenzar y solo quiere tener dos sistemas y no tiene time para configurar todos sus daemons en consecuencia, debería echar un vistazo a drbd , raid-1 en la networking. Con eso, todo el contenido del dispositivo de bloques se replicará en tu otro sistema. Combine eso con algo como corosync o heartbeat y puede hacer que el otro sistema se haga cargo automáticamente.

En general, se networkinguce a:

  1. Tener algún tipo de almacenamiento compartido, ya sea SAN, drbd, etc. o tener soporte del sistema del server
  2. Detectar automáticamente una interrupción de un sistema y hacerse cargo de la responsabilidad (por ejemplo, IP o eliminarlo del clúster)

Si no tiene un sistema de almacenamiento compartido, normalmente debe tener soporte en su aplicación, tales sistemas son, por ejemplo, cassandra, mongodb, etc.

Heartbeat está en desuso.

Utilice Pacemaker + Corosync para clústeres 1 + 1, N + 1, N + N