High Availability2
Для построения решений с High Availability (иначе — отказоустойчивых кластеров) в Сизифе в настоящее время все есть.
Немного истории. Система состоит из многих компонентов. И варианты их взаимодействия разнообразны. Раньше у нас использовался heartbeat+linux-ha-common+corosync1. Описание как оно все было построено High_Availability.
Программы развивались, heartbeat+linux-ha-common превратились в pacemaker+cluster-glue+resource-agents, corosync1 превратился в corosync2
Т.е. теперь мейнстрим это pacemaker+cluster-glue+resource-agents+corosync2
Детальное описание с картинками читать тут https://clusterlabs.org/pacemaker/doc/en-US/Pacemaker/2.0/html/Clusters_from_Scratch/index.html
Как заставить работать это в альте?
1. Ставим нужные пакеты:
# apt-get install corosync2 resource-agents crmsh
2. При настройке ssh-подключения для root по ключу (в отличие от инструкции по по вышеприведенной ссылке) нужно убрать комментарии в файле /etc/openssh/sshd_config для строк
Protocol 2 PermitRootLogin without-password PubkeyAuthentication yes AuthorizedKeysFile /etc/openssh/authorized_keys/%u /etc/openssh/authorized_keys2/%u .ssh/authorized_keys .ssh/authorized_keys2 PasswordAuthentication yes
Последняя директива дает возможность обычным пользователям подключаться с паролем.
Кроме того, полезно добавить в /etc/openssh/sshd_config директиву
AllowGroups sshusers
создать группу sshusers (# groupadd sshusers) и добавить туда пользователей, которым разрешено подключаться по ssh (# gpasswd -a <username> sshusers).
Изменения настроек нужно выполнить на всех узлах кластера.
При создании ключей нужно изменить алгоритм шифрования в команде
# ssh-keygen -t dsa -f ~/.ssh/id_dsa -N ""
например так;
# ssh-keygen -t ecdsa -f ~/.ssh/id_ecdsa -N ""
и потом
# cp ~/.ssh/id_ecdsa.pub ~/.ssh/authorized_keys
("слабые" алгоритмы типа DSA и RSA не поддерживаются).
3. Если есть необходимость управлять дополнительными ресурсами, нужно доставить недостающий пакет resource-agents-*
resource-agents - Open Source HA Reusable Cluster Resource Scripts resource-agents-CTDB - resource agent manages CTDB resource-agents-WinPopup - Resource script for WinPopup resource-agents-drbd - resource agent manage DRBD resource-agents-fio - resource agent manages fio resource-agents-iSCSI - resource agent manages iSCSI resource-agents-libvirt - resource agent manages libvirtd resource-agents-lvm - resource agent manage LVM resource-agents-lxc - resource agent manages lxc resource-agents-nfs - resource agent manage NFS resource-agents-tomcat - resource agent manages Tomcat resource-agents-xen - resource agent manage Xen Hypervisor
Нужные зависимости должны вытянуться автоматом.
4. Настраивать через crmsh по желанию. (см. документацию по crmsh)
Отзывы и баги приветствуются.