Index ソフト・ハード Postfix | PacemakerDrbd導入 |
機能 構成・方式 動作 タスク 導入 クラスタ化 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パッケージ ・両系にPacemaker 、Corosyncが正常にインストールされている。 ・確認 # crm_mon -rfADRBD ・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/enabledPacemakerとリソースのデフォルト値の設定 ・両系に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=Masterorder制約 ・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. OKPrimitiveなリソースエージェント ・クラスタ内の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の同期発生、プライマリにはならない。 |
All Rights Reserved. Copyright (C) ITCL |