現: 2009-08-19 (水) 00:51:37 maruo ソース
Line 1: Line 1:
 +[[Gentoo Linuxな生活/システム管理関連]]
 +*DRBDとは? [#v1a70cac]
 +Linuxのカーネルドライバで、ネットワークを経由したディスクのミラーリングを行ってくれます。実際のディスクと、仮想ファイルシステムの間に割り込み、設定したネットワークの向こうにいるミラー先に書いたあと、ローカルのディスクにも書き込んでくれるという優れもの。つまりネットワークを介して、2台のホストで動かすRAID1というところなのです。
 +
 +*でわ設定 [#z2c271f6]
 +仮にここでは、SRV1(IP:192.168.1.1),SRV2(IP:192.168.1.2)というホストの2台で行うと仮定しますね
 +**インストール [#j1ed1a69]
 +PowerPCでは、DRBDはMaskedされておりました。なので、玄箱、現用サーバの双方でpackage.keywordsに
 + sys-cluster/drbd ~x86
 +もしくは
 + sys-cluster/drbd ~ppc
 +を書き込んで、同一バージョンのDRBDを導入してやります。2006年3月6日時点では、0.7.16が最新らしい
 + # emerge drbd
 +インストール完了~
 +
 +**設定 [#sa2aaa07]
 +***DRBD用物理ディスクを作る [#mfd88b72]
 +DRBD用の物理領域を作ってやります。おいちゃんはLVM上にパーティションを切ってやりました
 + #lvcreate -L15G -ndrbd lvm
 +これで15Gbyteのdrbdという論理ボリュームが作られました。SRV1,SRV2で実施します
 +**DRBD用設定ファイルを作る [#e958bb9f]
 +DRBD用設定ファイルの雛形を持ってきます
 + # zcat /usr/share/doc/drbd-0.7.16/drbd.conf.gz > /etc/drbd.conf
 +編集してやります。最低限の設定を。
 + resource drbd0 {
 + # プロトコルの設定
 + # C:対向ホストの書き込み完了を持って転送完了とする
 + # B:対向ホストのデータ受信完了を持って転送完了とする
 + # A:対向ホストへのデータ転送を持って転送完了とする
 + protocol B;
 + startup {
 +   degr-wfc-timeout 60;    # 2 minutes.
 + }
 + disk {
 +   # IOエラーが発生した場合。pass_on,panic,detachが選べる。
 +   # pass_on 上位レイヤに通知
 +   # panic カーネルパニックになる
 +   # detach ディスクレスモードで動作
 +   on-io-error detach;
 +   size 15G;
 + }
 + net {
 +   # 接続が切れた場合。reconnect:再接続,stand_alone:1台だけで継続、freeze_io:IOを止める
 +   on-disconnect reconnect;
 + }
 + syncer  {
 +   # データ同期の転送レート。5MByte/sec
 +   rate 5M;
 +   group 1;
 +   # エクステントサイズ。データ同期時に重要らしい。玄箱ではこれ以上上げられなかった…
 +   al-extents 7;
 + }
 + on SRV1 {
 +   device    /dev/drbd0;
 +   disk      /dev/lvm/drbd;
 +   address    192.168.1.1:7788;
 +   meta-disk  internal;
 + }
 + on SRV2 {
 +   device    /dev/drbd0;
 +   disk      /dev/lvm/drbd;
 +   address    192.168.1.2:7788;
 +   meta-disk  internal;
 + }
 +
 +さて。わかりましたかねぇ?resourceのはデバイスの設定と一緒。プロトコル、ディスク同期の時間、同期させる2台のサーバのIPとデバイスの設定。
 +
 +***仮想ディスクデバイススペシャルファイルの追加 [#s42f59fc]
 +Linux2.6でudev使ってる場合は、勝手に作られます。ああ、便利~。そうでない場合は、MAKEDEVで作る必要があります。
 +***DRBDをSRV1で起動させる [#j817d1d2]
 + # /etc/init.d/drbd start
 +lsmodうつと、DRBDのデバイスがロードされているのが分かります。/proc/drbdというprocファイルも追加されているのが分かります。catで見てみると
 + version: 0.7.16 (api:77/proto:74)
 + SVN Revision: 2066 build by XXXX@XXXX, 2006-03-01 00:11:21
 + 0: cs:WFConnection st:Secondary/Unknown ld:Consistent
 +   ns:1316624 nr:460 dw:1317084 dr:482244 al:30607 bm:16 lo:0 pe:0 ua:0 ap:0
 +セカンダリモードで、接続待ちしてるのが分かります。この時点で、/dev/drbd0が使用可能になっているので、後は普通にディスクを使用する気持ちでフォーマットしてやります。おいちゃんはreiserfsを使用したので
 + # mkreiserfs /dev/drbd0
 +***DRBDをSRV2で起動させる [#hcb052d9]
 +同じdrbd.confをSRV2にもコピーしてやって、
 + # /etc/init.d/drbd start
 +コネクションが確立すると、LANのアクセスランプがピカピカ光って、HDをがりがりアクセスし始めます。お互いのディスクの同期を開始いたします。これは最初の1回で終了。同期完了したら、あとはこの動作はいたしません。
 +*DRBDのディスクをマウントしてみる [#if334511]
 + version: 0.7.16 (api:77/proto:74)
 + SVN Revision: 2066 build by XXXX@XXXX, 2006-03-01 00:11:21
 + 0: cs:Connected st:Secondary/Secondary ld:Consistent
 +   ns:1316624 nr:460 dw:1317084 dr:482244 al:30607 bm:16 lo:0 pe:0 ua:0 ap:0
 +両方ともセカンダリモードで、接続が確立しています。片方をプライマリモードにしないと、動作開始が出来ませんので、SRV1で以下のコマンドを売ってみましょう
 + # drbdadm primary drbd0
 +ここでのdrbd0は、drbd.confのresource項で書いた名前ね…
 +するてーとSRV1では
 + version: 0.7.16 (api:77/proto:74)
 + SVN Revision: 2066 build by XXXX@XXXX, 2006-03-01 00:11:21
 + 0: cs:Connected st:Primary/Secondary ld:Consistent
 +   ns:1316624 nr:460 dw:1317084 dr:482244 al:30607 bm:16 lo:0 pe:0 ua:0 ap:0
 +SRV2では
 +  version: 0.7.16 (api:77/proto:74)
 + SVN Revision: 2066 build by XXXX@XXXX, 2006-03-01 00:11:21
 + 0: cs:Connected st:Secondary/Primary ld:Consistent
 +   ns:1316624 nr:460 dw:1317084 dr:482244 al:30607 bm:16 lo:0 pe:0 ua:0 ap:0
 +となって、SRV1がプライマリディスクになったことが分かります。SRV1側では、/dev/drbd0が普通にディスクとしてマウントできるようになります。
 + # mount /dev/drbd0 /mnt/drbd
 +これで、/mnt/drbdに書き込むと、SRV2にもコピーされます。確認するためにSRV1側で
 + # umount /mnt/drbd
 + # drbdadm secondary drbd0
 +SRV2で
 + # drbdadm primary drbd0
 + # mount /dev/drbd0 /mnt/drbd
 +とやってみましょう。SRV1で書き込んだ内容が、SRV2でも見えますか?しかも普通にディスクとして使えていますか?アイディアは誰でも考え付きますが、この動作はなかなか感動ですよね…
  

  • Gentoo Linuxな生活/DRBD のバックアップ差分(No. All)
    • 現: 2009-08-19 (水) 00:51:37 maruo

トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 3398, today: 1, yesterday: 1
ページ内検索

ログイン

ユーザー名:


パスワード:





パスワード紛失

メインメニュー

サブメニュー
自宅鯖計画

Gentoo Linuxな生活

玄箱HGにGentoo格闘記

航空ショーへ行こう

モータースポーツな世界

奥深き写真の世界への誘い

我思う ゆえに我あり



携帯用QRコード