ブログ名はまだ無い(仮)

インフラエンジニアのツイッターには書ききれないつぶやきです



6/27 19:00~ Baculaハンズオンを開催することになりました。

Bacula.jp主催で6月27日の19:00からハンズオンを初めて開催することになりました。

Bacula.jp主催といってもほぼ私ひとりみたいなものですが・・・(笑)
ただいまcommpassで参加受付中です。

connpass.com


以下の流れを想定しています。

19:00~19:30 受付開始・ネットワーキングタイム
         持ち込んでいただくパソコンが会場のwifiに問題
         なくつながるかなどの確認します。
         19:30分までに開始できる状態にできればと考えて
         います。

19:30~20:00 Bacula基礎と最新情報解説
         タイトルの内容を解説します。最新情報は基本的
         にbacula.jpで更新をしていますが解説で捕捉した
         いと思います。

20:00~21:00 Baculaハンズオン
         メインのハンズオンを実施します。

今回初めて実施しますが、今後も定期的に1か月か2か月に1度くらいはハンズオンを実施していきたいと思いますので、是非お時間ありましたらご参加いただけると幸いです。

DRBD9環境をdrbdmanageを使って簡単構築 #2(構築編)

インストールが完了したら、引き続きDRBD9の環境を構築していきます。

前回#1のDRBD9インストール編は以下になります。
http://ksawada.hatenablog.com/entry/2016/06/10/111030


前回と同じ構成ですが、以下の構成を構築します。
f:id:smile_0126:20160610104528p:plain

初期化

drbdctlをインストールするノードで実行します。

# drbdmanage init 192.168.2.191

途中で「Confirm: yes/no:」が表示される所は「yes」を入力してください。

ノード追加

# drbdmanage add-node drbd9-2 192.168.2.192
# drbdmanage add-node drbd9-3 192.168.2.193

途中で「Confirm: yes/no:」が表示される所は「yes」を入力してください。

ノード追加確認

ノードが追加されたことを以下のコマンドで確認します。

# drbdmanage list-nodes
+-------------------------------------------------------+
| Name    | Pool Size | Pool Free |             | State |
|-------------------------------------------------------|
| drbd9-1 |     20476 |     20468 |             |    ok |
| drbd9-2 |     20476 |     20468 |             |    ok |
| drbd9-3 |     20476 |     20468 |             |    ok |
+-------------------------------------------------------+

リソース登録

リソースを登録します。

# drbdmanage add-resource r0
# drbdmanage add-resource r1

リソース登録確認

次にリソースが登録されたことを確認します。

# drbdmanage list-volumes --groupby Size --show Port
+------------------------------------------------------------------------------+
| Name | Vol ID |      Size | Minor | Port |                           | State |
|------------------------------------------------------------------------------|
| r1   |      * |         * |     * | 7001 |                           |     * |
| r0   |      * |         * |     * | 7000 |                           |     * |
+------------------------------------------------------------------------------+

r0とr1の2つのリソースが登録されたことを確認します。さらにポートは7000と7001が自動的に割り当てられました。

ボリューム登録

次にリソースに対してボリュームを登録します。
roとr1にそれぞれ10GBずつで登録します。

# drbdmanage add-volume r0 10GB
# drbdmanage add-volume r1 10GB

ボリューム登録確認

次にリソースに対してボリュームを登録します。
roとr1にそれぞれ10GBずつで登録します。

# drbdmanage list-volumes --groupby Size --show Port
+------------------------------------------------------------------------------+
| Name | Vol ID |      Size | Minor | Port |                           | State |
|------------------------------------------------------------------------------|
| r0   |      0 | 9.313 GiB |   100 | 7000 |                           |    ok |
| r1   |      0 | 9.313 GiB |   101 | 7001 |                           |    ok |
+------------------------------------------------------------------------------+

デプロイとアサイン

ここまでで、リソース登録とリソースに対してボリュームを登録をしました。
これだけでも使えそうですが、実はここまでではまだDRBDを使うための箱を準備したにすぎません。最後にデプロイもしくはアサインをしてDRBDのディスクとして使用可能になります。

デプロイとアサインはボリュームとディスクを紐づけてDRBDのディスクとして使用可能にします。
デプロイは指定した数のサーバ数に対して自動的に割り当てを行います。

アサインはサーバを指定して割り当てをすることができます。

デプロイ

デプロイは以下のコマンドで実施します。

# drbdmanage deploy-resource r0 3
# drbdmanage deploy-resource r1 3

上記で3台のサーバにそれぞれデプロイされます。
以下の様になります。
f:id:smile_0126:20160613154253p:plain

アサイン

アサインは以下のコマンドで実施します。

