ユーザ用ツール

サイト用ツール


01_linux:01_net:55_corosync_pacemaker

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
01_linux:01_net:55_corosync_pacemaker [2017/03/09 07:38] – [リソースグループのの順番変更] matsui01_linux:01_net:55_corosync_pacemaker [2017/03/30 01:23] (現在) – [CUIの場合] matsui
行 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}}