Кроме того, для упрощения конфигурации удобно использовать какую-либо систему виртуализации, например Open VZ?.
Однако heartbeat слишком крив, монстрообразен и имеет кучу лишних зависимостей (т.к. включает в себя слишком много того, что мне, например, не нужно). Поэтому я начал его перепиливать, но закончить не смог. Пишу об этом здесь, чтобы помочь тем, кому heartbeat потребуется и кто сможет довести эту работу до конца.
Первое, что я сделал – вместо нескольких бинарных пакетов собрал один, а затем с помощью ldd и тыка стал выкидывать лишнее ;) Для моей конфигурации, описанной в приведенных выше ссылках, оказалось достаточно:
# find /usr/lib/heartbeat/
/usr/lib/heartbeat/
/usr/lib/heartbeat/ocf-shellfuncs
/usr/lib/heartbeat/heartbeat
/usr/lib/heartbeat/req_resource
/usr/lib/heartbeat/plugins
/usr/lib/heartbeat/plugins/InterfaceMgr
/usr/lib/heartbeat/plugins/InterfaceMgr/generic.so
/usr/lib/heartbeat/plugins/HBcompress
/usr/lib/heartbeat/plugins/HBcompress/bz2.so
/usr/lib/heartbeat/plugins/HBcompress/zlib.so
/usr/lib/heartbeat/plugins/HBauth
/usr/lib/heartbeat/plugins/HBauth/crc.so
/usr/lib/heartbeat/plugins/HBauth/md5.so
/usr/lib/heartbeat/plugins/HBauth/sha1.so
/usr/lib/heartbeat/plugins/HBcomm
/usr/lib/heartbeat/plugins/HBcomm/serial.so
/usr/lib/heartbeat/plugins/HBcomm/mcast.so
/usr/lib/heartbeat/plugins/HBcomm/ping_group.so
/usr/lib/heartbeat/plugins/HBcomm/ucast.so
/usr/lib/heartbeat/plugins/HBcomm/bcast.so
/usr/lib/heartbeat/plugins/HBcomm/ping.so
/usr/lib/heartbeat/ResourceManager
/usr/lib/heartbeat/mach_down
# find /etc/ha.d
/etc/ha.d
/etc/ha.d/shellfuncs
/etc/ha.d/resource.d
/etc/ha.d/resource.d/Filesystem
/etc/ha.d/resource.d/drbddisk
/etc/ha.d/resource.d/hto-mapfuncs
/etc/ha.d/rc.d
/etc/ha.d/rc.d/ip-request-resp
/etc/ha.d/rc.d/ip-request
/etc/ha.d/rc.d/status
/etc/ha.d/rc.d/ask_resources
/etc/ha.d/rc.d/hb_takeover
+ /etc/ha.d/ocf/resource.d, перенесенный из /usr/lib/ocf (и замена пути в скриптах)
+ ldd /usr/lib/heartbeat/heartbeat ;)
Инитскрипт там тоже можно значительно упростить, убрав, как минимум, использование ha_logd.
Вот это все (не считая ресурсов) я планировал упаковать в пакет heartbeat, под каждый необходимый мне ресурс я планировал держать отдельный пакет вида linux-ha-resource-[name] или linux-ha-resource-ocf-[name]. ha_logd и ha_logger я планировал выносить в отдельный пакет и писать для первого отдельный инитскрипт. Еще один пакет – это heartbeat-crm, куда я планировал положить все, необходимое для того, чтобы описать свою конфигурацию в стиле 2.x. Еще отдельно нужно было бы упаковать heartbeat-management и haclient. Разумеется, все
это косметика, но на большее я и не претендовал. Бороться с warnings – это в случае heartbeat вообще борьба с мельницами :( Не зря lakostis@
включил unresolved=relaxed ...
Последний выглядит наиболее перспективным, к страничке прикреплен оригинальный архив jhad и первая попытка его опакетить. Инитскрипт там надо переписывать по аналогии c postgresql (т.к. jhad не успевает остановиться за время, выделяемое stop_daemon), вместо скриптов, которые запускают/останавливают сервисы, там просто заглушки, реальные скрипты нужно писать по аналогии с соляркиными.
По вопросам работы jhad обращаться к Sergey Pinaev <dfo at antex.ru>, хотя мне тоже желательно рассказать о результатах ;)
Важный, как мне кажется, фрагмент из переписки с Сергеем:
UPDATED: HAD уже в Сизифе и в Бранче 4.0