Midnightjapan

Tag: DRBD

Heartbeat の安全な停止方法

by jun on 7月.26, 2011, under Linux, Mysql, PHP, Programing

1号機(プライマリー) 2号機(セカンダリー)として稼働中のDRBD+Heartbeat(HAクラスタシステム)を構築している。
これを安全に停止するための自己記録である。

まず2号機にログインして管理者になり[Heartbeat]を停止する。

[管理者@2号機] # /etc/rc.d/init.d/heartbeat stop

これで、2号機が停止したら1号機にログインして管理者になり[Heartbeat]を停止する。

[管理者@1号機] # /etc/rc.d/init.d/heartbeat stop

※ 深夜の気が向いたときしかやりたくないので、ついここで、rootにならずにやって、サブシステムがロックしているとか、よくわからないエラーがでてしまい、余計な時間がかかることがあるが、rootになっていれば問題はおきるわけがない。

つづいて、[Heartbeat]がとまったことでDRBDもこのようになっている。

[管理者@1号機] # /etc/rc.d/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: ************************* build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
m:res  cs         ro                   ds                 p  mounted  fstype
0:r0   Connected  Secondary/Secondary  UpToDate/UpToDate  C

そこでこのようにプライマリーにしてマウントする

[管理者@1号機] # drbdadm primary all
[root@winsor ~]# /etc/rc.d/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: ************************* build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
m:res  cs         ro                 ds                 p  mounted  fstype
0:r0   Connected  Primary/Secondary  UpToDate/UpToDate  C
[管理者@1号機] # mount /dev/drbd0 /マウントしたいパス

これで安全に停止してメンテナンスが可能です。

ささ、MySQLのバックアップやディスク容量の増加など完了しました。
今度はちゃんと元にもどしましょう。

まず1号機にログインして管理者になり[Heartbeat]を開始する。

[管理者@1号機] # /etc/rc.d/init.d/heartbeat start

つぎに2号機にログインして管理者になり[Heartbeat]を開始する。

[管理者@2号機] # /etc/rc.d/init.d/heartbeat start

そしたらあわてずに待つ。
1号機2号機どちらでもかまわないが[Heartbeat]のステータスを表示する。
一応プライマリーの1号機でみてみることにする。

[管理者@1号機] # crm_mon
Defaulting to one-shot mode
You need to have curses available at compile time to enable console mode

============
Last updated: Tue Jul -- --:--:-- ----
Current DC: NONE
2 Nodes configured.
1 Resources configured.
============

Node: 1号機.lan (***********************************************): OFFLINE
Node: 2号機.lan (***********************************************): OFFLINE

じっくりね。結構この状態が続いて、あせることがあるかもしれないけど、あわてない。
そして1分から2分後

[管理者@1号機] # crm_mon
Defaulting to one-shot mode
You need to have curses available at compile time to enable console mode

============
Last updated: Tue Jul -- --:--:-- ----
Current DC: 1号機.lan (***********************************************)
2 Nodes configured.
1 Resources configured.
============

Node: 1号機.lan (***********************************************): online
Node: 2号機.lan (***********************************************): online

Resource Group: group_1
    IPaddr2_1   (heartbeat::ocf:IPaddr2):       Started 1号機.lan
    MailTo_2    (heartbeat::ocf:MailTo):        Started 1号機.lan
    drbddisk_3  (heartbeat:drbddisk):   Started 1号機.lan
    Filesystem_4        (heartbeat::ocf:Filesystem):    Started 1号機.lan
    httpd_5     (lsb:httpd):    Started 1号機.lan
    mysqld_6    (lsb:mysqld):   Started 1号機.lan

ふぅ、一安心。たまにしかやらないから、余計ね。ご苦労様でした _(._.)_

コメントなし :, , more...

DRBDの復旧

by jun on 6月.21, 2011, under Linux

DRBDが下記のようになった。

フェイルオーバーしてセカンダリーへ
その後プライマリー復旧してみてみるとDRBDがこのようになっている。

プライマリー側

# /etc/rc.d/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: ***** build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
m:res  cs          ro                 ds                 p      mounted  fstype
0:r0   StandAlone  Secondary/Unknown  UpToDate/DUnknown  r----

セカンダリー側

# /etc/rc.d/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: ***** build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
m:res  cs          ro               ds                 p      mounted  fstype
0:r0   StandAlone  Primary/Unknown  UpToDate/DUnknown  r----  ext3

フェイルバックはわざと手動にしてある。

もちろん便利はわかっているが正常にデータがセカンダリーと同期するかについては不明なので自動はお断り。

双方でHeartbeatとDRBDを停止して再起動しても変わらない。

そこで、復旧に取り掛かる。

まずはプライマリーを停止。

セカンダリーを起動。

# drbdadm secondary all
# drbdadm down all
# drbdadm cstate all
WFConnection
# drbdadm attach all
# drbdadm invalidate all
# drbdadm connect all

ん?接続に問題がでていると。接続を試みてくれた。Standaloneじゃなくなってくれた。当たり前かw

セカンダリーの状態

# /etc/rc.d/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: ***** build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
m:res  cs            ro                 ds                 p  mounted  fstype
0:r0   WFConnection  Secondary/Unknown  UpToDate/DUnknown  C

プライマリー側起動

# /etc/rc.d/init.d/drbd start
Starting DRBD resources: [
r0
Found valid meta data in the expected location, 1073737728 bytes into /dev/VolGroup00/lvol0.
d(r0) s(r0) n(r0) ].

そこで確認してみると

# /etc/rc.d/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
m:res  cs          ro                   ds                     p             mounted  fstype
0:r0   SyncSource  Secondary/Secondary  UpToDate/Inconsistent  C
...    sync'ed:    57.1%                (454140/1048508)K      delay_probe:

ぉぃまてゴルァw

おまえはプライマリーだろってことであわてて

# drbdadm primary all
# /etc/rc.d/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: ***** build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
m:res  cs         ro                 ds                 p  mounted  fstype
0:r0   Connected  Primary/Secondary  UpToDate/UpToDate  C

やっと接続された。

そこでプライマリー側でマウントしてみる。

# mount /dev/drbd0 /mnt
/etc/rc.d/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
m:res  cs         ro                 ds                 p  mounted  fstype
0:r0   Connected  Primary/Secondary  UpToDate/UpToDate  C  /mnt     ext3

無事にマウントしたようだ。

コメントなし :, more...



何かお探しですか?

以下にキーワードを入力してサイト内検索が可能です:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!