ユーザ用ツール

サイト用ツール


01_linux:01_net:55_corosync_pacemaker

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
01_linux:01_net:55_corosync_pacemaker [2017/03/09 16:38]
matsui [リソースグループのの順番変更]
01_linux:01_net:55_corosync_pacemaker [2017/03/30 10:23] (現在)
matsui [CUIの場合]
ライン 1: ライン 1:
 +====== 55 corosync pacemaker ======
  
 +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|
 +
 +
 +===== インストール =====
 +
 +<​code>​
 +# 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
 +</​code>​
 +
 +<​code>​
 +# yum --enablerepo=linux-ha-ja-pacemaker install pacemaker-all corosync pcs clufter-lib-pcs
 +</​code>​
 +
 +===== Corosync用の初期設定 =====
 +
 +=== クラスター内で最初のノードで作成 ===
 +<​code>​
 +# corosync-keygen
 +</​code>​
 +
 +=== ノードを追加する場合は、キーを配布する ===
 +
 +<​code>​
 +# rsync /​etc/​corosync/​authkey root@192.168.10.12:/​etc/​corosync/​authkey
 +# rsync /​etc/​corosync/​authkey root@192.168.10.13:/​etc/​corosync/​authkey
 +</​code>​
 +
 +===== Pacemaker初期設定 =====
 +
 +「PCMK_fail_fast=yes」を追加
 +※Pacemakerの内部プロセスが死亡した場合にもノード故障とみなす
 +<​code>​
 +# sed -i.$(date '​+%Y%m%d'​) '/​^#​.*PCMK_fail_fast/​a\PCMK_fail_fast=yes'​ /​etc/​sysconfig/​pacemaker
 +</​code>​
 +
 +
 +===== pcsd初期設定 =====
 +
 +今回はGUIで管理する場合の設定
 +GUIを利用しない場合は、「DISABLE_GUI=true」にしておく
 +<​code>​
 +# sed -i.$(date '​+%Y%m%d'​) '​s/​^DISABLE_GUI=true/​DISABLE_GUI=false/​g'​ /​etc/​sysconfig/​pcsd ​
 +</​code>​
 +
 +=== pcsdユーザにパスワード設定 ===
 +
 +全ノードで設定する。
 +<​code>​
 +# passwd hacluster
 +</​code>​
 +
 +=== hostsを設定 ===
 +
 +こちらも全ノードで設定する。
 +<color red>​※ホストが2重で登録されてたりすると、上手くクラスタが組めなかった</​color>​
 +
 +  192.168.10.11 node01
 +  192.168.10.12 node02
 +  192.168.10.13 node03
 +
 +===== pcsd起動 =====
 +
 +<​code>​
 +# /​etc/​init.d/​pcsd start
 +</​code>​
 +
 +
 +==== GUIでクラスタ作成 ====
 +ポート番号は、2224
 +先程設定したhaclusterユーザでログイン
 +
 +  https://​10.100.10.11:​2224
 +
 +
 +==== CUIの場合 ====
 +
 +
 +=== PCS auth ===
 +
 +<​code>​
 +# pcs cluster auth node01 node02 node03 -u hacluster -p [PASSWORD] --force
 +</​code>​
 +
 +=== クラスタ作成 ===
 +
 +<​code>​
 +# pcs cluster setup --name pcs_cluster node01 node02 node03
 +</​code>​
 +
 +
 +===== PCS 設定 =====
 +
 +==== フィルタの停止と、初期設定 ====
 +
 +  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
 +
 +==== resource追加 ====
 +  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
 +
 +==== 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
 +
 +
 +
 +===== リソースグループの順番変更 =====
 +
 +<​code>​
 +# 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
 +</​code>​
 +
 +===== バックアップ・リストア =====
 +=== バクアップ ===
 +
 +  # pcs config backup backup.$(date '​+%Y%m%d'​)
 +=== リストア ===
 +
 +  # pcs config restore backup.20170306.tar.bz2
 +{{tag>​pacemaker corosync pcsd}}
01_linux/01_net/55_corosync_pacemaker.txt · 最終更新: 2017/03/30 10:23 by matsui

Yesterday:1378 Today:113 Total:01491