Я пытаюсь настроить свой первый кластер кардиостимулятора в качестве FTP-сервера. Установлены два Сервера со свежим centos 6.5 и proftpd
Первым шагом была установка кардиостимулятора и некоторых инструментов настройки с:
yum install pacemaker cman pcs ccs resource-agents
После запуска этой команды на каждом сервере я начинаю настраивать свой первый кластер Pacemaker с помощью следующих команд:
# ccs -f /etc/cluster/cluster.conf --createcluster ftpcluster
# ccs -f /etc/cluster/cluster.conf --addnode ftp01
# ccs -f /etc/cluster/cluster.conf --addnode ftp02
# ccs -f /etc/cluster/cluster.conf --addfencedev pcmk agent=fence_pcmk
# ccs -f /etc/cluster/cluster.conf --addmethod pcmk-redirect ftp01
# ccs -f /etc/cluster/cluster.conf --addmethod pcmk-redirect ftp02
# ccs -f /etc/cluster/cluster.conf --addfenceinst pcmk node1 pcmk-redirect port=ftp01
# ccs -f /etc/cluster/cluster.conf --addfenceinst pcmk node2 pcmk-redirect port=ftp02
Теперь я запускаю кластер на обоих узлах:
# service cman start
# service pacemaker start
Следующим шагом является установка ClusterIP и FTPService Ressource со следующими
# pcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip=10.2.1.50 cidr_netmask=32 op monitor interval=30s
# pcs resource create FTPService lsb:proftpd op monitor interval=30s
Если я запрашиваю статус, я получаю следующий результат:
# pcs status
Cluster name: ftpcluster
Last updated: Thu Jul 25 01:04:48 2013
Last change: Thu Dec 5 08:56:39 2013 via crmd on ftp01
Stack: cman
Current DC: ftp02 - partition with quorum
Version: 1.1.10-14.el6-368c726
2 Nodes configured
2 Resources configured
Online: [ ftp01 ftp02 ]
Full list of resources:
ClusterIP (ocf::heartbeat:IPaddr2): Started ftp01
FTPService (lsb:proftpd): Started ftp02
У меня вопрос о доступе к FTP-серверу. IP-адрес кластера работает на ftp01, а FTPService - на ftp02, и если я попытаюсь получить доступ к ftp 10.2.1.50, я получу ответ от ftp01.
Вопрос 1: В чем разница между ClusterIP и FTPService, почему я должен использовать службу FTP, если ClusterIP делает то же самое?
Вопрос 2: Что мне делать с этого момента, чтобы построить сценарий activ / active и как он работает? Это балансировка нагрузки или простой круговой алгоритм?
У вас есть ресурс кластера, IP-адрес, но IP-адрес может быть только на одном узле одновременно. Вы можете запустить ftp на обоих серверах, но по-прежнему сможете получать доступ только по одному с этим ip. Вероятно, вам понадобится балансировщик нагрузки, который будет обрабатывать соединения с внутренними ftp-серверами, а это уже другая проблема. Или вы можете иметь разные IP-адреса на обоих (которые у вас обычно есть) и использовать циклический DNS, чтобы иметь возможность добраться до одного или другого с тем же именем хоста. Но на самом деле вы бы не стали использовать кардиостимулятор ни в одном из этих случаев.
В принципе, я не думаю, что здесь решение проблемы с кардиостимулятором.
Обычные активные / активные ресурсы кластера (скажем, веб-серверы) будут выполняться с клонированными ресурсами: http://clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Clusters_from_Scratch/_reconfigure_pacemaker_for_active_active.html
В первую очередь виртуальный ip используется для доступа к службе кластера. Нужно привязать ftp сервер к vip (ip кластера). Я видел из вашей конфигурации, что вам не хватает некоторых фундаментальных деталей кардиостимулятора.
Если вы привязываете ftp-сервер к IP-адресу кластера, вам необходимо использовать ограничение или группу совместного размещения.
Дополнительные сведения о кластере кардиостимуляторов см. В документации на сайте Clusterlabs.
Ситуация у вас не так проста, как можно было бы подумать. Я работаю над такими решениями уже пару месяцев. Я также пробовал кластер linux. Вот что я знаю:
Сначала вам нужно понять, что ваши два приложения в вашей текущей конфигурации не могут быть активными / активными. Когда вы начнете думать об этом, вы заметите, что прямо сейчас вы достигли приложения, которое не прекращает работу, когда один из узлов выходит из строя. Но все данные на отказавшем узле (если его активный отказавший) не будут перенесены волшебным образом на второй узел. е. пользовательские папки не будут на втором узле (дело в том, что отказоустойчивый кластер не предоставляет хранилища).
Итак, прежде всего вам нужно хранилище, доступное с обоих узлов (третий сервер хранения), и файловая система, которая будет знать о кластере. Тогда вы можете начать думать об активном / активном решении. Но здесь опять же есть еще одно ограничение - когда сервер хранения выходит из строя, весь ваш кластер мертв как мертв.
Вы также можете сделать что-то подобное. Пусть glusterfs (или любая файловая система с поддержкой кластера) работает на обоих узлах кластера, и тогда у вас будет реплицированная файловая система (оба узла все время имеют одни и те же данные), но из моего опыта glusterfs работает очень медленно с небольшими файлами.