Pacemaker+DRBD+GFS2構築 DRBD設定
FDISKでDRBDボリュームを作成
DRBDによりレプリケーションするデバイスは、LVMとするため、 FdiskコマンドでシステムIDを「8e Linux LVM」にする。# fdisk /dev/sdb ======= コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本領域 (1-4) p 領域番号 (1-4): 1 最初 シリンダ (1-783, default 1): Using default value 1 終点 シリンダ または +サイズ または +サイズM または +サイズK (1-783, default 783): Using default value 783 コマンド (m でヘルプ): t 選択した領域 1 16進数コード (L コマンドでコードリスト表示):8e コマンド (m でヘルプ): w 領域テーブルは交換されました!※両ノード実施する。
LVMの作成
pacemaker,clvmdが起動していなかったら起動させる。# /etc/init.d/clvmd status clvmd (pid 1947) を実行中... Clustered Volume Groups: (none) Active clustered Logical Volumes: (none)※(clvmd (pid 1947) を実行中...で止まっているときはまだ完全起動していない状態)
# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
# vgcreate --clustered y vg00_drbd01 /dev/sdb1
Clustered volume group "vg00_drbd01" successfully created
# lvcreate -aey -L 2000M -n lvol0 vg00_drbd01
Logical volume "lvol0" created
※両ノード間の通信でiptables制限をしている場合やClvmdが起動していない場合、コマンド実行後ずっと待ち状態になります。DRBD設定ファイル修正(デュアルアクティブ設定)
■/etc/drbd.d/global_common.confの修正 # cp /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.org
# vi /etc/drbd.d/global_common.conf
global {
usage-count yes;
}
common {
startup {
degr-wfc-timeout 0;
}
net {
cram-hmac-alg sha1;
shared-secret Jb4wJHnYaMVD92f7Oucwq3RfyVcwadafa;
}
disk {
on-io-error detach;
}
}
※shared-secretの値は、両ノードで同じ値にする必要があります。 # vi /etc/drbd.d/r0.res
=================================
resource r0 {
handlers {
fence-peer /usr/lib/drbd/crm-fence-peer.sh;
split-brain "/usr/lib/drbd/notify-split-brain.sh root";
after-resync-target /usr/lib/drbd/crm-unfence-peer.sh;
}
startup {
wfc-timeout 30;
degr-wfc-timeout 30;
}
net {
allow-two-primaries yes;
after-sb-0pri discard-zero-changes;
after-sb-1pri discard-secondary;
}
disk {
resync-rate 50M;
}
on img-server01 {
volume 0 {
device /dev/drbd0;
disk /dev/vg00_drbd01/lvol0;
flexible-meta-disk internal;
}
address 192.168.4.71:7788;
}
on img-server02 {
volume 0 {
device /dev/drbd0;
disk /dev/vg00_drbd01/lvol0;
flexible-meta-disk internal;
}
address 192.168.4.72:7788;
}
}
※各サーバのホスト名に置き換えること| disconnect | 自動復旧せずsplit-brainハンドラを実行して、切断します。 |
|---|---|
| discard-younger-primaryt | プライマリホストを無効化して変更を戻します。 |
| discard-least-changest | 最後に変更したノードを無効化して変更を戻します。 |
| discard-zero-changes | もしデータの変更がない場合には、無視してその状態を継続します。 |
| disconnect | after-sb-0priと同じです。 |
|---|---|
| consensus | after-sb-0priで定義されたポリシーを適用します。 |
| call-pri-lost-after-sb | after-sb-0priと同じポリシーを実行します。もしsbが発生してこれらのポリシが適用さ れたら次にpri-lost-after-sbハンドラを実行します。 |
| discard-secondary | セカンダリ側になっているホストのデータを破棄し、再同期します。 |
# for f in /etc/drbd.d/global_common.conf; do scp $f img-server02:$f ; done※rootでSSH接続ができる場合、上記コマンドでコピーができます。
DRBDをプライマリ化
■DRBDモジュールが読み込まれていることを確認# cat /proc/drbd version: 8.4.4 (api:1/proto:86-101) GIT-hash: 599f286440bd633d15d5ff985204aff4bccffadd build by root@img-server01, 2013-08-30 17:39:29※両ノードで確認、/proc/drbdファイルがない場合はDRBDモジュールが読み込まれていない状態であるため、下記のコマンドを実行する
# modprobe drbd minor_count=1
# drbdadm create-md r0 Writing meta data... md_offset 2684354555904 al_offset 2684354523136 bm_offset 2684272603136 Found some data ==> This might destroy existing data! <== Do you want to proceed? [need to type 'yes' to confirm] yes initializing activity log NOT initializing bitmap New drbd meta data block successfully created. success※両ノードで同時に実施する
# drbdadm up r0
# cat /proc/drbd
version: 8.4.4 (api:1/proto:86-101)
GIT-hash: 599f286440bd633d15d5ff985204aff4bccffadd build by root@img-server01, 2013-10-25 16:51:20
0: cs:WFConnection ro:Secondary/Unknown ds:Inconsistent/DUnknown C r----s
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:2047900
# drbdadm up r0
# cat /proc/drbd
version: 8.4.4 (api:1/proto:86-101)
GIT-hash: 599f286440bd633d15d5ff985204aff4bccffadd build by root@img-server02, 2013-10-16 13:51:47
0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:2047900
※「cs:Connected」CS状態がConnectedになっていることを確認する。# drbdadm -- --overwrite-data-of-peer primary r0・DRBDの同期状態
# cat /proc/drbd
version: 8.4.4 (api:1/proto:86-101)
GIT-hash: 599f286440bd633d15d5ff985204aff4bccffadd build by root@img-server01, 2013-08-30 17:39:29
0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----
ns:65536 nr:0 dw:0 dr:66208 al:0 bm:4 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:1982364
[>....................] sync'ed: 3.4% (1982364/2047900)K
finish: 0:00:30 speed: 65,536 (65,536) K/sec
・同期完了状態
# cat /proc/drbd
version: 8.4.4 (api:1/proto:86-101)
GIT-hash: 599f286440bd633d15d5ff985204aff4bccffadd build by root@img-server01, 2013-08-30 17:39:29
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
ns:2047900 nr:0 dw:0 dr:2048572 al:0 bm:125 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
# cat /proc/drbd
version: 8.4.4 (api:1/proto:86-101)
GIT-hash: 599f286440bd633d15d5ff985204aff4bccffadd build by root@img-server01, 2013-08-30 17:39:29
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
ns:2313068 nr:0 dw:265168 dr:2319760 al:66 bm:125 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
# drbdadm primary r0
# cat /proc/drbd
version: 8.4.4 (api:1/proto:86-101)
GIT-hash: 599f286440bd633d15d5ff985204aff4bccffadd build by root@img-server02, 2013-10-16 13:51:47
0: cs:Connected ro:Primary/Primary ds:UpToDate/UpToDate C r-----
ns:0 nr:2313068 dw:2313068 dr:672 al:0 bm:125 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
Pacemaker+DRBD+GFS2構築(デュアルプライマリ構成)の構築概要
00. Pacemaker+DRBD+GFS2構築 環境/基本情報Pacemaker+DRBD+GFS2構築 GFS2/CLVMの設定と起動
GFS2とCLVMに関する設定を行う。GFS2関連の設定
■fstab編集# vi /etc/fstab /dev/drbd0 /data gfs2 _netdev,noatime,nodiratime 0 0※_netdevの指定(ネットワーク関連がすべて立ち上がってからmountするという意味)
# mkdir /data
CLVM関連の設定
■LVMのロック設定# vi /etc/lvm/lvm.conf locking_type=3
# /etc/init.d/pacemaker start # /etc/init.d/clvmd start※「Starting clvmd: clvmd startup timed out」となる。
# chkconfig clvmd off # chkconfig gfs2 off # chkconfig drbd off■clvmdの自動起動停止
# vi /etc/init.d/pacemaker
===========
#startの箇所
[ -f /etc/rc.d/init.d/cman ] && service cman start
sleep 120
[ -f /etc/rc.d/init.d/clvmd ] && service clvmd start
#stopの箇所
[ -f /etc/rc.d/init.d/clvmd ] && service clvmd stop
sleep 10
[ -f /etc/rc.d/init.d/cman ] && service cman stop
Pacemaker+DRBD+GFS2構築(デュアルプライマリ構成)の構築概要
00. Pacemaker+DRBD+GFS2構築 環境/基本情報Pacemaker+DRBD+GFS2構築 CMAN設定
クラスタエンジンであるCMANの設定を行う。Quorum TimeOut設定(CMAN_QUORUM_TIMEOUT=0)
クォーラムが成立しない状態でCMANが起動できるようにCMANの起動オプション(CMAN_QUORUM_TIMEOUT=0 )を変更する。# vi /etc/sysconfig/cman -------- CMAN_QUORUM_TIMEOUT=0
/etc/hostsファイル追記
※各ホスト名のIPとは別にレプリケーション用IPを追記する10.96.146.142 img-server01 10.96.146.143 img-server02 #レプリケーション用IPの追記 192.168.4.71 img-server01-rep 192.168.4.72 img-server02-rep
/etc/cluster/cluster.confを新規作成
※clusternode nameに上記hostsに登録したホスト名とする。 # vi /etc/cluster/cluster.conf
<?xml version="1.0"?>
<cluster name="my-cluster" config_version="1">
<logging debug="off"/>
<cman two_node="1" expected_votes="1"/>
<clusternodes>
<clusternode name="img-server01-rep" nodeid="1">
<fence>
<method name="pcmk-redirect">
<device name="pcmk" port="img-server01-rep"/>
</method>
</fence>
</clusternode>
<clusternode name="img-server02-rep" nodeid="2">
<fence>
<method name="pcmk-redirect">
<device name="pcmk" port="img-server02-rep"/>
</method>
</fence>
</clusternode>
</clusternodes>
<fencedevices>
<fencedevice name="pcmk" agent="fence_pcmk"/>
</fencedevices>
</cluster>
設定ファイルのコピー
/etc/sysconfig/cman、/etc/hosts、/etc/cluster/cluster.confをコピーする# for f in /etc/sysconfig/cman /etc/hosts /etc/cluster/cluster.conf; do scp $f img-server02:$f ; done※rootでSSH接続ができる場合、上記コマンドでコピーができます。
CMAN起動
pacemakerを再起動するとクラスタエンジンも再起動される。# /etc/init.d/cman stop # /etc/init.d/corosync stop # /etc/init.d/pacemaker startまたクラスターエンジンの自動起動をOFFにする。
# chkconfig cman off # chkconfig corosync off※pacemakerの起動スクリプトにCMANを立ち上げる処理を含んでいるので上記クラスタエンジンの自動起動をOFFにする。
Pacemaker+DRBD+GFS2構築(デュアルプライマリ構成)の構築概要
00. Pacemaker+DRBD+GFS2構築 環境/基本情報