Ubuntuで実践する「DRBD 9環境」構築マニュアル:DRBDの仕組みを学ぶ(15)(3/4 ページ)
DRBDを軸に、データを遠隔地にも即時複製して万が一の事態に備える「冗長化/高可用性システム」の構築テクニックを紹介する本連載。今回は、DRBDの最新版「DRBD 9」環境の構築手順を解説します。
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 #
「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.
関連記事
- 障害時にサブサーバへ自動で切り替える「高可用性WordPressシステム」の作り方 前編
サービスを止めてはならない環境で活躍する冗長化支援ツール「DRBD」。今回は、CMSツールとして多くのWebサイトで利用されている「WordPressサーバ」の高可用性をDRBDで確保する方法を解説します。前編は、必要なソフトウェアのインストールと初期設定までを説明します。 - DRBD(Distributed Replicated Block Device)とは何か
障害監視ツールなどと一緒に使うことで、サービスの継続提供を助けるDRBD。Linuxカーネルに統合されている機能ですが、上手に使いこなしているでしょうか? 本連載では、DRBDの動作や使いどころを順を追って紹介していきます。 - ミラーリングツール「DRBD」によるデータ保護
「Heartbeat」の適切な導入によってHAクラスタを構成し、Linux上で動作しているサービスの可用性を上げることができます。続いて、肝心のデータそのものを保護できるツール「DRBD」について紹介しましょう。 - DRBD+iSCSIでサクッと作れる、Windows 10の「自動データ複製&冗長化システム」
DRBDを軸に、データを遠隔地にも即時複製して万が一の事態に備える「冗長化/高可用性システム」の構築テクニックを紹介する本連載。今回は、Windows 10/Windows Server環境の「自動データ複製&冗長化システムの作り方」を解説します。 - DRBD+iSCSI夢の共演(前編)〜 Windowsドライブをミラーリングで保護 〜
Linux上で動作するオープンソースソフトウエア「DRBD」とiSCSIを組み合わせ、部門内のWindows端末のデータをバックアップするシステムを構築してみよう