Skip to main content

Как и что?

С помощью связки pacemaker+corosync+drbd+gfs2 можно кластеризировать что угодно. Базы (хотя лучше это делать через встроенные средства репликации), виртуальные машины, хоть майнкрафт сервер, вообщем - приложения без встроенных средств кластеризации или резервирования.

Как это все устроено?

  • corosync: Служба которая следит за состоянием хостов и принимает меры в зависимости от их не/доступности. С его помощью мы построим кластер.
  • pacemaker (к нему обращается corosync): Грубо говоря контролирует состояние приложения на хостах. Если служба обнаруживает, что приложение сдохло, то объявляет кворум и поднимает приложение на лучшем хосте. Поддерживает STONITH, т.е. служба на умершем хосте изолируется, чтобы не навредить работе приложения
  • drbd: "Рейд по сети". Если по научному - реплицируемое по сети блочное устройство. Device mapper.
  • gfs2: Файловая система рассчитанная для использования на реплицируемых блочных устройствах. Ее можно поставить на iSCSI диск и подключать к нескольким хостам (и даже одновременно пользоваться!), либо, как в нашем примере, на drbd и монтировать при сбое активного хоста