このページの翻訳:
- 日本語 (ja)
- English (en)
最近の更新
Tag Cloud
このページへのアクセス
今日: 15 / 昨日: 0
総計: 1258
- Dokuwiki.fl8.jp(475)
- 13 CentOS6メール設定(23)
- FreeBSD カーネル再構築(22)
- 05 rsync(21)
- 02 ProFTPD(21)
最近の更新
このページへのアクセス
今日: 15 / 昨日: 0
総計: 1258
corosync、pacemaker、pcsdで冗長構成
corosync: サーバ間クラスタ。Heartbeatの替わり
pacemaker: crm クラスタ上稼働しているアプリケーション(サービス)を監視、起動、停止
pcsd: 上記クラスタの管理しやすくするデーモン
説明 | 1号機 | 2号機 | 3号機 | VIP |
---|---|---|---|---|
HostName | node01 | node02 | node03 | |
Global | 10.100.10.11 | 10.100.10.12 | 10.100.10.13 | 10.100.10.10 |
Local01 | 172.16.10.11 | 172.16.10.12 | 172.16.10.13 | 172.16.10.10 |
Local02 | 192.168.10.11 | 192.168.10.12 | 192.168.10.13 | 192.168.10.10 |
# rpm -ivh https://ja.osdn.net/dl/linux-ha/pacemaker-repo-1.1.13-1.1.el6.x86_64.rpm # sed -i 's/^enabled=1/enabled=0/g' /etc/yum.repos.d/pacemaker.repo
# yum --enablerepo=linux-ha-ja-pacemaker install pacemaker-all corosync pcs clufter-lib-pcs
# corosync-keygen
# rsync /etc/corosync/authkey root@192.168.10.12:/etc/corosync/authkey # rsync /etc/corosync/authkey root@192.168.10.13:/etc/corosync/authkey
「PCMK_fail_fast=yes」を追加
※Pacemakerの内部プロセスが死亡した場合にもノード故障とみなす
# sed -i.$(date '+%Y%m%d') '/^#.*PCMK_fail_fast/a\PCMK_fail_fast=yes' /etc/sysconfig/pacemaker
今回はGUIで管理する場合の設定
GUIを利用しない場合は、「DISABLE_GUI=true」にしておく
# sed -i.$(date '+%Y%m%d') 's/^DISABLE_GUI=true/DISABLE_GUI=false/g' /etc/sysconfig/pcsd
全ノードで設定する。
# passwd hacluster
こちらも全ノードで設定する。
※ホストが2重で登録されてたりすると、上手くクラスタが組めなかった
192.168.10.11 node01 192.168.10.12 node02 192.168.10.13 node03
# /etc/init.d/pcsd start
ポート番号は、2224
先程設定したhaclusterユーザでログイン
https://10.100.10.11:2224
# pcs cluster auth node01 node02 node03 -u hacluster -p [PASSWORD] --force
# pcs cluster setup --name pcs_cluster node01 node02 node03
pcs property set stonith-enabled=false pcs property set no-quorum-policy=ignore pcs resource defaults resource-stickiness=INFINITY pcs resource defaults migration-threshold=1
pcs resource create rs_vip_g \
ocf:heartbeat:IPAddr2 \
ip=10.100.10.10 \
cidr_netmask=25 \
nic=eth0 \
op monitor interval=5s on-fail="restart" \
--group=gr_zabbix
pcs resource create rs_vip_dedi \
ocf:heartbeat:IPAddr2 \
ip=172.16.10.10 \
cidr_netmask=16 \
nic=eth1 \
op monitor interval=5s on-fail="restart" \
--group gr_zabbix
pcs resource create rs_vip_pc \
ocf:heartbeat:IPAddr2 \
ip=192.168.10.10 \
cidr_netmask=24 \
nic=eth2 \
op monitor interval=5s on-fail="restart" \
--group gr_zabbix
pcs resource create rs_sourcenat_g \
ocf:pacemaker:SourceNAT \
ip=10.100.10.10 \
nic=eth0 \
op monitor interval=0s on-fail="restart" \
--group=gr_zabbix
pcs resource create rs_sourcenat_pc \
ocf:pacemaker:SourceNAT \
ip=192.168.10.10 \
nic=eth2 \
op monitor interval=0s on-fail="restart" \
--group=gr_zabbix
pcs resource create rs_sourcenat_dedi \
ocf:pacemaker:SourceNAT \
ip=172.16.10.10 \
nic=eth1 \
op monitor interval=0s on-fail="restart" \
--group=gr_zabbix
pcs resource create rs_vipcheck_g \
ocf:heartbeat:VIPcheck \
target_ip=10.100.10.10 \
count=5 \
wait=1s \
op monitor interval=5s on-fail="restart" \
--group=gr_zabbix
pcs resource create rs_vipcheck_pc \
ocf:heartbeat:VIPcheck \
target_ip=192.168.10.10 \
count=5 \
wait=1s \
op monitor interval=5s on-fail="restart" \
--group=gr_zabbix
pcs resource create rs_web \
ocf:heartbeat:apache \
configfile=/etc/httpd/conf/httpd.conf \
op monitor interval=5s on-fail="restart" \
--group=gr_zabbix
pcs resource create rs_zabbixserver \
lsb:zabbix-server \
op monitor interval=5s on-fail="restart" \
--group=gr_zabbix
pcs resource create rs_cpu \
ocf:pacemaker:HealthCPU \
yellow_limit=50 \
red_limit=20 \
op monitor interval=60s on-fail="restart" \
--clone
pcs resource create rs_ping \ ocf:pacemaker:ping \ name=ping_set \ dampen=5s \ multiplier=100 \ use_fping=1 \ timeout=5s \ host_list="172.16.10.11 172.16.10.12 172.16.10.13 172.16.10.1" \ op monitor interval=5s on-fail="restart" \ op start interval=0 timeout=30s on-fail="restart" \ op stop interval=0 timeout=30s on-fail="block" \ --clone --wait=10s pcs resource create rs_ping_g \ ocf:pacemaker:ping \ name=ping_g_set \ dampen=5s \ multiplier=100 \ use_fping=1 \ timeout=5s \ host_list="10.100.10.11 10.100.10.12 10.100.10.13 10.100.10.1" \ op monitor interval=5s on-fail="restart" \ op start interval=0 timeout=30s \ op stop interval=0 timeout=30s on-fail="block" \ --clone --wait=10s pcs resource create rs_ping_pc \ ocf:pacemaker:ping \ name=ping_pc_set \ dampen=5s \ multiplier=100 \ use_fping=1 \ timeout=5s \ host_list="192.168.10.11 192.168.10.12 192.168.10.13 192.168.10.1" \ op monitor interval=5s on-fail="restart" \ --clone --wait=10s
pcs constraint location gr_zabbix \ rule \ score=-INFINITY \ not_defined ping_set or ping_set lte 100 pcs constraint location gr_zabbix \ rule \ score=-INFINITY \ not_defined ping_g_set or ping_g_set lte 100 pcs constraint location gr_zabbix \ rule \ score=-INFINITY \ not_defined ping_pc_set or ping_pc_set lte 100 pcs constraint location gr_zabbix \ rule \ score=-INFINITY \ not_defined '#health-cpu' or '#health-cpu' eq red
# pcs resource group remove gr_zabbix # pcs resource group add gr_zabbix rs_vipcheck_g rs_vipcheck_pc rs_vip_g rs_vip_pc rs_vip_dedi rs_sourcenat_g rs_sourcenat_pc rs_sourcenat_dedi rs_web rs_zabbixserver
# pcs config backup backup.$(date '+%Y%m%d')