ãŠä¸–話ã«ãªã‚Šã¾ã™ã€‚ã‚ãã‚„ã¾ã¨ç”³ã—ã¾ã™ã€‚
DRBDã®Master固定化ã«é–¢ã—ã¦è³ªå•ã§ã™ã€‚
DRBDã®ã‚¹ãƒ—リットブレインãŒè‡ªå‹•å¾©æ—§ã™ã‚‹éš›ã®Masterを固定化ã™ã‚‹ã“ã¨ã¯å¯èƒ½ã§ã—ょã†ã‹ï¼Ÿ
ç¾åœ¨é‹ç”¨ã—ã¦ã„るマシンã§DRBD通信障害ã§ã‚¹ã‚¿ãƒ³ãƒ‰ã‚¢ãƒãƒ³ã«ãªã£ãŸéš›ã«
マシンをå†èµ·å‹•ã—ã¾ã—ãŸãŒã€å†èµ·å‹•æ™‚ã«Slaveå´ã®å¤ã„データã§å†åŒæœŸã•ã‚Œã€
最新データãŒæ¶ˆãˆã¦ã—ã¾ã†äº‹è±¡ãŒç™ºç”Ÿã—ã¦ã—ã¾ã£ãŸã®ã§ã€å†ç™ºé˜²æ¢ç–ã¨ã—ã¦è¨å®šã‚’変更ã—ãŸã„ã¨è€ƒãˆã¦ã„ã¾ã™ã€‚
本æ¥ãªã‚‰DRBDコマンドç‰ã§å¾©æ—§ã‚’試ã¿ã‚‹ã¹ããªã®ã§ã—ょã†ãŒã€
諸事情ã‚ã‚Šã€è©³ã—ããªã„ã‚‚ã®ãŒç‹¬è‡ªã®åˆ¤æ–ã§å†èµ·å‹•ã‚’実施ã—ã¦ã—ã¾ã†ã“ã¨ãŒã‚ã‚Šã€
ãã®ã‚ˆã†ãªå ´åˆã‚‚本事象を発生ã•ã›ãªã„よã†ã«ã—ãŸã„ã¨è€ƒãˆã¦ã„ã¾ã™ã€‚
ã€ç’°å¢ƒã€‘
Red Hat Enterprise Linux Server 6.1 (for x86)
kernel-2.6.32-431.23.3.el6.i686
corosync-1.4.1-17.el6_5.1.i686
pacemaker-1.1.10-14.el6_5.3.i686
drbd-8.3.16-1.el6.i386
ã€Pacemaker定義】
node testsv1
node testsv2 \
attributes standby=off
primitive res_before_test-e lsb:before_test-e \
op monitor interval=30 timeout=30 \
op start interval=0 timeout=60 \
op stop interval=0 timeout=60
primitive res_drbd_quota lsb:drbd_quota \
op monitor interval=30 timeout=30 \
op start interval=0 timeout=60 \
op stop interval=0 timeout=60
primitive res_drbd_r0 ocf:linbit:drbd \
params drbd_resource=r0 \
op monitor interval=10 role=Master timeout=30 \
op monitor interval=30 role=Slave timeout=30 \
op start interval=0 timeout=240 \
op stop interval=0 timeout=100
primitive res_filesystem Filesystem \
params device="/dev/drbd0" directory="/drbd" fstype=ext4
options="noatime,nobarrier,usrquota" \
op start interval=0 timeout=60 \
op stop interval=0 timeout=60
primitive res_nmb lsb:nmb \
op monitor interval=30 timeout=30 \
op start interval=0 timeout=60 \
op stop interval=0 timeout=60
primitive res_pgsql lsb:postgresql-9.0 \
op monitor interval=30 timeout=30 \
op start interval=0 timeout=60 \
op stop interval=0 timeout=60
primitive res_samba lsb:smb \
op monitor interval=30 timeout=30 \
op start interval=0 timeout=60 \
op stop interval=0 timeout=60
primitive res_vsftp lsb:vsftpd \
op monitor interval=30 timeout=30 \
op start interval=0 timeout=60 \
op stop interval=0 timeout=60
group rg_filesystem res_filesystem res_drbd_quota
group rg_samba res_samba res_nmb
ms ms_drbd_r0 res_drbd_r0 \
meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1
notify=true
location l_filesystem rg_filesystem -inf: testsv2
location l_test_drbd ms_drbd_r0 \
rule 200: #uname eq testsv1 \
rule 100: #uname eq testsv2
colocation c_filesystem inf: rg_filesystem ms_drbd_r0:Master
colocation c_test inf: res_before_test-e rg_filesystem
colocation c_pgsql inf: res_pgsql rg_filesystem
colocation c_samba inf: rg_samba rg_filesystem
colocation c_vsftp inf: res_vsftp rg_filesystem
order o_filesystem inf: ms_drbd_r0:promote rg_filesystem:start
order o_test 0: rg_samba res_before_test-e:start
order o_pgsql inf: rg_filesystem res_pgsql:start
order o_samba 0: res_vsftp rg_samba:start
order o_vsftp 0: res_pgsql res_vsftp:start
property cib-bootstrap-options: \
stonith-enabled=false \
no-quorum-policy=ignore \
default-resource-stickiness=200 \
dc-version=1.1.10-14.el6_5.3-368c726 \
cluster-infrastructure="classic openais (with plugin)" \
expected-quorum-votes=2
ã€DRBD定義】
global {
#usage-count yes;
usage-count no;
# minor-count dialog-refresh disable-ip-verification
}
common {
#protocol C;
handlers {
# These are EXAMPLE handlers only.
# They may have severe implications,
# like hard resetting the node under certain circumstances.
# Be careful when chosing your poison.
# fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
# split-brain "/usr/lib/drbd/notify-split-brain.sh root";
# out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";
# before-resync-target
"/usr/lib/drbd/snapshot-resync-target-lvm.sh -p 15 -- -c 16k";
# after-resync-target
/usr/lib/drbd/unsnapshot-resync-target-lvm.sh;
}
startup {
# wfc-timeout degr-wfc-timeout outdated-wfc-timeout
wait-after-sb
}
disk {
# on-io-error fencing use-bmbv no-disk-barrier
no-disk-flushes
# no-disk-drain no-md-flushes max-bio-bvecs
no-disk-barrier;
no-disk-flushes;
}
net {
# sndbuf-size rcvbuf-size timeout connect-int ping-int
ping-timeout max-buffers
# max-epoch-size ko-count allow-two-primaries cram-hmac-alg
shared-secret
# after-sb-0pri after-sb-1pri after-sb-2pri
data-integrity-alg no-tcp-cork
max-buffers 8000;
max-epoch-size 8000;
after-sb-0pri discard-younger-primary;
after-sb-1pri discard-secondary;
after-sb-2pri disconnect;
}
syncer {
# rate after al-extents use-rle cpu-mask verify-alg
csums-alg
rate 30M;
verify-alg sha1;
}
}
DRBDã®Master固定化ã«é–¢ã—ã¦è³ªå•ã§ã™ã€‚
DRBDã®ã‚¹ãƒ—リットブレインãŒè‡ªå‹•å¾©æ—§ã™ã‚‹éš›ã®Masterを固定化ã™ã‚‹ã“ã¨ã¯å¯èƒ½ã§ã—ょã†ã‹ï¼Ÿ
ç¾åœ¨é‹ç”¨ã—ã¦ã„るマシンã§DRBD通信障害ã§ã‚¹ã‚¿ãƒ³ãƒ‰ã‚¢ãƒãƒ³ã«ãªã£ãŸéš›ã«
マシンをå†èµ·å‹•ã—ã¾ã—ãŸãŒã€å†èµ·å‹•æ™‚ã«Slaveå´ã®å¤ã„データã§å†åŒæœŸã•ã‚Œã€
最新データãŒæ¶ˆãˆã¦ã—ã¾ã†äº‹è±¡ãŒç™ºç”Ÿã—ã¦ã—ã¾ã£ãŸã®ã§ã€å†ç™ºé˜²æ¢ç–ã¨ã—ã¦è¨å®šã‚’変更ã—ãŸã„ã¨è€ƒãˆã¦ã„ã¾ã™ã€‚
本æ¥ãªã‚‰DRBDコマンドç‰ã§å¾©æ—§ã‚’試ã¿ã‚‹ã¹ããªã®ã§ã—ょã†ãŒã€
諸事情ã‚ã‚Šã€è©³ã—ããªã„ã‚‚ã®ãŒç‹¬è‡ªã®åˆ¤æ–ã§å†èµ·å‹•ã‚’実施ã—ã¦ã—ã¾ã†ã“ã¨ãŒã‚ã‚Šã€
ãã®ã‚ˆã†ãªå ´åˆã‚‚本事象を発生ã•ã›ãªã„よã†ã«ã—ãŸã„ã¨è€ƒãˆã¦ã„ã¾ã™ã€‚
ã€ç’°å¢ƒã€‘
Red Hat Enterprise Linux Server 6.1 (for x86)
kernel-2.6.32-431.23.3.el6.i686
corosync-1.4.1-17.el6_5.1.i686
pacemaker-1.1.10-14.el6_5.3.i686
drbd-8.3.16-1.el6.i386
ã€Pacemaker定義】
node testsv1
node testsv2 \
attributes standby=off
primitive res_before_test-e lsb:before_test-e \
op monitor interval=30 timeout=30 \
op start interval=0 timeout=60 \
op stop interval=0 timeout=60
primitive res_drbd_quota lsb:drbd_quota \
op monitor interval=30 timeout=30 \
op start interval=0 timeout=60 \
op stop interval=0 timeout=60
primitive res_drbd_r0 ocf:linbit:drbd \
params drbd_resource=r0 \
op monitor interval=10 role=Master timeout=30 \
op monitor interval=30 role=Slave timeout=30 \
op start interval=0 timeout=240 \
op stop interval=0 timeout=100
primitive res_filesystem Filesystem \
params device="/dev/drbd0" directory="/drbd" fstype=ext4
options="noatime,nobarrier,usrquota" \
op start interval=0 timeout=60 \
op stop interval=0 timeout=60
primitive res_nmb lsb:nmb \
op monitor interval=30 timeout=30 \
op start interval=0 timeout=60 \
op stop interval=0 timeout=60
primitive res_pgsql lsb:postgresql-9.0 \
op monitor interval=30 timeout=30 \
op start interval=0 timeout=60 \
op stop interval=0 timeout=60
primitive res_samba lsb:smb \
op monitor interval=30 timeout=30 \
op start interval=0 timeout=60 \
op stop interval=0 timeout=60
primitive res_vsftp lsb:vsftpd \
op monitor interval=30 timeout=30 \
op start interval=0 timeout=60 \
op stop interval=0 timeout=60
group rg_filesystem res_filesystem res_drbd_quota
group rg_samba res_samba res_nmb
ms ms_drbd_r0 res_drbd_r0 \
meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1
notify=true
location l_filesystem rg_filesystem -inf: testsv2
location l_test_drbd ms_drbd_r0 \
rule 200: #uname eq testsv1 \
rule 100: #uname eq testsv2
colocation c_filesystem inf: rg_filesystem ms_drbd_r0:Master
colocation c_test inf: res_before_test-e rg_filesystem
colocation c_pgsql inf: res_pgsql rg_filesystem
colocation c_samba inf: rg_samba rg_filesystem
colocation c_vsftp inf: res_vsftp rg_filesystem
order o_filesystem inf: ms_drbd_r0:promote rg_filesystem:start
order o_test 0: rg_samba res_before_test-e:start
order o_pgsql inf: rg_filesystem res_pgsql:start
order o_samba 0: res_vsftp rg_samba:start
order o_vsftp 0: res_pgsql res_vsftp:start
property cib-bootstrap-options: \
stonith-enabled=false \
no-quorum-policy=ignore \
default-resource-stickiness=200 \
dc-version=1.1.10-14.el6_5.3-368c726 \
cluster-infrastructure="classic openais (with plugin)" \
expected-quorum-votes=2
ã€DRBD定義】
global {
#usage-count yes;
usage-count no;
# minor-count dialog-refresh disable-ip-verification
}
common {
#protocol C;
handlers {
# These are EXAMPLE handlers only.
# They may have severe implications,
# like hard resetting the node under certain circumstances.
# Be careful when chosing your poison.
# fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
# split-brain "/usr/lib/drbd/notify-split-brain.sh root";
# out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";
# before-resync-target
"/usr/lib/drbd/snapshot-resync-target-lvm.sh -p 15 -- -c 16k";
# after-resync-target
/usr/lib/drbd/unsnapshot-resync-target-lvm.sh;
}
startup {
# wfc-timeout degr-wfc-timeout outdated-wfc-timeout
wait-after-sb
}
disk {
# on-io-error fencing use-bmbv no-disk-barrier
no-disk-flushes
# no-disk-drain no-md-flushes max-bio-bvecs
no-disk-barrier;
no-disk-flushes;
}
net {
# sndbuf-size rcvbuf-size timeout connect-int ping-int
ping-timeout max-buffers
# max-epoch-size ko-count allow-two-primaries cram-hmac-alg
shared-secret
# after-sb-0pri after-sb-1pri after-sb-2pri
data-integrity-alg no-tcp-cork
max-buffers 8000;
max-epoch-size 8000;
after-sb-0pri discard-younger-primary;
after-sb-1pri discard-secondary;
after-sb-2pri disconnect;
}
syncer {
# rate after al-extents use-rle cpu-mask verify-alg
csums-alg
rate 30M;
verify-alg sha1;
}
}