機能
 構成・方式
 動作
 タスク
 導入 
 クラスタ化
    DRBD対象
    バックアップ
    Postfix
    pacemakerPKG
    DRBD
    導入
    デフォルト設定
    登録リソース条件
    DRBDのRA
    order制約
    エラークリア
    PrimitiveなRA
    場所制約
    確認

 DRBD対象のディレクトリなどの確認
 ・Postfix
/var/spool/mail
/var/spool/postfix
 ・Dovecot
 ・Mailman
/var/spool/mail/mailman
/var/spool/mailman
/var/lib/mailman
/etc/mailman
/usr/lib/mailman

 バックアップ
 ・DRBDのプライマリ側に再インストールするディレクトリなどはバックアップする。
データ
設定ファイル

 Postfix など
 ・両系にデフォルトでインストール済みを使用  確認 
 ・自動起動は停止
 ・各系確認
$ ps -aux | grep postfix
 ・Dovecotを使うときはインストール済を使用
 ・Mailmanを使うときはインストール済も使用
/usr/lib/mailman/bin/mailmanctl を使用する。
プライマリ側でも再インストール
リソースエージェントがない場合は作成 (参考
メーリングリストの管理などは、NFSなどを用いて処理 (参考

 pacemakerパッケージ
 ・両系にPacemakerCorosyncが正常にインストールされている。
 ・確認
# crm_mon -rfA

 DRBD
 ・lvm 追加
設定などが済んで、稼働確認も取れた状態で、必要なlvmを追加する場合
pcs、pacemaker、corosyncは、disable、reboot後に実施、作業終了後戻す。
追加したlvmは、クラスタ化する前と同じフォルダ構成にする。
 ・両系にDRBDが正常にインストールされている。
 ・OSの設定
 ・DRBDで利用するパーティションなど (仮想マシンを使用、含むLVM
# lsblk -p (両ノード、Postfix例、MOUNTPOINTが表示されるのはPrimary側      NAME                 MAJ:MIN RM SIZE RO TYPE MOUNTPOINT      /dev/sr0                  11:0 1 1024M 0 rom      /dev/vda                 252:0 0 300G 0 disk       /dev/vda1                252:1 0 1G 0 part /boot       /dev/vda2                252:2 0 237.6G 0 part        /dev/mapper/centos-root     253:0 0 50G 0 lvm /        /dev/mapper/centos-swap    253:1 0 7.6G 0 lvm [SWAP]        /dev/mapper/centos-home    253:2 0 40G 0 lvm /home        /dev/mapper/centos-var     253:3 0 50G 0 lvm /var        /dev/mapper/centos-mail     253:4 0 5G 0 lvm (パーテション、LVM)         /dev/drbd0             147:0 0 5G 0 disk /var/spool/mail        /dev/mapper/centos-postfix   253:5 0 5G 0 lvm         /dev/drbd1             147:1 0 5G 0 disk /var/spool/postfix        /dev/mapper/centos-mailman1 253:6 0 2G 0 lvm         /dev/drbd2             147:2 0 2G 0 disk /var/spool/mailman        /dev/mapper/centos-mailman2 253:7 0 2G 0 lvm         /dev/drbd3             147:3 0 2G 0 disk /var/lib/mailman        /dev/mapper/centos-mailman3 253:8 0 2G 0 lvm         /dev/drbd4             147:4 0 2G 0 disk /etc/mailman        /dev/mapper/centos-mailman4 253:9 0 2G 0 lvm         /dev/drbd5             147:5 0 2G 0 disk /usr/lib/mailman DRBDでレプリケーションするディレクトリはlvm(パーテションと同等)内にある。
レプリケーション用デバイス
/dev/drbd0~5 (両系の/dev/mapper/centos-xxxxのDRBDデバイス)
ディレクトリ
/var/spool/mail (/dev/drbd0へマウント、r1~r5も同様)
 ・lvm作成
 ・レプリケーション用デバイスを作成
初回のみDRDBのメタデータを両ノードで初期化
リソースをアップ
 ・DRBDデバイスにファイルシステムを作成
Primaryのみで行う。
 ・マウント
Primaryのみで行う。
 ・マウント確認
Primaryのみで行う。
 ・DRBD動作確認

 導入 (Dovecot、Mailmanは別途、ノード名などは適宜設定)
 ・レプリケーションするブロックデバイスはアンマウントしておく。
# umount /dev/drbd0 (r1~r5 も同様)
 ・drbd.service は両系で起動
 ・DRBDブロックデバイスにマウントするdiskのオーナーを変更
/var/spool/mail2
[root@kvm3 ~]# drbdadm primary r0 (既にPrimaryの場合は不要)
[root@kvm3 ~]# mount /dev/drbd0 /var/spool/mail
[root@kvm3 ~]# chown root:mail /var/spool/mail
/var/spool/postfix
[root@kvm3 ~]# drbdadm primary r1
[root@kvm3 ~]# mount /dev/drbd1 /var/spool/postfix
[root@kvm3 ~]# chown root:root /var/spool/postfix
/var/spool/mailman
[root@kvm3 ~]# drbdadm primary r2
[root@kvm3 ~]# mount /dev/drbd2 /var/spool/mailman
[root@kvm3 ~]# chown root:mailman /var/spool/mailman
/var/lib/mailman
[root@kvm3 ~]# drbdadm primary r3
[root@kvm3 ~]# mount /dev/drbd3 /var/lib/mailman
[root@kvm3 ~]# chown root:mailman /var/lib/mailman
/etc/mailman
[root@kvm3 ~]# drbdadm primary r4
[root@kvm3 ~]# mount /dev/drbd4 /etc/mailman
[root@kvm3 ~]# chown root:mailman /etc/mailman
/etc/mailman
[root@kvm3 ~]# drbdadm primary r5
[root@kvm3 ~]# mount /dev/drbd5 /usr/lib/mailman
[root@kvm3 ~]# chown root:mailman /usr/lib/mailman
 ・postfix.service は両系で停止、enableも解除
 ・マウントした disk をアンマウントし、role を Secondary にする。
[root@kvm3 ~]# systemctl stop postfix.service (プロセスが無ければ不要)
[root@kvm3 ~]# umount /var/spool/mail
[root@kvm3 ~]# drbdadm secondary r0
[root@kvm3 ~]# umount /var/spool/postfix
[root@kvm3 ~]# drbdadm secondary r1
[root@kvm3 ~]# umount /var/spool/mailman
[root@kvm3 ~]# drbdadm secondary r2
[root@kvm3 ~]# umount /var/lib/mailman
[root@kvm3 ~]# drbdadm secondary r3
[root@kvm3 ~]# umount /etc/mailman
[root@kvm3 ~]# drbdadm secondary r4
[root@kvm3 ~]# umount /usr/lib/mailman
[root@kvm3 ~]# drbdadm secondary r5
[root@kvm3 ~]# drbdadm status
r0 role:Secondary (r1~r5 も同様)
disk:UpToDate
kvm4.xxxx.xxx role:Secondary
peer-disk:UpToDate
 ・DRBD停止
# systemctl stop drbd.service
 ・不要な古いクラスタなどを強制的に削除する場合
[root@kvm3 ~]# pcs cluster stop --force
Stopping Cluster (pacemaker)...
Stopping Cluster (corosync)...
[root@kvm3 ~]# pcs cluster destroy
Shutting down pacemaker/corosync services...
Killing any remaining services...
Removing all cluster configuration files...
/etc/corosync.conf は消える。
 ・ノード間の認証は済
 ・クラスタセット
Cluster name: mailHa
 ・クラスタスタート
 ・クラスタ自動起動
 ・動作確認
# pcs status
Cluster name: mailHa
Current DC: kvm4.xxxx.xxx (version 1.1.21-1.el7-xx) - partition with quorum
Last change: Tue Nov 3 14:38:40 2020 by root via cibadmin on kvm3.xxx.xx
2 nodes configured
0 resources configured
Online: [ kvm3.xxxx.xxx kvm4.xxxx.xxx ]
No resources
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled

 Pacemakerとリソースのデフォルト値の設定
 ・両系にPostfixが正常にインストールされている。
 ・pcs を用いた、クラスタの基本設定
 ・property (クラスタ全体)
property
 ・rsc_defaults (リソース全体)
rsc_defaults
 ・設定確認

 登録するリソースの条件
 ・DRBDは両ノードで動作、どちらか1ノードでのみPrimaryロールとなる。
確認済
 ・DRBDがPrimaryロールのノードで、DRBDブロックデバイスのマウントを行う。
 ・DRBD以外の全てのリソースは、DRBDがPrimaryロールのサーバで起動する。
 ・DRBDのロール変更やデバイスのマウント、Postfixの起動などには順序がある。

 DRBDのリソースエージェント
 ・DRBDマスタスレーブリソースの作成
 ・r0~r4 作成
 ・colocation制約
ms_drbd_r0 と GrpMailは同一ノードで起動、
ms_drbd_r0 は Master(プライマリ)である。
# pcs constraint colocation add GrpMail ms_drbd_r0 INFINITY with-rsc-role=Master

 order制約
 ・ms_drbd_r0 でpromote後(fs_mail作成(ブロックデバイスをマウント)後)GrpMailを起動する。
# pcs constraint order promote ms_drbd_r0 then start GrpMail

 エラークリア
 ・登録手順でエラーが発生し正常に稼働していない場合、クリアする。
# pcs resource cleanup
 Waiting for 1 reply from the CRMd. OK

 Primitiveなリソースエージェント
 ・クラスタ内の1ノードで起動し、障害発生時は別のノードで起動
 ・Postfixのリソース追加
# pcs resource create postfix ocf:heartbeat:postfix \
binary=/usr/sbin/postfix config_dir=/etc/postfix op start interval=0s \
op stop interval=0s op monitor interval=30s --group GrpMail
 ・Dovecotのリソース追加
 ・ML_VIP (~/heartbeat/IPaddr2)

 場所制約
 ・pcs constraint location GrpMail prefers kvm3.xxxx.xxx=200
 ・pcs constraint location GrpMail prefers kvm4.xxxx.xxx=100

 確認
 ・設定確認
# crm configure show
# pcs status     Cluster name: mailHa     Stack: corosync     Current DC: kvm4.xxxx.xxx (version 1.1.21-1.el7-f14e36f) - partition with quorum     Last updated: Tue Nov 3 15:39:31 2020     Last change: Tue Nov 3 15:38:51 2020 by root via cibadmin on kvm3.xxxx.xxx     2 nodes configured     6 resources configured     Online: [ kvm3.xxxx.xxx kvm4.xxxx.xxx ]     Full list of resources:     Master/Slave Set: ms_drbd_r0 [drbd_r0]      Masters: [ kvm3.xxxx.xxx ]      Slaves: [ kvm4.xxxx.xxx ]      Resource Group: GrpMail      fs_postfix (ocf::heartbeat:Filesystem): Started kvm3.xxxx.xxx      vip-check (ocf::heartbeat:VIPcheck): Started kvm3.xxxx.xxx      ML_VIP (ocf::heartbeat:IPaddr2): Started kvm3.xxxx.xxx      postfix (ocf::heartbeat:postfix): Started kvm3.xxxx.xxx     Daemon Status:      corosync: active/enabled      pacemaker: active/enabled      pcsd: active/enabled  ・フェイルオーバー
# pcs cluster standby kvm3.xxxx.xxx
# 強制終了
$ ログアウト
未同期
 ・スタンバイから戻し
# pcs cluster unstandby kvm3.xxxx.xxx
DRBDの同期発生、プライマリにはならない。