# drbdmanage assign r0 drbd9-1
# drbdmanage assign r0 drbd9-2
# drbdmanage assign r1 drbd9-2
# drbdmanage assign r1 drbd9-3

以上で本ページの冒頭で示した構成図のようになります。
以下の様になります。
f:id:smile_0126:20160610104528p:plain

以上で準備完了です。

あとはファイルシステムを作成しマウントすればファイルの書き込みが可能です。

ファイルシステム作成

以下のコマンドでファイルシステムを作成します。
CentOS7デフォルトのxfsでファイルシステムを作成します。

# mkfs -t mkfs.xfs /dev/drbd100
# mkfs -t mkfs.xfs /dev/drbd101

マウント

最後にマウントします。
マウントポイントとして/dataと/data2を作成します。

# mkdir /data
# mkdir /data2
# mount /dev/drbd100 /data
# mount /dev/drbd101 /data

状態確認

以下のコマンドでDRBDの状態を確認します。

# drbdsetup status

以上でDRBD環境の構築は終了です。

DRBD9環境をdrbdmanageを使って簡単構築 #1(インストール編)

DRBD9が9.0.2になりdrbdmanageも0.96になったので、改めて構築した際のメモ書きです。
DRBDのバージョンは9.0.2になりましたが新機能などは無くバグ改修などが中心のバージョンアップとのことです。

#1はひとまずDRBD9とdrbdmanageをインストール手順になります。

環境

今回構築した環境の各バージョンは以下になります。

ソフトウェア バージョン
CentOS 7.2
DRBD 9.0.2
drbdmanage   0.96  

構築構成

3台のサーバを構築しそれぞれをDRBD9でリアルタイムに同期します。インストールは3台全てで実施します。
本ページは以下の構成を前提とします。
f:id:smile_0126:20160610104528p:plain
r0とr1はリソースを表しています。DRBD9ではリソースの移動が容易になりました。仮にdrbd9-3のサーバを入れ替えするとなった場合に一時的にリソースをdrbd9-1に移動して、入れ替え後にリソースを戻すといったことが可能となりました。

drbdctlはdrbdmanageで3台のサーバを管理しますがコントロールの役目を持たせるサーバに設定します。

drbdmanageって?

drbdmanageは簡単にいうとDRBD環境を構築するためのツールです。DRBDバージョン8では設定ファイルを用意する必要がありましたがdrbdmanageを使うことによりコマンドで環境を構築することができます。厳密に言えばコマンドを実行することで設定ファイルが自動的に作られます。

事前準備

事前準備として以下を実施します。

  • selinuxをdisabled
  • firewalldを停止(firewalldは環境構築後に正しく設定してください)
  • 各サーバにOSインストール領域とは別にDRBD専用の空のパーティションを作成(今回はこの領域を/dev/sdb1とします)

パッケージ追加

ソースコードをコンパイルするために必要なパッケージとgit、lvmのパッケージを追加します。

# yum groupinstall -y "Development Tools"
# yum install -y libxslt pygobject2 help2man git lvm2

公開鍵作成と交換

公開鍵を作成します。drbdmanageを使う際に自動ログインが必要なために鍵交換をします。
対話式ですが、すでに何も入力せずに「Enterキー」で問題ありません。

# ssh-keygen -t rsa

次に鍵交換をします。
3台各サーバで互いに交換します。

# ssh-copy-id -i .ssh/id_rsa.pub root@<各サーバIPアドレス>

lvm作成

drbdmanageを使用して環境を構築する場合はlvm領域が必須になるためにlvm(タイプ8e)を作成します。DRBD専用に取った領域に対して以下のコマンドを実行します。
/dev/sdb1は例ですので環境に応じて読み替えてください。

# pvcreate /dev/sdb1
# vgcreate drbdpool /dev/sdb1

DRBD9インストール

DRBD9のインストールをします。ソースコードをgitでダウンロードしてコンパイルしてインストールします。

# git clone git://git.drbd.org/drbd-9.0.git
# cd drbd-9.0
# make
# make install

drbd-utilsインストール

drbd-utilsのインストールをします。ソースコードをgitでダウンロードしてコンパイルしてインストールします。

# git clone git://git.drbd.org/drbd-utils.git
# cd drbd-utils
# ./autogen.sh
# ./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc
# make
# make install

drbdmanageインストール

drbdmanageのインストールをします。ソースコードをgitでダウンロードしてコンパイルしてインストールします。

# git clone git://git.drbd.org/drbdmanage.git
# cd drbdmanage
# make
# make install


以上でインストールは完了です。

続きとなる「DRBD9環境をdrbdmanageを使って簡単構築」編は以下に続きます。
DRBD9環境をdrbdmanageを使って簡単構築http://ksawada.hatenablog.com/entry/2016/06/13/154411