連載
» 2017年03月09日 05時00分 公開

DRBDの仕組みを学ぶ(15):Ubuntuで実践する「DRBD 9環境」構築マニュアル (3/4)

[澤田健,@IT]

DRBD Manageで、DRBD 9環境を構築

 DRBD 9環境を、DRBD Manageを使って構築していきます。

初期化する

 一号機にログインして、「drbdmanage init」コマンドで初期化します。途中で「yes」か「no」を問われますが、全て「yes」で大丈夫です。

# drbdmanage init 192.168.0.101
 
You are going to initialize a new drbdmanage cluster.
CAUTION! Note that:
  * Any previous drbdmanage cluster information may be removed
  * Any remaining resources managed by a previous drbdmanage installation
    that still exist on this system will no longer be managed by drbdmanage
 
Confirm:
 
  yes/no: yes
Empty drbdmanage control volume initialized on '/dev/drbd0'.
Empty drbdmanage control volume initialized on '/dev/drbd1'.
Waiting for server: .
Operation completed successfully
#
一号機にて、「drbdmanage init」コマンドで初期化する

 「Operation completed successfully」と表示されることを確認してください。

ノードを追加する

 続いて、ノードを追加します。一号機へ二号機と三号機を追加する作業です。

 「drbdmanage add-node」コマンドを一号機で実行し、二号機を追加します。途中で「yes」か「no」を問われますが、全て「yes」で大丈夫です。

# drbdmanage add-node DRBD9-2 192.168.0.102
 
Operation completed successfully
Operation completed successfully
 
Host key verification failed.
 
Join command for node DRBD9-2:
drbdmanage join -p 6999 192.168.0.102 1 DRBD9-1 192.168.0.101 0 DnE/fZ5JeTkAttFDA8ZL
 
#
一号機でノード:二号機を追加する

 「Operation completed successfully」と表示されることを確認してください。

 もし「Join command for node <ホスト名>」と表示された場合には、最終行の「drbdmanage join -p 6999 192.168.0.102 1 DRBD9-1 192.168.0.101 0 DnE/fZ5JeTkAttFDA8ZL」をコピーして、対象とされるサーバでそのまま実行するようにします(なお、この文字列は環境によって変わります。実環境で表示された文字列を用いてください)。上記の例では「Join command for node DRBD9-2」とあるので、二号機で実行します。

 続いて、三号機を追加します。同様に途中で「yes」か「no」を問われますが、全て「yes」で大丈夫です。

# drbdmanage add-node DRBD9-3 192.168.0.103
Operation completed successfully
Operation completed successfully
 
Host key verification failed.
 
Join command for node DRBD9-3:
drbdmanage join -p 6999 192.168.0.103 2 DRBD9-1 192.168.2.11 0 DnE/fZ5JeTkAttFDA8ZL
 
#
一号機でノード:三号機を追加する

 同様に、「Join command for node <ホスト名>」と表示された場合には、最終行の「drbdmanage join〜」で始まる文字列をコピーして、この例では三号機で実行します。

 ノードが追加されたことを確認します。一号機で「drbdmanage list-nodes」コマンドを実行します。

# drbdmanage list-nodes
 
+------------------------------------------------------------------------------+
| Name    | Pool Size | Pool Free |             |   State |
|------------------------------------------------------------------------------|
| DRBD9-1 |     20476 |     20468 |             |      ok |
| DRBD9-2 |     20476 |     20468 |             |      ok |
| DRBD9-3 |     20476 |     20468 |             |      ok |
+------------------------------------------------------------------------------+
 
一号機でノードが正しく追加されたかを確認する

リソースを登録する

 続いて、リソース「r0」「r1」を登録します。

# drbdmanage add-resource r0
# drbdmanage add-resource r1
リソースを登録する

 リソースが正しく登録されたかどうかを確認します。

# drbdmanage list-volumes --groupby Size --show Port
 
+------------------------------------------------------------------------------+
| Name | Vol ID | Size | Minor | Port |                | State |
|------------------------------------------------------------------------------|
| r0   |      * |    * |     * | 7000 |                |     * |
| r1   |      * |    * |     * | 7001 |                |     * |
+------------------------------------------------------------------------------+
リソースの登録状況を確認

 これにより、リソース「r0」と「r1」が登録され、それぞれ7000番と7001番のポートを使用する設定になっていることを確認できました。DRBD 9では、7000番から順番に使用ポートが自動的に割り当てられます。

ボリュームを登録する

 続いて、「ボリューム」を登録します。今回の例では、リソース「r0」用、リソース「r1」用それぞれに10GBのボリュームを割り当てます。

# drbdmanage add-volume r0 10GB
Operation completed successfully
 
# drbdmanage add-volume r1 10GB
Operation completed successfully
リソースにボリュームを登録する

 ボリュームが正しく登録されたかを確認します。

# drbdmanage list-volumes --groupby Size --show Port
 
+------------------------------------------------------------------------------+
| Name | Vol ID |     Size | Minor | Port |                | State |
|------------------------------------------------------------------------------|
| r0   |      0 | 9.31 GiB |   100 | 7000 |                |    ok |
| r1   |      0 | 9.31 GiB |   101 | 7001 |                |    ok |
+------------------------------------------------------------------------------+
ボリュームの登録状況を確認

デプロイ/アサインを行う

 最後にデプロイもしくはアサインの作業を行うことで、登録ボリュームをDRBD領域として使えるようになります。どちらも「DRBD領域の使用を開始する」という作業ですが、デプロイは「指定した台数を自動的に割り当てる」、アサインは「使うサーバを明示的に指定する」という違いがあります。

 デプロイは「drbdmanage deploy-resource」コマンドで行います。

# drbdmanage deploy-resource r0 3
Operation completed successfully
 
# drbdmanage deploy-resource r1 3
Operation completed successfully
リソースをデプロイする

 上記のコマンドによって、r0とr1のリソースが「3」台のサーバにデプロイされます。ちなみに、コマンドの末尾を「2」にすれば、2台にデプロイされます。その際は、本例では3台のサーバから最適なものが自動的に選ばれ、2台分だけデプロイされるという動きになります。

 アサインは「drbdmanage assign」コマンドを使います。以下のように明示的に使用するサーバを指定します。

# drbdmanage assign r0 drbd9-1
# drbdmanage assign r0 drbd9-2
# drbdmanage assign r0 drbd9-3
# drbdmanage assign r1 drbd9-1
# drbdmanage assign r1 drbd9-2
# drbdmanage assign r1 drbd9-3
リソースをアサインする

 正しくデプロイあるいはアサインできたことを確認します。

# drbdmanage list-assignments
 
+------------------------------------------------------------------+
| Node          | Resource | Vol ID |       |  State |
|------------------------------------------------------------------|
| DRBD9-1       | r0       |      * |       |     ok |
| DRBD9-1       | r1       |      * |       |     ok |
| DRBD9-2       | r0       |      * |       |     ok |
| DRBD9-2       | r1       |      * |       |     ok |
| DRBD9-3       | r0       |      * |       |     ok |
| DRBD9-3       | r1       |      * |       |     ok |
+------------------------------------------------------------------+
デプロイ/アサイン状況を確認する

 各サーバにr0、r1のリソースが割り当てられていることを確認できました。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。