CentOS 6 настройка vsftpd в HA кластере Pacemaker

Предварительно пропишем в /etc/hosts узлы кластера, а также отключим Selinux и Firewall
Или пропишем правило iptables
# iptables -I INPUT -p udp -m state --state NEW -m multiport --dports 5404,5405 -j ACCEPT

Внутреннее подключение
узел1 (n1) - 192.168.10.1
узел2 (n2) - 192.168.10.2
Виртуальный IP адрес - 10.10.10.1

Устанавливаем pacemaker на оба узла
# yum -y install pacemaker

Cоздадим ключи авторизации на узлах
# vi /etc/ha.d/authkeys

auth 1
1 sha1 secret

# chmod 700 /etc/ha.d/authkeys

Скопируем пример конфигурационного файла corosync и отредактируем его
# cp /etc/corosync/corosync.conf.example /etc/corosync/corosync.conf
# vi /etc/corosync/corosync.conf

compatibility: whitetank

aisexec {
        user: root
        group: root
}

service {
        name: pacemaker
        ver: 0
        use_mgmtd: yes
}

totem {
        version: 2
        secauth: off
        threads: 0
        interface {
                ringnumber: 0

                bindnetaddr: 192.168.10.0

                mcastaddr: 226.94.1.1
                mcastport: 5405
        }
}

logging {
        fileline: off
        to_stderr: no
        to_logfile: yes
        to_syslog: yes
        logfile: /var/log/cluster/corosync.log
        debug: off
        timestamp: on
        logger_subsys {
                subsys: AMF
                debug: off
        }
}

amf {
        mode: disabled
}

В конфиг Добавим  строчки

aisexec {
        user: root
        group: root
}

service {
        name: pacemaker
        ver: 0
        use_mgmtd: yes
}

И пропишем адрес для внутренней связи
bindnetaddr: 192.168.10.0

Сохраним и скопируем конфиг на второй узел (n2)
# scp /etc/corosync/corosync.conf Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. .2:/etc/corosync/

Дадим права и запустим corosync на узлах
# chown -R hacluster. /var/log/cluster
# /etc/rc.d/init.d/corosync start
# chkconfig corosync on

На первом узле
[root@n1 ~]# crm configure property no-quorum-policy="ignore" stonith-enabled="false"
[root@n1 ~]# crm configure rsc_defaults resource-stickiness="INFINITY" migration-threshold="1

Проверяем конфигурацию
[root@n1 ~]# crm_mon

Last change: Wed Dec 12 02:18:06 2012 via crmd on n2
Stack: openais
Current DC: n1 - partition with quorum
Version: 1.1.7-6.el6-148fccfd5985c5590cc601123c6c16e966b85d14
2 Nodes configured, 2 expected votes
0 Resources configured.
============

Online: [ n2 n1 ]

Создаем виртуальный IP адрес на первом узле
[root@n1 ~]# crm configure primitive virtIP ocf:heartbeat:IPaddr2 params ip=10.10.10.1 cidr_netmask=24 op monitor interval=10s

Просмотр настроек
[root@n1 ~]# crm configure show

node n1
node n2
primitive virtIP ocf:heartbeat:IPaddr2 \
        params ip="10.10.10.1" cidr_netmask="24" \
        op monitor interval="10s"
property $id="cib-bootstrap-options" \
        dc-version="1.1.7-6.el6-148fccfd5985c5590cc601123c6c16e966b85d14" \
        cluster-infrastructure="openais" \
        expected-quorum-votes="2" \
        no-quorum-policy="ignore" \
        stonith-enabled="false"
rsc_defaults $id="rsc-options" \
        resource-stickiness="INFINITY" \
        migration-threshold="1"

[root@n1 ~]# crm_mon

Last change: Wed Dec 12 05:39:12 2012 via cibadmin on n1
Stack: openais
Current DC: n1 - partition with quorum
Version: 1.1.7-6.el6-148fccfd5985c5590cc601123c6c16e966b85d14
2 Nodes configured, 2 expected votes
1 Resources configured.
============

Online: [ n2 n1 ]

virtIP  (ocf::heartbeat:IPaddr2):       Started n1

Проверка пингом виртуального адреса
[root@n1 ~]# ping 10.10.10.1

PING 10.10.10.1 (10.10.10.1) 56(84) bytes of data.
64 bytes from 10.10.10.1: icmp_seq=1 ttl=64 time=0.113 ms
64 bytes from 10.10.10.1: icmp_seq=2 ttl=64 time=0.033 ms
64 bytes from 10.10.10.1: icmp_seq=3 ttl=64 time=0.032 ms

Добавление в кластер FTP сервера vsftpd

Установим утилиту vsftpd на всех узлах и остановим ее
# yum install vsftpd
# service vsftpd stop

Настроим vsftpd в кластере
[root@n1 ~]# crm configure primitive vsftpd lsb:vsftpd op start interval=0s timeout=60s op monitor interval=5s timeout=20s op stop interval=0s timeout=60s
[root@n1 ~]# crm configure group ftpserver virtIP vsftpd

Просмотр результатов
[root@n1 ~]# crm_mon

Last change: Wed Dec 12 09:05:38 2012 via cibadmin on n1
Stack: openais
Current DC: n1 - partition with quorum
Version: 1.1.7-6.el6-148fccfd5985c5590cc601123c6c16e966b85d14
2 Nodes configured, 2 expected votes
4 Resources configured.
============

Online: [ n2 n1 ]

Resource Group: ftpserver
     virtIP    (ocf::heartbeat:IPaddr2):       Started n2
     vsftpd     (lsb:vsftpd):   Started n2

На данный момент vsftpd запущен на втором узле (n2). К FTP серверу можно подключится используя виртуальный IP адрес 10.10.10.1 . Для проверки отказоустойчивости отключим второй узел.

[root@n1 ~]# crm_mon

Last change: Wed Dec 12 09:05:38 2012 via cibadmin on n1
Stack: openais
Current DC: n1 - partition WITHOUT quorum
Version: 1.1.7-6.el6-148fccfd5985c5590cc601123c6c16e966b85d14
2 Nodes configured, 2 expected votes
4 Resources configured.
============

Online: [ n1 ]
OFFLINE: [ n2 ]

Resource Group: ftpserver
     virtIP2    (ocf::heartbeat:IPaddr2):       Started n1
     vsftpd     (lsb:vsftpd):   Started n1

Как видно второй узел отключен OFFLINE: [ n2 ], а vsftpd запущен на узле n1 vsftpd (lsb:vsftpd): Started n1

Дополнительная информация