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

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



DockerのDRBDプラグインをインストールしてみた

docker上で使えるDRBDプラグインがリリースされたとのことで早速インストールしてみた際のメモになります。
以下の手順はdockerのコンテナ上で実施してください。コンテナはUbuntu16.04を使用しています。
またDRBDはデータを複製するために使うので最低2つのコンテナが必要になりますので2つ以上のコンテナで以下の手順を実施してください。

準備

DRBDプラグインをインストールする前にUbuntuで準備をします。

# apt-get update
# apt-get install software-properties-common

リポジトリ追加

次にリポジトリを追加します。

# add-apt-repository ppa:linbit/linbit-drbd9-stack

DRBDプラグインインストール

DRBDプラグインをインストールします。この時にDRBDを操作するツールdrbdmanageとDRBDも同時にインストールします。

# apt update
# apt install -y docker.io docker-compose
# apt install -y drbd-dkms drbd-utils python-drbdmanage drbdmanage-docker-volume

インストール確認

インストールされたことを確認します。

root@test # dpkg -l | grep drbd
ii  drbd-dkms                           9.0.2-1ppa1~xenial1             all          RAID 1 over TCP/IP for Linux module source
ii  drbd-utils                          8.9.6+7-1ppa4~xenial1           amd64        RAID 1 over TCP/IP for Linux (user utilities)
ii  drbdmanage-docker-volume            0.7-1ppa1~xenial1               all          Docker volume plugin for DRBDManage
ii  python-drbdmanage                   0.96.1-1ppa1~xenial1            all          DRBD distributed resource management utility

自動起動設定

インストールしたDRBDプラグインの自動起動を設定します。

# systemctl enable docker-drbdmanage-plugin.socket
# systemctl start docker-drbdmanage-plugin.socket

※自動起動設定はdrbdmanageでコンテナ2つをノードとして登録した後に設定します。

drbdmanageによるノードの追加は以下を参照ください。
ksawada.hatenablog.com

以上、インストールだけの簡単メモでした。

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環境の構築は終了です。