4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DRBD, pacemaker + corosyncでクラスタ設定

Last updated at Posted at 2019-06-16

自力でクラスタ化するときの設定。
DRBDで1,2号機のストレージの共有、pacemaker + corosyncでフェイルオーバー制御等をする。
手順はCentOS7で検証。

DRBD設定

### DRBDインストールと設定(両ノードで実施する)
## パーティション作成
fdisk /dev/vdc
## elrepoリポジトリ追加
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
## DRBDインストール
yum --enablerepo=elrepo install drbd84-utils-8.9.8-1.el7.elrepo.x86_64
## kmod-drbdインストール
rpm -Uvh http://ftp.kddilabs.jp/Linux/RPMS/elrepo/elrepo/el7/x86_64/RPMS/kmod-drbd84-8.4.9-1.el7.elrepo.x86_64.rpm
kmod-drbd84-8.4.10-1_2.el7_4.elrepo.x86_64.rpm
※カーネルバージョンが古くエラーになる場合はカーネルアップデートを行う
## OS再起動
## ホスト名変更
vi /etc/hostname
※DRBD設定のホスト名と一致させる
## cloud-init設定変更
vi /etc/cloud/cloud.cfg
---
# - update_hostname
# - update_etc_hosts
---
## カーネルモジュールロード
modprobe drbd
## カーネルモジュール確認
lsmod | grep drbd
## DRBD設定
vi /etc/drbd.d/drbd0.res
---
resource drbd0 {
protocol C;
handlers {
fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
after-resync-target "/usr/lib/drbd/crm-unfence-peer.sh";
}
syncer {
use-rle;
rate 50M;
verify-alg sha1;
}
disk {
on-io-error detach;
fencing resource-and-stonith;
}
on 1号機インスタンス名 {
device /dev/drbd0;
disk /dev/vdc;
address 1号機インターコネクト用IP:7789;
meta-disk internal;
}
on 2号機インスタンス名 {
device /dev/drbd0;
disk /dev/vdc;
address 2号機インターコネクト用IP:7789;
meta-disk internal;
}
}
---
## meta-diskデバイスをゼロ設定
dd if=/dev/zero bs=1M count=1 of=/dev/vdc; sync
## メタファイル作成
drbdadm create-md drbd0
## 自動起動設定確認
systemctl is-enabled drbd
※無効であること
## DRBD起動
systemctl start drbd
## 1号機をプライマリ昇格
drbdadm -- --overwrite-data-of-peer primary drbd0
## 同期確認
cat /proc/drbd
※どちらかのノードで実行し以下の状態となることを確認する
 cs:Connected
 ro:Primary/Secondary(1号機から見た場合)
 ds:UpToDate/UpToDate
  
### DRBDボリュームマウント(1号機)
## データディレクトリ作成
mkdir -p /data/test
## ファイルシステム作成
mkfs.ext4 /dev/drbd0
## マウント
mount -t ext4 /dev/drbd0 /data/test/
## マウント確認
df -Th
## アンマウント
umount /data/test/
  
### DRBDボリュームマウント(2号機)
## データディレクトリ作成
mkdir -p /data/test
## 1号機をセカンダリに変更(1号機)
drbdadm secondary drbd0
## 2号機をプライマリに変更(2号機)
drbdadm primary drbd0
## マウント(2号機)
mount -t ext4 /dev/drbd0 /data/test/
## マウント確認
df -Th
## 同期確認
cat /proc/drbd
## アンマウント
umount /data/test
## 2号機をセカンダリに変更(2号機)
drbdadm secondary drbe0
## 1号機をプライマリに変更(1号機)
drbdadm primary drbd0
## 同期確認
cat /proc/drbd

Pacemker+Corosyncインストールと設定

### Pacemaker+Corosync設定(両ノードで実施)
## インストール
yum install corosync pacemaker pcs
## /etc/hosts設定
vi /etc/hosts
---
1号機IP 1号機インスタンス名
2号機IP 2号機インスタンス名
---
## haclusterユーザのパスワード設定
※両ノードで同じパスワードに設定する
passwd hacluster
## pcsd起動
systemctl start pcsd
## pcsd自動起動有効化
systemctl enable pcsd
## 確認
systemctl is-enabled pcsd
## Pacemaker自動起動有効化
systemctl enable pacemaker
## 確認
systemctl is-enbled pacemaker
## クラスタ間ノード認証(片系のみ)
pcs cluster auth 1号機インスタンス名 2号機インスタンス名 -u hacluster -p パスワード --force
## 初期クラスタ作成(片系のみ)
pcs cluster setup --name ldapcluster 1号機インスタンス名 2号機インスタンス名
## クラスタ起動
pcs cluster start --all
## STONITH無効化
pcs property set stonith-enabled=false
## スプリットブレイン発生時にクォーラムが特別な動作を行わないように設定
pcs property set no-quorum-policy=ignore
## クラスタ状態確認
※両ノードOnlineでリソースが登録されていないことを確認する
pcs status
## 自動フェイルバック停止
pcs resource defaults resource-stickiness="INFINITY" migration-threshold="1"
  
### リソース登録
## VIPリソース
pcs resource create VIP ocf:heartbeat:IPaddr2 ip=vip cidr_netmask=24  op monitor interval=10s
## リソース確認
pcs status
## IP確認
ip a
## DRBDリソース
pcs resource create DRBD ocf:linbit:drbd params drbd_resource=drbd0 op monitor interval=10s
## マスター/スレーブリソースに設定
pcs resource master ms_drbd0 DRBD master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
## DRBDボリュームマウントリソース登録
pcs resource create FS_DRBD Filesystem device=/dev/drbd0 directory=/data/test fstype=ext4
## DRBDボリューム依存関係設定(DRBDがマスターのノードで起動)
pcs constraint colocation add FS_DRBD ms_drbd0 INFINITY with-rsc-role=Master
## リソース起動順設定(DRBDマスター昇格後にリソースグループ起動)
pcs constraint order promote ms_drbd0 then start FS_DRBD
## リソースグループ作成(VIP→DRBDの順に起動)
pcs resource group add DRBD_Group VIP FS_DRBD
## DRBDステータスクリア
pcs resource cleanup ms_drbd0
## リソース確認
pcs status
4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?