Index ソフト・ハード | DRBD 導入 |
機能・要件 構成・方式 タスク 導入 EPELレポジトリ Pacemaker Corosync系 DRBD OS設定 LVM パーティション DRBD設定 Pmaker設定 DRBDのRA |
EPELレポジトリの追加 ・デフォルトリポジトリではDRBDはインストールできない。 ・yumリポジトリに「EPEL」を追加 Pacemakerのインンストール ・ローカルリポジをダウンロード (ダウンロード&インストール) OSに応じた「Pacemakerリポジトリパッケージ」を選択Corosync系 ・ Pacemaker-1.1 (Pacemaker-1.1系+Corosync 2系) Contents項目に従って、インストールなどを行う。・「Heartbeatは今後非推奨とするためパッケージには含みません。」 DRBDのインンストール ・「EPEL」のパッケージが古い場合、ELRepo リポジトリを使用 ・ELRepo リポジトリ使用 # yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm # yum search drbd
elrepo | 2.9 kB 00:00:00
elrepo/primary_db | 479 kB 00:00:16
===================== N/S matched: drbd ===================
drbd84-utils.x86_64 : Management utilities for DRBD
drbd84-utils-sysvinit.x86_64 : The SysV initscript to manage the DRBD.
drbd90-utils.x86_64 : Management utilities for DRBD
drbd90-utils-sysvinit.x86_64 : The SysV initscript to manage the DRBD.
kmod-drbd84.x86_64 : drbd84 kernel module(s)
kmod-drbd90.x86_64 : drbd90 kernel module(s)
Name and summary matches only, use "search all" for everything.
・v9系を使用 # yum info drbd90-utils
インストール済みパッケージ
名前 : drbd90-utils
アーキテクチャー : x86_64
バージョン : 9.12.2
リリース : 1.el7.elrepo
リポジトリー : installed
提供元リポジトリー : elrepo
# yum install drbd90-utils kmod-drbd90 依存性解決でカーネルのアップデートを要求されたら行う。 # yum --enablerepo=elrepo-kernel install kernel-ml (1/2): drbd90-utils-9.12.2-1.el7.elrepo.x86_64.rpm | 720 kB (2/2): kmod-drbd90-9.0.22-3.el7_9.elrepo.x86_64.rpm | 284 kB # systemctl list-unit-files | grep drbd drbd.service disabled (boot時未起動) DRBDはPacemakerによって起動される 設定を変更 # lsmod | grep drbd | wc -l 0 (カーネルモジュール未読み込み)OSの設定 ・SELinux 無効にしたほうが無難、確認 getenforce 「Enforcing」 # cp -piv /etc/selinux/config /etc/selinux/config.`date "+%Y%m%d"` 書換え「enforcing→disabled」、リブート、確認 getenforce 「Disabled」・ファイアウォールの設定 リソースのポート (7788から必要数) DRBD ポート:7788、7789 プロトコル:TCP # firewall-cmd --add-port=7788/tcp --zone=public --permanent # firewall-cmd --add-port=7789/tcp --zone=public --permanent # firewall-cmd --reload・/etc/hosts の設定 関係するノード(インターコネクトなど)を「/etc/hosts」に登録・Syslogの設定 専用のファイルに出力されるようにSyslog(rsyslog)の設定を行う。LVM 又は、 パーティションの準備 ・DRBD用のLVM (パーティション)を準備 ・確認 # lsblk -p (両ノード、Postfix例)DRBDの設定 ・両系にDRBD用のLVM(パーティション)があれば、DRBD用のデバイスを作成できる。 ・DRBDリソースの設定ファイルを作成し、待機系ノードにコピー drbd.confの内容・リソースの設定ファイル (Postfix例) /etc/drbd.d/r0.res
resource r0 {
on kvm3 {
address 192.168.5.3:7788;
device /dev/drbd0; (DRBDデバイス、名前/dev/drbdで始まる。)
disk /dev/centos/mail; (実際に利用するLVM(パーティション))
meta-disk internal;
}
on kvm4 {
address 192.168.5.4:7788;
device /dev/drbd0;
disk /dev/centos/mail;
meta-disk internal;
}
}
/etc/drbd.d/r1.res
resource r1 {
on kvm3 {
address 192.168.5.3:7789;
device /dev/drbd1;
disk /dev/centos/postfix;
meta-disk internal;
}
on kvm4 {
address 192.168.5.4:7789;
device /dev/drbd1;
disk /dev/centos/postfix;
meta-disk internal;
}
}
/etc/drbd.d/r2.res
resource r2 {
on kvm3 {
address 192.168.5.5:7790;
device /dev/drbd2;
disk /dev/centos/mailman1;
meta-disk internal;
}
on kvm4 {
address 192.168.5.4:7790;
device /dev/drbd2;
disk /dev/centos/mailman1;
meta-disk internal;
}
}
/etc/drbd.d/r3.res : /etc/drbd.d/r4.res : /etc/drbd.d/r5.res : /etc/drbd.d/global_common.conf
global {
usage-count no;
udev-always-use-vnr; # treat implicit the same as explicit volumes
}
common {
handlers {
}
startup {
}
options {
}
disk {
}
net {
protocol C;
}
}
・文法エラーメッセージ例(全角スペースなど) drbd.d/r0.res:2: Parse error: 'protocol | on | disk ・・・・ but got '・ (TK 282)・初回のみDRDBのメタデータを両ノードで初期化 # drbdadm create-md r0 # drbdadm create-md r1 # drbdadm create-md r2 (以下、後で追加) # drbdadm create-md r3 # drbdadm create-md r4 # drbdadm create-md r5
initializing activity log
initializing bitmap (160 KB) to all zero
Writing meta data...
New drbd meta data block successfully created.
・DRBDのカーネルモジュールはロード、drbdデーモンは未動作(DRDB両系未起動)
# lsmod | grep drbd
drbd 573100 0
libcrc32c 12644 4 xfs,drbd,nf_nat,nf_conntrack
# ps -ef | grep drbd | grep -v grep
root 3734 2 0 15:41 ? 00:00:00 [drbd-reissue]
# systemctl status drbd
● drbd.service - DRBD -- please disable. Unless you are NOT using a cluster manager.
Loaded: loaded (/usr/lib/systemd/system/drbd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
・リソースをアップ # drbdadm up rx (r0~r5、ノード1、2) # lsblk -p (両ノード、Postfix例) # cat /proc/partitions
major minor #blocks name
252 0 314572800 vda
252 1 1048576 vda1
252 2 249175040 vda2
11 0 1048575 sr0
253 0 52428800 dm-0
253 1 7995392 dm-1
253 2 41943040 dm-2
253 3 52428800 dm-3
253 4 5242880 dm-4
253 5 5242880 dm-5
253 6 2097152 dm-6
253 7 2097152 dm-7
253 8 2097152 dm-8
253 9 2097152 dm-9
147 0 5242684 drbd0
147 1 5242684 drbd1
147 2 2097052 drbd2
147 3 2097052 drbd3
147 4 2097052 drbd4
147 5 2097052 drbd5
# ps -ef | grep drbd | grep -v grep
root 1465 2 0 2月11 ? 00:00:00 [drbd-reissue]
root 1511 2 0 2月11 ? 00:00:00 [drbd_w_r0]
root 1523 2 0 2月11 ? 00:00:00 [drbd_w_r1]
:
:
root 7125 2 0 2月11 ? 00:00:00 [drbd_as_r5]
root 7135 2 0 2月11 ? 00:00:00 [drbd_a_r0]
root 7136 2 0 2月11 ? 00:00:00 [drbd_as_r0]
# drbdadm status(両ノード)
r0 role:Secondary
disk:UpToDate
kvm4.xxxx.xxx role:Secondary
peer-disk:UpToDate
r1 role:Secondary
disk:UpToDate
kvm4.xxxx.xxx role:Secondary
peer-disk:UpToDate
r2 role:Secondary (r2~r4追加)
disk:Inconsistent
kvm4.xxxx.xxx connection:Connecting
peer-disk:Inconsistent
r3 role:Secondary
disk:Inconsistent
kvm4.xxxx.xxx connection:Connecting
peer-disk:Inconsistent
r4 role:Secondary
disk:Inconsistent
kvm4.xxxx.xxx connection:Connecting
peer-disk:Inconsistent
r5 role:Secondary
disk:Inconsistent
kvm4.xxxx.xxx connection:Connecting
peer-disk:Inconsistent
・データの初期同期 kvm3をPrimaryに昇格することで初期同期を実施 # drbdadm primary --force r0 (r1~r5同様) # drbdadm status (ノード1)
r0 role:Primary
disk:UpToDate
kvm4.xxxx.xxx role:Secondary
replication:SyncSource peer-disk:Inconsistent done:25.81
(レプリケーション状態, 対向のディスク状態, 同期の完了率)
peer-disk:UpToDate(同期完了時)
r1~r5 同様
# drbdadm status (ノード2)
r0 role:Secondary
disk:Inconsistent (Inconsistentは未だ不一致の状態)
kvm3.xxxx.xxx role:Primary
replication:SyncSource peer-disk:Inconsistent done:25.81
(レプリケーション状態, 対向のディスク状態, 同期の完了率)
peer-disk:UpToDate(同期完了時)
r1~r5 同様
・DRBDデバイスにファイルシステムを作成 Primaryのみで行う。 # mkfs.xfs -f /dev/drbd1 (r1~r5同様、agsizeやblocksはサイズで異なる。)
meta-data=/dev/drbd1 isize=512 agcount=4, agsize=327668 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=1310671, 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
・マウント Primaryのみで行う。 # mount /dev/drbd0 /var/spool/mail # mount /dev/drbd1 /var/spool/postfix # mount /dev/drbd2 /var/spool/mailman # mount /dev/drbd3 /var/lib/mailman # mount /dev/drbd4 /etc/mailman # mount /dev/drbd5 /usr/lib/mailman 「mount point」が無ければ作成(mkdir)してマウント・マウント確認 (Primary) # df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 3.8G 9.4M 3.8G 1% /run
tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 50G 4.3G 46G 9% /
/dev/vda1 1014M 264M 751M 26% /boot
/dev/mapper/centos-home 40G 41M 40G 1% /home
/dev/mapper/centos-var 50G 543M 50G 2% /var
tmpfs 764M 12K 764M 1% /run/user/42
tmpfs 764M 0 764M 0% /run/user/1000
/dev/drbd0 5.0G 33M 5.0G 1% /var/spool/mail2
/dev/drbd1 5.0G 33M 5.0G 1% /var/spool/postfix
/dev/drbd2 2.0G 33M 2.0G 2% /var/spool/mailman
/dev/drbd3 2.0G 33M 2.0G 2% /var/lib/mailman
/dev/drbd4 2.0G 33M 2.0G 2% /etc/mailman
/dev/drbd5 2.0G 33M 2.0G 2% /usr/lib/mailman
・DRBD動作確認 両系のDRBD起動 Primary側の/var/spool/mailと/var/spool/postfixにファイルを作成 Primary側の/var/spool/mailと/var/spool/postfixをアンマウント Primary側のDRBD停止 Secondary側のリソースをprimaryにする。 # drbdadm primary all Secondary側の/var/spool/mailと/var/spool/mailmanをマウント # mount /dev/drbd0 /var/spool/mail # mount /dev/drbd1 /var/spool/mailman # df -h Secondary側に同期されたデータを確認 Mailman関連も同様に確認・参考 Pacemaker設定 ・Pacemakerのデフォルト設定 ・Primitiveなリソースエージェントの設定 ・DRBDマスタスレーブリソースの設定 DRBDマスタスレーブリソースの作成 ・drbd_r0 DRBDのResource0 (/usr/lib/ocf/resource.d/linbit) # pcs resource create drbd_r0 ocf:linbit:drbd drbd_resource=r0 \ op monitor interval=10s role=Master monitor interval=30s role=Slave・ms_drbd_r0 drbd_r0をMaster/Slave形式で2ノードで立上げ、うち1ノードがMasterとなるように指定 # pcs resource master ms_drbd_r0 drbd_r0 master-max=1 master-node-max=1 \ clone-max=2 clone-node-max=1 notify=true・fs_mail DRBDブロックデバイス /dev/drbd0 を /var/spool/mail へマウント postfixリソースグループを作成し所属させる。 # pcs resource create fs_mail ocf:heartbeat:Filesystem device=/dev/drbd0 \ directory=/var/spool/mail fstype=xfs --group GrpMail |
All Rights Reserved. Copyright (C) ITCL |