連載
» 2015年12月14日 05時00分 公開

DRBDの仕組みを学ぶ(4):今さら聞けない、「Sambaサーバーの冗長化」をDRBDでサクッと実現してしまう方法 (2/4)

[澤田健,株式会社サードウェア]

「Sambaファイルサーバーを冗長化する」方法

パーティション 領域 デバイス名
boot 500MB /dev/sda1
/ 20GB /dev/sda2
swap 4GB /dev/sda3
空き領域 273.5GB  

 まずはOSインストール前の準備から始めましょう。

 インストール途中のパーティション構成で、DRBD専用の領域を作成しておく必要があります。例えば、300GBのHDDのあるサーバーへDRBDをインストールする場合は、右図のようにパーティションを作成してください。

 ひとまず空き領域はそのままにして、OSのインストールを済ませます。


 OSのインストールも少し不安でしたら、以下の参考記事も一緒にご覧下さい。



 なお、AWS(Amazon Web Services)やIBM SoftLayer、Microsoft AzureなどのパブリッククラウドのIaaS(Infrastructure as a Service)環境で仮想マシンを置いて運用する場合は、2台目のディスクを追加して、これをDRBD用ディスク(領域)としてください。後ほど設定ファイルに記載しますので、このデバイス名をメモしておいてください(「/dev/xvdc1」など)。

 続いて、DRBDシステムの構築が完了するまで、一時的にfirewalldiptablesのサービスと自動起動を止めます。システム構築時における構築設定の問題か、それ以外かの問題の切り分けを行いやすくするためです。構築が終わったら再起動してください。

# systemctl stop firewalld
# systemctl disable firewalld

 CentOS 6では、以下のコマンドでiptablesを止めます。

# service iptables stop
# chkconfig iptables off

(1-1)パッケージのアップデート

 OSのインストールが完了したらCentOSのパッケージを最新版に更新(yum update)します。以下のコマンドでパッケージのアップデートを行います。

# yum update

(1-2)DRBD用パーティション領域の作成

 OSインストール時に空けておいた領域へ、partedコマンドを使用してDRBD用のパーティション領域を作成します。

 まずはディスクの状態を確認します。以下は使用ディスクが/dev/sdaの場合の例ですので、自身が運用する環境に応じて適宜読み替えてください。print freeで詳細が表示されます。

# parted /dev/sda
GNU Parted 3.1
/dev/sda を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) print free
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sda: 300.0 GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:
番号  開始    終了    サイズ        タイプ     ファイルシステム              フラグ
      32.3kB  1049kB  1016kB            空き容量
 1    1049kB  525MB   524MB   primary  xfs               boot
 2    525MB   22.0GB  21.5GB   primary  xfs
 3    22.0GB  26.3GB   4295MB  primary  linux-swap(v1)
      26.3GB  300.0GB  273.7GB           空き容量
(parted)

 ここから、「26.3GBから300.0GBまで」が空き領域であることが分かります。

 続いて、以下のコマンドで、26.3GBから300.0GB目までをxfsファイルシステムとしてパーティションを作成します。なお、DRBDはxfs以外のファイルシステムも指定できます。

(parted) mkpart primary xfs 26.3GB 300GB

 再度ディスクの状態を確認します。

(parted) print free
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sda: 300.0 GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:
番号  開始    終了    サイズ        タイプ     ファイルシステム       フラグ
      32.3kB  1049kB  1016kB            空き容量
 1    1049kB  525MB   524MB   primary  xfs               boot
 2    525MB   22.0GB  21.5GB   primary  xfs
 3    22.0GB  26.3GB   4295MB  primary  linux-swap(v1)
 4    26.3GB  300.0GB  273.7GB primary
(parted)

 「4」が空き領域ではなくなりました。ファイルシステム欄は空白で問題ありません。これを確認できたらquitでpartedコマンドを終了します。

(1-3)「hosts」設定を行う

 「/etc/hosts」ファイルへ、プライマリ機(一号機)とセカンダリ機(二号機)のDRBDのレプリケーション用ホスト名を追記します。

 DRBDの設定ファイルは/etc/hostsに記載されているホスト名でホストを判断しますから、忘れずに設定してください。今回の構成例では、以下のように追記します。

10.0.0.1	drbd-one
10.0.0.2	drbd-two
...(※設定箇所のみ抜粋)

(1-4)selinux設定を無効にする

 DRBDを使用したシステムでは、SELinux(Security-Enhanced Linux)は「無効(disabled)」が推奨となっています(2015年12月現在)。/etc/sysconfig/selinuxの設定をdisabledにします。

SELINUX=disabled
...(※設定箇所のみ抜粋)

 以上でDRBDに関する大枠の準備は完了です。その他のOSに関する設定やネットワーク関連の設定は、自身の環境に環境に合わせて設定してください。

 ここまでの設定を確実に反映させるために一度サーバーを再起動します。

(2)DRBDをインストールする

 では、DRBDをインストールしましょう。

 CentOS 7、CentOS 6のデフォルトリポジトリではDRBDはインストールできませんので、yumリポジトリに「EPEL」を追加してからDRBDをインストールします。

 CentOS 7環境では、以下のコマンドでEPELのリポジトリを追加します(2015年12月現在)

# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

 同じくCentOS 6環境では、以下となります。

# rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm

 今回は原稿執筆時の2015年12月時点の例を示しました。もし共にリポジトリが見つからない場合は、最新のリポジトリのURLを<こちら>のサイトで確認し、文字列を入れ替えてください。

 リポジトリを追加したら、DRBDを以下のコマンドでインストールします。

# yum install -y drbd84-utils kmod-drbd84

 なお、DRBDはオープンソースソフトウエア(OSS)ですから、ソースコードをコンパイルしてインストールすることも可能です。ソースからコンパイルしてインストールする場合は、こちらを参照してください。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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