DRBDを軸に、データを遠隔地にも即時複製して万が一の事態に備える「冗長化/高可用性システム」の構築テクニックを紹介する本連載。今回は、DRBDの最新版「DRBD 9」環境の構築手順を解説します。
本連載は、サービスを止めてはならない環境で活躍する冗長化支援ツール「DRBD(Distributed Replicated Block Device)」を使い、災害対策システムや高可用性WordPressシステムなどを構築するノウハウをお届けしています。
前回は、DRBDの最新版である「DRBD 9」にどんな新機能が搭載され、どんなことができるのかを解説しました。今回は実際にDRBD 9環境の構築を実践していきましょう。
DRBD 9環境は、DRBD 9で新たに備わった「DRBD Manage」によってコマンドベースで構築できるようになりました。
想定するシステムは以下のような構成となります(図1)。
図1では、「r0」と「r1」という名称のリソースを2つ作成して、計3台のサーバでデータをリアルタイム同期する構成です。「drbdctl」は、DRBD Manageの管理情報を保存するためのボリューム名です。
なお今回の構築例では、「Ubuntu 16.04」で稼働するサーバに、執筆時点で最新版である「DRBD 9.0.6」「DRBD Manage 0.99.2」をインストールした環境で解説します。本連載ではこれまで、CentOSをベースとする構築手順を解説してきました。しかし本稿執筆時点の2017年2月現在、CentOSへDRBD9とDRBD Manageをインストールするには、ソースからコンパイルする手順が発生します。構築にはかなりハードルが高いことから、本構築例ではリポジトリの追加で比較的簡単にインストールできるUbuntuを採用することにしました。
今回は「Oracle VM VirtualBox(以下、VirtualBox)」で仮想マシンを3台用意して検証を進めていくことにします(もちろん、物理マシンを3台、あるいはクラウド上の仮想マシンを3台分用意できる方は、一部の記述を読み替えることで同じように進めていただけます)。
まず、仮想マシン3台それぞれにDRBD専用のディスク領域を追加します。各マシンをVirtualBox上でシャットダウンしてから作業します。
VirtualBoxのサーバ一覧から対象のサーバを選択し、「設定」→「ストレージ」→「コントローラSATA」→「ハードディスクを追加」で新規ディスクを作成します(図2)(図3)。同じ作業を3台分実施します。
ファイルタイプは「VDI(VirtualBox Disk Image)」と「可変サイズ」を選びます(図4)(図5)。
追加するディスクの上限サイズを選択します。本例では20GB確保しますが、お使いの環境に応じて適宜変更して構いません。ただし、3台とも同じ容量に設定してください(図6)。
仮想マシンへ新しい仮想ディスクが追加されました(図7)。3台ともディスクの追加を確認できたら、仮想マシンを起動してください。
追加したディスクにパーティションを作成します。まず「fdisk -l」コマンドでディスクの名称と仕様を確認します。
# fdisk -l <省略> Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト <省略> #
上記の例では「/dev/sdb」という名称のディスクが追加されていました。続いて、この/dev/sdbにパーティションを作成します。
# fdisk /dev/sdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table Building a new DOS disklabel with disk identifier 0x27d30037. コマンド (m でヘルプ): n
新たにパーティションを作成するので、「n」を入力してEnterキーで進めます。続いて、パーティションのタイプを選びます。
Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p パーティション番号 (1-4, default 1): 最初 sector (2048-41943039, 初期値 2048): 初期値 2048 を使います Last sector, +sectors or +size{K,M,G} (2048-41943039, 初期値 41943039): 初期値 41943039 を使います Partition 1 of type Linux and of size 20 GiB is set
ここではPrimary(p)を選択します。「p」を入力後、セクターの開始位置と終了位置を問われますが、本例では全ての領域を使うので何も入力せず、そのままEnterキーで進めます。再び入力を促されますので、「w」を入力してEnterキーを押せば、パーティション作成作業は完了です。
コマンド (m でヘルプ): w パーティションテーブルは変更されました! ioctl() を呼び出してパーティションテーブルを再読込みします。 ディスクを同期しています。
正しくパーティションが作成されたかを「fdisk -l」コマンドで確認します。
# fdisk -l <省略> Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト Disk label type: dos ディスク識別子: 0xd23d68eb デバイス ブート 始点 終点 ブロック Id システム /dev/sdb1 2048 41943039 20970496 83 Linux <省略> #
「/dev/sdb1」が作成されたことが確認できました。
同じ作業を3台の仮想マシン全てで実施すれば準備は完了です。なお今回は、VirtualBoxで作業しているので、Ubuntu 16.04入りのサーバを1台準備し、仮想マシンイメージをクローンして2台目、3台目を準備する方法でも大丈夫です。
Copyright © ITmedia, Inc. All Rights Reserved.