Corosync
正式名称:The Corosync Cluster Engine
LinuxでHighAvailability(H/A)構成を実現する為に使用する、ノード装置死活監視ソフトウェア。
設定したノード(対向、多対向)のノード監視を行い、ノードが停止した場合に正常系への切り替え処理を実施する。
動作としては、CiscoASAのH/A構成や、VRRPの2IP構成の動きに似ている。
1. ビルド・インストール
色々なインストール方法があるが一番楽なのは、yum一発で入れる方法
下記コマンドを打てば、必要なライブラリも全て自動でインストール出来る。
# yum install corosync
しかし、冗長構成等のシステム基幹部分もyumに頼るのはどうかと思うので、
今回はソースコードからのインストールも実施する。
※ソースコードの取得にgitコマンドが必要なので事前にいれておく
# wget http://build.clusterlabs.org/corosync/releases/corosync-2.3.4.tar.gz # tar zxvf corosync-2.3.4.tar.gz # cd corosync-2.3.4 # ./autogen.sh # ./configure --prefix=/usr/local/corosync-2.3.4 --sysconfdir=/etc --localstatedir=/var # make # make install
# cd /usr/local # ln -s /usr/local/corosync-2.3.4 ./corosync # cd /usr/bin # ln -s /usr/local/corosync/bin/corosync-blackbox . # cd /usr/sbin # ln -s /usr/local/corosync/sbin/corosync* . # cd /usr/include/ # ln -s /usr/local/corosync/include/corosync . # cd /usr/lib64/pkgconfig # ln -s /usr/local/corosync/lib/pkgconfig/* . # cd /usr/lib64 # ln -s /usr/local/corosync/lib/lib* .
# cp ${SOURCE_DIR}/init/corosync.sysconfig.example /etc/sysconfig/corosync # cd /etc/init.d # mv corosync corosync- # sed -e "s/corosync-2.3.4/corosync/g" corosync- > corosync
2. コンフィグ
設定ファイルはひな形を元に作成する。
項目についてはGitHubで解説されているので、そちらを参照
# cp /etc/corosync/corosync.conf.example.udpu /etc/corosync/corosync.conf # vi /etc/corosync/corosync.conf ===== #corosync.confをOpenAISと互換性を保ったコンフィグにする compatibility: whitetank #Corosyncを実行するユーザとグループ aisexec { user: root group: root } #VirtualIPの付け替えを行うフロントエンド指定 service { #Pacemakerを使う name: pacemaker #PacemakerをCorosyncと連携させる設定。Pacemakerのバージョンに揃える ver: 1 #PacemakerGUIを使う use_mgmtd: yes } #クラスタノード間の通信プロトコルなどを指定する totem { #Corosync設定ファイルのバージョン。今は2のみ指定可能 version: 2 #クラスタ間通信の暗号化指定 secauth: off #crypto_cipher: none #crypto_hash: none interface { #クラスタノード(メンバー)のIPアドレスorホスト名 member { memberaddr: 192.168.0.2 } member { memberaddr: 192.168.0.3 } #リングプロトコル使用時のI/F所属リング番号。0から開始する ringnumber: 0 #memberの属するネットワークアドレスを指定 bindnetaddr: 192.168.0.0 #クラスタノード間通信のポート番号 mcastport: 5405 #MulticastTransport利用時に有効なTTL数を指定 ttl: 1 } transport: udpu } #ログの記録方法を設定する logging { fileline: off to_logfile: yes to_syslog: off logfile: /var/log/cluster/corosync.log debug: off timestamp: on #loggingステートの設定上書き logger_subsys { subsys: QUORUM debug: off } }
3. 起動方法
コンフィグを書いたら、Corosyncの起動テストを行う。
起動時にはログイン中のユーザを一度exitで抜けた後に再ログインして行う。
# /etc/init.d/corosync start Starting corosync (via systemctl): [ OK ] ----- # systemctl start corosync.service