Linux:CentOS5(x64):install:drbd83

提供:KinusatiWiki
移動: 案内, 検索

目次

drbd83のインストール

CentOSでネットワークを利用したディスクミラーリングを行い、HA構成基盤を構築するためdrbd83を利用する

事前作業

インストール対象の2台でNTPを設定しましょう。ntpdateはダメです。ntpdです。 NTPの設定はNTP設定を参照

drbdセットアップ作業

インストール作業(1台目)

yumで一発です。簡単。

# yum -y install drbd83 kmod-drbd83

コンフィグ設定(1台目)

/etc/drbd.confにミラーデバイスを設定します。

同期を取る2台分の設定(ホスト名/drbdデバイス名/ディスクデバイス/アドレス等)を記載します。 本設定は2台(test1.example.com/test2.example.com)に対して行います.

# vi /etc/drbd.conf
global { usage-count yes; }
common { syncer { rate 10M; } }
resource r0 {
    protocol C;
    startup {
         degr-wfc-timeout 120;
    }
    net {
         cram-hmac-alg sha1;
         shared-secret "FooFunFactory";
    }
    on test1.example.com {
         device    /dev/drbd0;
         disk      /dev/hdb1;
         address   192.168.0.1:7789;
         meta-disk  internal;
    }
    on test2.example.com {
         device    /dev/drbd0;
         disk      /dev/hdb1;
         address   192.168.0.2:7789;
         meta-disk  internal;
    }
}

"on test1.example.com {"の行には"uname -n"コマンドの結果を書くことがポイントです。

ショートネーム(test1等)で記載してもdrbdが動作しませんので注意が必要です.

なおIPv6を指定する場合は/etc/drbd.confを以下のように記載します。

    on test1.example.com {
         device    /dev/drbd0;
         disk      /dev/hdb1;
         address   ipv6 [2001:xxxx:xxxx::1]:7789;
         meta-disk  internal;
    }

デバイス作製(1台目)

drbdデバイスを作成します.

# drbdadm create-md r0
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.
success

自動起動(1台目)

drbdを自動起動ONにします。

# chkconfig drbd on

drbdの起動(1台目)

drbdサービスを起動します。なお相手ホストが起動するまでずっと待つ動作を行うので、この間に二台目をセットアップします。

# service drbd start
Starting DRBD resources: [ d(r0) s(r0) n(r0) ]outdated-wfc-timeout has to be shorter than degr-wfc-timeout
outdated-wfc-timeout implicitly set to degr-wfc-timeout (120s)
........

インストール作業(2台目)

1台目と同様yumで一発です。簡単。

# yum -y install drbd83 kmod-drbd83

コンフィグ設定(2台目)

/etc/drbd.confにミラーデバイスを設定します。1台目と同じコンフィグを投入します。

デバイス作製(2台目)

1台目と同様にdrbdデバイスを作成します.

# drbdadm create-md r0
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.
success

自動起動(2台目)

drbdを自動起動ONにします。

# chkconfig drbd on

drbdの起動(2台目)

drbdサービスを起動すると1,2台目で通信可能となり、1,2台目のサービスが起動します。

# service drbd start
Starting DRBD resources: [ d(r0) s(r0) n(r0) ].

drbdのステータス確認(1,2台目供)

drbdの状態を確認します。

# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.2 (api:88/proto:86-90)
GIT-hash: dd7985327f146f33b86d4bff5ca8c94234ce840e build by mockbuild@v20z-x86-64.home.local, 2009-08-29 14:07:55
m:res  cs         ro                   ds                         p  mounted  fstype
0:r0   Connected  Secondary/Secondary  Inconsistent/Inconsistent  C

dsががInconsistent/Inconsistentとなっていることからデバイスの初期同期が必要であることがわかります。

drbdデバイスの設定

drbdデバイスの初期同期(1台目のみ)

デバイスの初期同期を行います。1台目から同期をかけます。

# drbdadm -- --overwrite-data-of-peer primary all

デバイスの同期状態を目視します。

# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.2 (api:88/proto:86-90)
GIT-hash: dd7985327f146f33b86d4bff5ca8c94234ce840e build by mockbuild@v20z-x86-64.home.local, 2009-08-29 14:07:55
m:res  cs          ro                 ds                     p  mounted  fstype
0:r0   SyncSource  Primary/Secondary  UpToDate/Inconsistent  C
...    sync'ed:    4.8%               (7800/8188)M

同期状態が4.8%と表示されていることがわかります。

デバイス同期後は以下の状態になります。dsのステータスがUpToDate/UpToDateになることがわかります。

# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.2 (api:88/proto:86-90)
GIT-hash: dd7985327f146f33b86d4bff5ca8c94234ce840e build by mockbuild@v20z-x86-64.home.local, 2009-08-29 14:07:55
m:res  cs         ro                 ds                 p  mounted  fstype
0:r0   Connected  Primary/Secondary  UpToDate/UpToDate  C

drbdデバイスにファイルシステムの作成(1台目のみ)

drbdデバイスにext3ファイルシステムを作成します。

# mkfs -t ext3 /dev/drbd0
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1048576 inodes, 2096401 blocks
104820 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2147483648
64 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 22 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

マウントポイントを作成(1,2台とも)

/mnt/drbd0にマウントさせるため、マウントポイントを作成します

# mkdir -p /mnt/drbd0

drbdデバイスのマウント

作成したdrbdデバイスをマウントします。

デバイスのマウント(1台目)

1台目でdrbdデバイスをマウントします。

# mount /dev/drbd0 /mnt/drbd0
# df -h /dev/drbd0
Filesystem          サイズ  使用  残り 使用% マウント位置
/dev/drbd0            7.9G  147M  7.4G   2% /mnt/drbd0

2台目でdrbdデバイスをマウントするためにアンマウントおよびプライマリからセカンダリへの変更を行います。

# umount /dev/drbd0
# drbdadm secondary all
# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.2 (api:88/proto:86-90)
GIT-hash: dd7985327f146f33b86d4bff5ca8c94234ce840e build by mockbuild@v20z-x86-64.home.local, 2009-08-29 14:07:55
m:res  cs         ro                   ds                 p  mounted  fstype
0:r0   Connected  Secondary/Secondary  UpToDate/UpToDate  C

デバイスのマウント(2台目)

2台目でdrbdデバイスをマウントします。

まずdrbdデバイスをプライマリに変更します。

# drbdadm primary all
# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.2 (api:88/proto:86-90)
GIT-hash: dd7985327f146f33b86d4bff5ca8c94234ce840e build by mockbuild@v20z-x86-64.home.local, 2009-08-29 14:07:55
m:res  cs         ro                 ds                 p  mounted  fstype
0:r0   Connected  Primary/Secondary  UpToDate/UpToDate  C

マウントします。

# mount /dev/drbd0 /mnt/drbd0
# df -h /dev/drbd0
Filesystem          サイズ  使用  残り 使用% マウント位置
/dev/drbd0            7.9G  147M  7.4G   2% /mnt/drbd0
個人用ツール