VurtualBoxでDRBDを構築検証! - 検証環境構築編
インフラをやっていると、サーバーの冗長化を行う事が多々ありますよね?
イメージサーバーやDBサーバーの冗長化を行う際に、
データの同期方法で悩みまして、DRDBなるものがある事を知りました!
今回は、概要把握と簡単なセットアップをvirtualboxに仮想サーバーを2つ作成し、
それぞれに同じ環境のcentosをインストールして検証を開始したいと思います。
参考にしたサイト
インフラ構築手順書 HeartBeat2+DRBD構築 【DRBD構築手順】
Heartbeat v3 + Pacemaker 再び - とあるサーバ管理者 & PG & SEのメモ帳
fdiskの操作方法
DRBDとは?
DRBD (Distributed Replicated Block Device) は、Linuxプラットフォームの分散ストレージシステムである。
カーネルモジュール、管理アプリケーション、シェルスクリプトで構成され、高可用 (HA) クラスタで使うのが一般的である。 DRBD は RAID 1 に似ているが、ネットワーク上で動作する点が異なる。
んー。。よく分からないw
ミラーリングツール「DRBD」によるデータ保護って記事がありましたので、こっちを確認するといいかもしれません!
Heartbeatでかんたんクラスタリング(4):ミラーリングツール「DRBD」によるデータ保護 (1/3) - @IT
仮想マシンを2つ用意する。
VirturlBoxに検証用マシンを2台用意します。
環境は以下の通りです。
- drdb01 -- 名前:drdb01 -- タイプ:Linux -- バージョン:Redhat(64bit) -- メモリ:1024MB -- 仮想ハードドライブを作成する。 -- VDI(可変サイズ/30GB) - drdb02 -- 名前:drdb02 -- タイプ:Linux -- バージョン:Redhat(64bit) -- メモリ:1024MB -- 仮想ハードドライブを作成する。 -- VDI(可変サイズ/30GB)
作成が完了したら、次はCentOSをインストールします。
今回は、CentOS 64bitのDVDでインストールします。
http://ftp.riken.jp/Linux/centos/6.5/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso
[設定] → [ストレージ] → [CDマーク] → [仮想ドライブを選択]の順でクリックしていき、
ダウンロードしたDVDファイルを選択しましょう!
その後起動すると、自動的にインストール画面が表示されるはずです。
次に、インストールですが、以下のように設定しました。
基本的には、かなり前に最小構成でインストールしたのと
ほとんど変わりません。
ですが、パーティションの設定部分が若干違うので、そこについて記載しておきたいと思います。
# drdb01 ・ホスト名:drdb01.jp ・カスタムレイアウトを使用する。 ・/boot:ext4:200:固定容量:基本パーティションにする ・:swap:2048:固定容量:基本パーティションにする ・/drdb:ext4:10000:固定容量:基本パーティションにする ・/:ext4:200:最大許容量まで使用:基本パーティションにする # drdb01 ・ホスト名:drdb02.jp ・カスタムレイアウトを使用する。 ・/boot:ext4:200:固定容量:基本パーティションにする ・:swap:2048:固定容量:基本パーティションにする ・:ext4:10000:固定容量:基本パーティションにする ・/:ext4:200:最大許容量まで使用:基本パーティションにする
ネットワークの設定
ネットワークの設定をしておきたいと思います。
以前も設定内容を記載したことがあるので、今回は、コマンドと修正内容のみとします。
基本的には、2台とも同じ設定を行いますが、
DRBD01「IPADDR=192.168.33.17」でDRBD02「IPADDR=192.168.33.18」としました!
[root@drdb01] vi /etc/resolv.conf options single-request-reopen nameserver 10.0.2.3 nameserver 8.8.8.8 [root@drdb01] vi /etc/networks default 0.0.0.0 loopback 127.0.0.0 link-local 169.254.0.0 [root@drdb01] vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=drdb01.jp [root@drdb01] vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" BOOTPROTO="dhcp" IPV6INIT="yes" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet" UUID="56f45b3e-1d42-4cf8-a78e-4a041835f3a1" [root@drdb01] vi /etc/sysconfig/network-scripts/ifcfg-eth1 NM_CONTROLLED=no BOOTPROTO=none ONBOOT=yes IPADDR=192.168.33.17 NETMASK=255.255.255.0 DEVICE=eth1 PEERDNS=no [root@drdb01] vi /etc/sysconfig/network-scripts/ifcfg-lo DEVICE=lo IPADDR=127.0.0.1 NETMASK=255.0.0.0 NETWORK=127.0.0.0 BROADCAST=127.255.255.255 ONBOOT=yes NAME=loopback [root@drdb01] getenforce [root@drdb01] setenforce 0 [root@drdb01] vi /etc/sysconfig/selinux SELINUX=disabled [root@drdb01] service iptables stop [root@drdb01] chkconfig iptables off [root@drdb01] /etc/init.d/network restart [root@drdb01] yum update
それでは、疎通確認をしておきたいと思います!
[root@drdb01] ssh 192.168.33.18 root@192.168.33.18 password: [root@drdb02]
ゲスト間でも疎通が出来ている事を確認しました!
やっと環境が用意できたので、DEDBの検証に入っていこうと思います。
作るのも結構めんどいので、スナップショットを忘れずに!w
DRBDをインストールする
さて、環境構築が完了したので、DRBDをインストールしていきたいと思います。
DRBDは標準パッケージではインストールできない為、「elrepo」レポジトリを入れてから行います。
以下の処理は2台のマシンとも行います。
[root@drdb01 ~]# rpm -Uvh http://elrepo.org/linux/elrepo/el6/x86_64/RPMS/elrepo-release-6-5.el6.elrepo.noarch.rpm [root@drdb01 ~]# vi /etc/yum.repos.d/elrepo.repo vi 8)enabled=0 [root@drdb01 ~]# yum --enablerepo=elrepo install drbd84-utils.x86_64 [root@drdb01 ~]# yum --enablerepo=elrepo install kmod-drbd84
インストールは以上で完了となります。
DRBDの設定を行う。
インストールが完了したので、設定を行います。
[root@drdb01 ~]# cp -apr /etc/drbd.conf /etc/drbd.conf.org [root@drdb01 ~]# vi /etc/drbd.conf # You can find an example in /usr/share/doc/drbd.../drbd.conf.example #include "drbd.d/global_common.conf"; #include "drbd.d/*.res"; global { usage-count no; } common { syncer { rate 200M; } } resource db { protocol C; startup { wfc-timeout 120; degr-wfc-timeout 120; } net { cram-hmac-alg "sha1"; shared-secret "password"; after-sb-0pri disconnect; after-sb-1pri disconnect; after-sb-2pri disconnect; } disk { on-io-error pass_on; } on drdb01.jp { # uname -n device /dev/drbd0; disk /dev/sda2; address 192.168.33.17:7788; meta-disk internal; } on drdb02.jp { # uname -n device /dev/drbd0; disk /dev/sda2; address 192.168.33.18:7788; meta-disk internal; } }
次は、DRBDのメタファイルを作成するというところなんですが、
ちょっと検証までの道のりが長くなってきてしまうので、
急遽2回に分けて書いていこうと思います。
使用環境
- ホストOS: Windows7 x64
- Cygwin : Cygwin64
- VirtualBox: 4.3.10