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

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

DRBDを軸に、データを遠隔地にも即時複製して万が一の事態に備える「冗長化/高可用性システム」の構築テクニックを紹介する本連載。今回は、DRBDの最新版「DRBD 9」環境の構築手順を解説します。

[澤田健,@IT]

連載バックナンバー

 本連載は、サービスを止めてはならない環境で活躍する冗長化支援ツール「DRBD(Distributed Replicated Block Device)」を使い、災害対策システム高可用性WordPressシステムなどを構築するノウハウをお届けしています。

 前回は、DRBDの最新版である「DRBD 9」にどんな新機能が搭載され、どんなことができるのかを解説しました。今回は実際にDRBD 9環境の構築を実践していきましょう。

DRBD 9環境を構築する

 DRBD 9環境は、DRBD 9で新たに備わった「DRBD Manage」によってコマンドベースで構築できるようになりました。

 想定するシステムは以下のような構成となります(図1)。

photo 図1 構築するDRBD 9環境の構成イメージ

 図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台分実施します。

photo 図2 仮想マシンにディスク領域を追加する
photo 図3 仮想マシンへ新規ディスクを作成する

 ファイルタイプは「VDI(VirtualBox Disk Image)」と「可変サイズ」を選びます(図4)(図5)。

photo 図4 「VDI(VirtualBox Disk Image)」を選ぶ
photo 図5 「可変サイズ」を選ぶ

 追加するディスクの上限サイズを選択します。本例では20GB確保しますが、お使いの環境に応じて適宜変更して構いません。ただし、3台とも同じ容量に設定してください(図6)。

photo 図6 「仮想ディスクのサイズ(の上限)」を決める

 仮想マシンへ新しい仮想ディスクが追加されました(図7)。3台ともディスクの追加を確認できたら、仮想マシンを起動してください。

photo 図7 仮想マシンへ仮想ディスクが追加された

パーティション作成

 追加したディスクにパーティションを作成します。まず「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 バイト
 
<省略>
 
# 
 
「fdisk -l」コマンドでディスクを確認

 上記の例では「/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
 
「fdisk」コマンドでパーティションを作成(1)

 新たにパーティションを作成するので、「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
「fdisk」コマンドでパーティションを作成(2)

 ここではPrimary(p)を選択します。「p」を入力後、セクターの開始位置と終了位置を問われますが、本例では全ての領域を使うので何も入力せず、そのままEnterキーで進めます。再び入力を促されますので、「w」を入力してEnterキーを押せば、パーティション作成作業は完了です。

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!
 
ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。
「fdisk」コマンドでパーティションを作成(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 バイト
Disk label type: dos
ディスク識別子: 0xd23d68eb
デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdb1            2048    41943039    20970496   83  Linux
 
 
<省略>
 
# 
「fdisk -l」コマンドでディスク状態を確認

 「/dev/sdb1」が作成されたことが確認できました。

 同じ作業を3台の仮想マシン全てで実施すれば準備は完了です。なお今回は、VirtualBoxで作業しているので、Ubuntu 16.04入りのサーバを1台準備し、仮想マシンイメージをクローンして2台目、3台目を準備する方法でも大丈夫です。

       1|2|3|4 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

Focus

- PR -

RSSについて

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

メールマガジン登録

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