Archive for the ‘DRBD’ Category
DRBD9のclient機能を試す
- 2017/09/11
- fumikura
DRBD9の新機能 client機能を試してみました。
client機能は、DRBDストレージを持たないノードに、DRBDリソースをマウントできる機能の様です。
前提
- クライアントノード用にホストmysql01、mysql02を用意する。<\li>
- ホストdrbd01~03が持つdrbd領域用のHDDは搭載しない
- OS等の構成はホストdrbd01~03と同じ。
- DRBDカーネルモジュール、drbd-util、drbdmanageをインストールしてある状態です。
- 前述の方法にてDRBDリソースmysql-slv(容量10GB)を作成してある。
- mysql01、02にはMariaDBをインストールしてあります。
- mysql01のIPアドレス: 192.168.24.226
- mysql02のIPアドレス: 192.168.24.227
クライアントモードでノードを追加する。
drbd01にて
[root@drbd01 ~]# drbdmanage n
+----------------------------------------------------------------------------------------+
| Name | Pool Size | Pool Free | | State |
|----------------------------------------------------------------------------------------|
| drbd01 | 51196 | 32092 | | ok |
| drbd02 | 51196 | 32092 | | ok |
| drbd03 | 51196 | 32092 | | ok |
+----------------------------------------------------------------------------------------+
[root@drbd01 ~]# drbdmanage add-node --satellite --no-storage mysql01 192.168.24.226
Operation completed successfully
Operation completed successfully
Host key verification failed.
Give leader time to contact the new node
Operation completed successfully
Operation completed successfully
Join command for node mysql01:
drbdmanage restart
mysql01でdrbdmanage で再起動コマンドを実行します。
[root@mysql01 ~]# drbdmanage restart
You are going to shut down the drbdmanaged server process on this node.
Please confirm:
yes/no: yes
Attempting to startup the server through D-Bus activation...
D-Bus connection successful, server is running and reachable
drbd01にて、確認してみると、mysql01がclientとして追加されていることがわかります。サテライトノードとは、DRBDのコントロール用のリソース.drbdctrlを持たないノードの事です。
以前のリリースでは、add-nodeサブコマンド実施時に–contorole-nodeオプションにて属するコントロールノードを指定する必要があったようですが、今のリリースでは–contorole-nodeオプションは無くなり、指定する必要がなくなったようです。
ちなみに、–satelliteオプションを利用せずにクライアントノードを追加しようとすると、各ノードでの追加用コマンドを実施した際、.drbdctrlリソース用の領域を作成しようとするので、今回のようにDRBD用の領域を持たないクライアントでは、追加に失敗します。
[root@drbd01 ~]# drbdmanage n
+----------------------------------------------------------------------------------------+
| Name | Pool Size | Pool Free | | State |
|----------------------------------------------------------------------------------------|
| drbd01 | 51196 | 32092 | | ok |
| drbd02 | 51196 | 32092 | | ok |
| drbd03 | 51196 | 32092 | | ok |
| mysql01 | 0 | 0 | | satellite node, no storage |
+----------------------------------------------------------------------------------------+
クライアントノードへリソースを割り当てる
mysql01へDRBDリソースmysql-priを割当ます。
assignサブコマンドに–clientオプションを付けて実行します。
[root@drbd01 ~]# drbdmanage assign mysql-pri mysql01 --client
Operation completed successfully
[root@drbd01 ~]# drbdmanage list-assignments
+----------------------------------------------------------------------------------------+
| Node | Resource | Vol ID | | State |
|----------------------------------------------------------------------------------------|
| drbd01 | mysql-pri | * | | ok |
| drbd01 | mysql-slv | * | | ok |
| drbd02 | mysql-pri | * | | ok |
| drbd02 | mysql-slv | * | | ok |
| drbd03 | mysql-pri | * | | ok |
| drbd03 | mysql-slv | * | | ok |
| mysql01 | mysql-pri | * | | client |
+----------------------------------------------------------------------------------------+
クライアントノードでリソースへファイルシステムを作成する
mysql01上で、リソースmysql-priにファイルシステムを作成します。
リソースの割当まで行うと、mysql01上から、mysql-priのブロックデバイスが参照できます。
list-volumesサブコマンドでブロックデバイスのマイナー番号を確認し、ファイルシステムを作成します。
[root@mysql01 ~]# drbdmanage list-volumes
+----------------------------------------------------------------------------------------+
| Name | Vol ID | Size | Minor | | State |
|----------------------------------------------------------------------------------------|
| mysql-pri | 0 | 9.31 GiB | 100 | | ok |
| mysql-slv | 0 | 9.31 GiB | 101 | | ok |
+----------------------------------------------------------------------------------------+
[root@mysql01 ~]# mkfs.xfs /dev/drbd100
meta-data=/dev/drbd100 isize=512 agcount=4, agsize=610352 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2441406, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
マウントしてMariaDBを起動する。
後は、マウントしMariaDBを起動します。
が、/var/lib/mysqlにマウントした場合、ディレクトリのオーナーがmysqlからrootに変わってしまうので、注意してください。
[root@mysql01 ~]# ls -al /var/lib|grep mysql
drwxr-xr-x. 2 mysql mysql 6 9月 5 15:55 mysql
[root@mysql01 ~]# mount /dev/drbd100 /var/lib/mysql
[root@mysql01 ~]# ls -al /var/lib|grep mysql
drwxr-xr-x. 2 root root 6 9月 11 09:57 mysql
[root@mysql01 ~]# chown mysql:mysql /var/lib/mysql
[root@mysql01 ~]# systemctl start mariadb
[root@mysql01 ~]# systemctl status mariadb
● mariadb.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: active (running) since 月 2017-09-11 10:06:19 JST; 2min 56s ago
Process: 28092 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
Process: 28013 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
Main PID: 28091 (mysqld_safe)
CGroup: /system.slice/mariadb.service
tq28091 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
mq28249 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin...
9月 11 10:06:13 mysql01 mariadb-prepare-db-dir[28013]: The latest information about ....
9月 11 10:06:13 mysql01 mariadb-prepare-db-dir[28013]: You can find additional infor...:
9月 11 10:06:13 mysql01 mariadb-prepare-db-dir[28013]: http://dev.mysql.com
9月 11 10:06:13 mysql01 mariadb-prepare-db-dir[28013]: Support MariaDB development b...B
9月 11 10:06:13 mysql01 mariadb-prepare-db-dir[28013]: Corporation Ab. You can conta....
9月 11 10:06:13 mysql01 mariadb-prepare-db-dir[28013]: Alternatively consider joinin...:
9月 11 10:06:13 mysql01 mariadb-prepare-db-dir[28013]: http://mariadb.com/kb/en/cont.../
9月 11 10:06:13 mysql01 mysqld_safe[28091]: 170911 10:06:13 mysqld_safe Logging to ...'.
9月 11 10:06:13 mysql01 mysqld_safe[28091]: 170911 10:06:13 mysqld_safe Starting my...ql
9月 11 10:06:19 mysql01 systemd[1]: Started MariaDB database server.
Hint: Some lines were ellipsized, use -l to show in full.
[root@mysql01 ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] Y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] Y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
MariaDBの起動ができました。これでクライアントノードの追加は以上です。
後は、同様にmysql02のノード追加、mysql-slvのリソース追加を行います。
以上
【DRBD9】rpmパッケージをビルドしてインストールする
- 2017/08/30
- fumikura
今更ながらですが、DRBD9をインストールしてみました。他のサイトを参考にしていると、ソースからのmake、make installでしかインストールしていなかったので、rpmパッケージをビルドしてからインストールする方法を試してみました。
環境
- OS: CentOS 7(パッケージグループ Base、Development Tools をインストール)
- KVM上の仮想マシン(HDDは8GBと50GBの2台を搭載した状態)
- drbd01~drbd03の3台でクラスタを構成
- drbd01のIPアドレス: 192.168.24.223
- drbd02のIPアドレス: 192.168.24.224
- drbd03のIPアドレス: 192.168.24.225
rpmパッケージの作成
準備:rpmbuild環境構築
rpmbuildの環境を構築するツールがあるので、コマンド一つでrpmbuild環境が構築できます。
[root@drbd01 ~]# yum install -y rpmdevtools
ユーザに戻り、rpmdev-setuptreeコマンドを叩きます。
rpmbuildディレクトリから.rpmmacrosまで作成してくれます。
[fumikura@drbd01 ~]$ rpmdev-setuptree
[fumikura@drbd01 ~]$ tree -a
~~~
.
|-- .rpmmacros
`-- rpmbuild
|-- BUILD
|-- RPMS
|-- SOURCES
|-- SPECS
`-- SRPMS
~~~
7 directories, 7 files
必要パッケージのインストール
DRBD9のインストールに必要なパッケージをインストールします。
[fumikura@drbd01 ~]$ sudo yum install -y libxslt libxslt-devel pygobject2 help2man kernel-abi-whitelists
ソースのダウンロード
今回は、gitリポジトリがあるものはgitから入手しました。
ソース置場用のディレクトリを作って移動します。
[fumikura@drbd01 ~]$ mkdir Archives
[fumikura@drbd01 ~]$ cd Archives
– drbd kernel module
[fumikura@drbd01 Archive]$ git clone --recursive git://git.drbd.org/drbd-9.0.git
– drbd-utils
[fumikura@drbd01 Archives]$ git clone --recursive git://git.linbit.com/drbd-utils.git
– drbdmanage
[fumikura@drbd01 Archive]$ git clone --recursive git://git.drbd.org/drbdmanage.git
drbd kernel moduleのrpmパッケージ作成
今回は、公式サイトにてリリースされている最新リリースのdrbd-9.0.8に合わせてビルドしようと思います。
[fumikura@drbd01 Archive]$ cd drbd-9.0
[fumikura@drbd01 drbd-9.0]$ git checkout drbd-9.0.8
[fumikura@drbd01 drbd-9.0]$ make .filelist
[fumikura@drbd01 drbd-9.0]$ make kmp-rpm
drbd-utilsのrpmパッケージ作成
(2017.09.04,Mon 追記)
下記のまま、rpm作成を行うと、rpmのインストール時に競合が起こります。drbd.spec.inを以下のように修正してから実施してください。
--- ../drbd-utils.orig/drbd.spec.in 2017-09-01 15:01:35.721074085 +0900
+++ ./drbd.spec.in 2017-09-04 10:48:54.719119053 +0900
@@ -31,6 +31,7 @@
# conditionals may not contain "-" nor "_", hence "bashcompletion"
%bcond_without bashcompletion
%bcond_without sbinsymlinks
+%undefine with_sbinsymlinks
# --with xen is ignored on any non-x86 architecture
%bcond_without xen
%bcond_without 83support
[fumikura@drbd01 Archives]$ cd drbd-utils
[fumikura@drbd01 drbd-utils]$ git checkout v9.0.0
[fumikura@drbd01 drbd-utils]$ ./autogen.sh
[fumikura@drbd01 drbd-utils]$ ./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc
[fumikura@drbd01 drbd-utils]$ make .filelist
[fumikura@drbd01 drbd-utils]$ make rpm
drbdmanageのrpmパッケージ作成
drbdmanageはソース直下のディレクトリ、distの中にrpmパッケージが生成されます。
[fumikura@drbd01 Archive]$ cd drbdmanage/
[fumikura@drbd01 drbdmanage]$ make rpm
[fumikura@drbd01 drbdmanage]$ cd dist/
[fumikura@drbd01 dist]$ ls -al
合計 1080
drwxrwxr-x. 2 fumikura fumikura 111 8月 8 17:08 .
drwxrwxr-x. 11 fumikura fumikura 4096 8月 8 17:08 ..
-rw-rw-r--. 1 fumikura fumikura 507844 8月 8 17:08 drbdmanage-0.99.5-1.noarch.rpm
-rw-rw-r--. 1 fumikura fumikura 298012 8月 8 17:08 drbdmanage-0.99.5-1.src.rpm
-rw-rw-r--. 1 fumikura fumikura 294884 8月 8 17:08 drbdmanage-0.99.5.tar.gz
rpmパッケージのインストール
先程作成されたパッケージは、~/rpmbuild/RPMS/x86_64の中に10個、~/hoge/drbdmanage/distの中に1個の計11個のrpmパッケージが生成されています。
このうち、debuginfoとついているパッケージはインストールしなくても大丈夫です。
/home/fumikura/rpmbuild/RPMS/x86_64/kmod-drbd-9.0.8_3.10.0_514.26.2-1.el7.centos.x86_64.rpm
/home/fumikura/rpmbuild/RPMS/x86_64/drbd-kernel-debuginfo-9.0.8-1.el7.centos.x86_64.rpm
/home/fumikura/rpmbuild/RPMS/x86_64/drbd-9.0.0-1.el7.centos.x86_64.rpm
/home/fumikura/rpmbuild/RPMS/x86_64/drbd-utils-9.0.0-1.el7.centos.x86_64.rpm
/home/fumikura/rpmbuild/RPMS/x86_64/drbd-xen-9.0.0-1.el7.centos.x86_64.rpm
/home/fumikura/rpmbuild/RPMS/x86_64/drbd-udev-9.0.0-1.el7.centos.x86_64.rpm
/home/fumikura/rpmbuild/RPMS/x86_64/drbd-pacemaker-9.0.0-1.el7.centos.x86_64.rpm
/home/fumikura/rpmbuild/RPMS/x86_64/drbd-heartbeat-9.0.0-1.el7.centos.x86_64.rpm
/home/fumikura/rpmbuild/RPMS/x86_64/drbd-bash-completion-9.0.0-1.el7.centos.x86_64.rpm
/home/fumikura/rpmbuild/RPMS/x86_64/drbd-debuginfo-9.0.0-1.el7.centos.x86_64.rpm
/home/fumikura/Archive/drbdmanage/dist/drbdmanage-0.99.5-1.noarch.rpm
drbd kernel moduleのインストール
[fumikura@drbd01 x86_64]$ sudo rpm -ivh kmod-drbd-9.0.8_3.10.0_514.26.2-1.el7.centos.x86_64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:kmod-drbd-9.0.8_3.10.0_514.26.2-1################################# [100%]
drbd-utilsのインストール
drbd-utils-9.0.0-1.el7.centos.x86_64.rpmはパッケージ自身と競合をおこして普通にインストールはできない為、–forceオプションでインストールします。(2017.09.04,Mon 修正)
[fumikura@drbd03 x86_64]$ sudo rpm -ivh drbd-utils-9.0.0-1.el7.centos.x86_64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:drbd-utils-9.0.0-1.el7.centos ################################# [100%]
その他のパッケージについては、drbd-9.0.0-1.el7.centos.x86_64.rpm が他のパッケージに依存しているので、先に、xen、udev、pacemaker、heartbeat、bash-completionをインストール後にインストールしてください。
[fumikura@drbd01 x86_64]$ sudo rpm -ivh drbd-xen-9.0.0-1.el7.centos.x86_64.rpm \
> drbd-udev-9.0.0-1.el7.centos.x86_64.rpm \
> drbd-pacemaker-9.0.0-1.el7.centos.x86_64.rpm \
> drbd-heartbeat-9.0.0-1.el7.centos.x86_64.rpm \
> drbd-bash-completion-9.0.0-1.el7.centos.x86_64.rpm \
> drbd-9.0.0-1.el7.centos.x86_64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:drbd-bash-completion-9.0.0-1.el7.################################# [ 17%]
2:drbd-pacemaker-9.0.0-1.el7.centos################################# [ 33%]
3:drbd-udev-9.0.0-1.el7.centos ################################# [ 50%]
4:drbd-xen-9.0.0-1.el7.centos ################################# [ 67%]
5:drbd-9.0.0-1.el7.centos ################################# [ 83%]
6:drbd-heartbeat-9.0.0-1.el7.centos################################# [100%]
drbdmanageのインストール
[fumikura@drbd01 dist]$ sudo rpm -ivh drbdmanage-0.99.9-1.noarch.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:drbdmanage-0.99.9-1 ################################# [100%]
インストールは以上です。drbd01~drbd03すべてのノードでインストール作業を実施します。
次に、簡単にDRBDクラスタの構成を行ってみます。
DRBDクラスタの構成
DRBD用領域の作成
drbd01~drbd03のすべてのノードで実施します。
パーティションの作成
[root@drbd01 ~]# 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.
コマンド (m でヘルプ): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
パーティション番号 (1-4, default 1): 1
最初 sector (2048-104857599, 初期値 2048):
初期値 2048 を使います
Last sector, +sectors or +size{K,M,G} (2048-104857599, 初期値 104857599):
初期値 104857599 を使います
Partition 1 of type Linux and of size 50 GiB is set
コマンド (m でヘルプ): w
パーティションテーブルは変更されました!
ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。
物理ボリューム(PV)の作成
[root@drbd01 ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
ボリュームグループ(VG)の作成
[root@drbd01 ~]# vgcreate drbdpool /dev/sdb1
Volume group "drbdpool" successfully created
ここで指定する”drbdpool”はdrbdmanageで使用されるデフォルト名ですので、変更せずに作成します。
drbdmanageでのノードの追加
準備: firewalldの設定
drbdmanageがノード間の通信に利用するポートを開けます。ノード間の制御には6996、6999を利用しています。
リソースの同期には、7000~7800を利用しています。まとめて、6996~7800を開けています。
[root@drbd01 ~]# firewall-cmd --add-port=6996-7800/tcp --zone=public --permanent
success
[root@drbd01 ~]# firewall-cmd --reload
success
[root@drbd01 ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports: 6996-7800/tcp
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:
クラスタの初期化
drbd01のみで実行します。
[root@drbd01 ~]# drbdmanage init 192.168.24.223
You are going to initialize a new drbdmanage cluster.
CAUTION! Note that:
* Any previous drbdmanage cluster information may be removed
* Any remaining resources managed by a previous drbdmanage installation
that still exist on this system will no longer be managed by drbdmanage
Confirm:
yes/no: yes
Empty drbdmanage control volume initialized on '/dev/drbd0'.
Empty drbdmanage control volume initialized on '/dev/drbd1'.
Waiting for server: .
Operation completed successfully
ノードの追加
drbd02を追加する
※まずdrbd01でコマンドを実行。各ノードで実行するコマンドを発行します。
[root@drbd01 ~]# drbdmanage add-node drbd02 192.168.24.224
Operation completed successfully
Operation completed successfully
Host key verification failed.
Give leader time to contact the new node
Operation completed successfully
Operation completed successfully
Join command for node drbd02:
drbdmanage join -p 6999 192.168.24.224 1 drbd01 192.168.24.223 0 xxxxSecretKeyxxxx
上記の”drbdmanage join …..”をdrbd02で実行します。
[root@drbd02 ~]# drbdmanage join -p 6999 192.168.24.224 1 drbd01 192.168.24.223 0 xxxxSecretKeyxxxx
You are going to join an existing drbdmanage cluster.
CAUTION! Note that:
* Any previous drbdmanage cluster information may be removed
* Any remaining resources managed by a previous drbdmanage installation
that still exist on this system will no longer be managed by drbdmanage
Confirm:
yes/no: yes
Waiting for server to start up (can take up to 1 min)
Operation completed successfully
drbd03についても同様に実施します。
・drbd01側
[root@drbd01 ~]# drbdmanage add-node drbd03 192.168.24.225
Operation completed successfully
Operation completed successfully
Host key verification failed.
Give leader time to contact the new node
Operation completed successfully
Operation completed successfully
Join command for node drbd03:
drbdmanage join -p 6999 192.168.24.225 2 drbd01 192.168.24.223 0 xxxxSecretKeyxxxx
・drbd03側
[root@drbd03 ~]# drbdmanage join -p 6999 192.168.24.225 2 drbd01 192.168.24.223 0 xxxxSecretKeyxxxx
You are going to join an existing drbdmanage cluster.
CAUTION! Note that:
* Any previous drbdmanage cluster information may be removed
* Any remaining resources managed by a previous drbdmanage installation
that still exist on this system will no longer be managed by drbdmanage
Confirm:
yes/no: yes
Waiting for server to start up (can take up to 1 min)
Operation completed successfully
クラスタの状態確認
[root@drbd01 ~]# drbdmanage list-nodes
+----------------------------------------------------------------------------------------+
| Name | Pool Size | Pool Free | | State |
|----------------------------------------------------------------------------------------|
| drbd01 | 51196 | 51188 | | ok |
| drbd02 | 51196 | 51188 | | ok |
| drbd03 | 51196 | 51188 | | ok |
+----------------------------------------------------------------------------------------+
[root@drbd01 ~]# drbdadm status
.drbdctrl role:Primary
volume:0 disk:UpToDate
volume:1 disk:UpToDate
drbd02 role:Secondary
volume:0 peer-disk:UpToDate
volume:1 peer-disk:UpToDate
drbd03 role:Secondary
volume:0 peer-disk:UpToDate
volume:1 peer-disk:UpToDate
※”drbdmanage list-nodes”は”drbdmanage n”と省略できます。
リソースの追加
リソースを作成する
[root@drbd01 ~]# drbdmanage add-resource mysql-pri
リソース名を”mysql-pri”としたのは、後でMySQLのクラスタに利用するつもりです…
リソースのボリュームを設定する
[root@drbd01 ~]# drbdmanage add-volume mysql-pri 10GB
Operation completed successfully
リソースをデプロイするクラスタ数を設定する
[root@drbd01 ~]# drbdmanage deploy-resource mysql-pri 3
Operation completed successfully
※リソースの割り当てを個別にノードへデプロイするには、”drbdmanage assign-resource”コマンドを使用します。
[root@drbd01 ~]# drbdmanage assign-resource mysql-pri drbd03
Operation completed successfully
リソース追加直後の状態
[root@drbd01 ~]# drbdadm status
.drbdctrl role:Primary
volume:0 disk:UpToDate
volume:1 disk:UpToDate
drbd02 role:Secondary
volume:0 peer-disk:UpToDate
volume:1 peer-disk:UpToDate
drbd03 role:Secondary
volume:0 peer-disk:UpToDate
volume:1 peer-disk:UpToDate
mysql-pri role:Secondary
disk:UpToDate
drbd02 role:Secondary
replication:SyncSource peer-disk:Inconsistent done:57.30
drbd03 role:Secondary
replication:SyncSource peer-disk:Inconsistent done:50.46
“Inconsistent”は不整合の状態です。”done”の後の数字は同期状態の進行具合を表示してます。
同期が終わると、このような表示になります。
[root@drbd01 ~]# drbdadm status
.drbdctrl role:Primary
volume:0 disk:UpToDate
volume:1 disk:UpToDate
drbd02 role:Secondary
volume:0 peer-disk:UpToDate
volume:1 peer-disk:UpToDate
drbd03 role:Secondary
volume:0 peer-disk:UpToDate
volume:1 peer-disk:UpToDate
mysql-pri role:Secondary
disk:UpToDate
drbd02 role:Secondary
peer-disk:UpToDate
drbd03 role:Secondary
peer-disk:UpToDate
リソース”mysql-pri”のroleがどのノードでも”Secondary”になっているのは、DRBD9からは、リソースをマウントしたノードが自動的にPrimaryとなる仕様となっているからだとか。
今回は、ここまで。次回はDRBDの新機能、クライアント機能を利用して、MySQLサーバからリソースmysql-priをマウントしてみようと思います。
以上