1) hosts 파일 추가
192.168.100.6 WEB1
192.168.100.7 WEB2
2) DRBD 패키지 설치
dnf install -y epel-release
dnf install -y https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm
dnf install -y kmod-drbd9x.x86_64 drbd-utils.x86_64 drbd
3) GFS2 설치
dnf config-manager --set-enabled resilientstorage
dnf install -y gfs2-utils
modprobe drbd
lsmod | grep drbd
cat /etc/drbd.d/resource0.res
resource resource0 {
net {
protocol C;
allow-two-primaries yes;
fencing resource-and-stonith;
}
handlers {
fence-peer "/usr/lib/drbd/crm-fence-peer.9.sh";
after-resync-target "/usr/lib/drbd/crm-unfence-peer.9.sh";
}
on WEB1 {
device /dev/drbd0;
disk /dev/mapper/mpathdata1;
address 192.168.100.6:7788;
meta-disk internal;
}
on WEB2 {
device /dev/drbd0;
disk /dev/mapper/mpathdata1;
address 192.168.100.7:7788;
meta-disk internal;
}
}
drbdadm create-md resource0
- Pacemaker 설치
dnf -y install pacemaker pcs resource-agents fence-agents-all psmisc drbd-pacemaker corosync dlm
dnf -y groupinstall 'High Availability' 'Resilient Storage'
echo 1234 | passwd hacluster --stdin
- Pacemaker Node 인증
pcs host auth WEB1 WEB2 -u hacluster -p 1234
- Pacemaker Cluster 생성
pcs cluster setup mycluster WEB1 WEB2
pcs cluster start --all
pcs cluster enable --all
- Pacemaker Cluster 기본 설정
pcs property set default-resource-stickiness=100 --force
pcs property set stonith-enabled=false
pcs property set no-quorum-policy=ignore
systemctl enable --now corosync pacemaker pcsd dlm
mkfs.gfs2 -p lock_dlm -t mycluster:gfs2 -j 2 /dev/drbd0
#drbd 설정 리로드
drbdadm adjust resource0
#corosync 설정
cat /etc/corosync/corosync.conf
totem {
version: 2
cluster_name: mycluster
transport: udpu
token: 3000
token_retransmits_before_loss_const: 10
join: 60
max_messages: 20
clear_node_high_bit: yes
secauth: off
rrp_mode: none
interface {
ringnumber: 0
bindnetaddr: 192.168.100.0
mcastport: 5405
ttl: 1
}
}
logging {
to_logfile: yes
logfile: /var/log/corosync/corosync.log
to_syslog: yes
timestamp: on
}
quorum {
provider: corosync_votequorum
two_node: 1
}
nodelist {
node {
ring0_addr: 192.168.100.6
nodeid: 1
}
node {
ring0_addr: 192.168.100.7
nodeid: 2
}
}
#pcs 설정
pcs property set stonith-enabled=false
pcs cluster verify --full
cat <<-END >/etc/httpd/conf.d/status.conf
<Location /server-status>
SetHandler server-status
Require local
</Location>
END
pcs resource create apache systemd:httpd op monitor interval=30s timeout=10s op start timeout=40s op stop timeout=60s
pcs resource clone apache
pcs cluster cib /etc/drbd.d/drbd_cfg
pcs -f /etc/drbd.d/drbd_cfg resource create drbd0 ocf:linbit:drbd drbd_resource=resource0 op monitor interval=29s role=Promoted monitor interval=31s role=Unpromoted
pcs -f /etc/drbd.d/drbd_cfg resource promotable drbd0 promoted-max=2 promoted-node-max=1 clone-max=2 clone-node-max=1 notify=true
pcs cluster cib-push /etc/drbd.d/drbd_cfg --config
pcs cluster cib /etc/drbd.d/fs_cfg
pcs -f /etc/drbd.d/fs_cfg resource create fs-mount Filesystem device="/dev/drbd0" directory="/data" fstype="gfs2"
pcs -f /etc/drbd.d/fs_cfg constraint colocation add fs-mount with Promoted drbd0-clone
pcs -f /etc/drbd.d/fs_cfg constraint order promote drbd0-clone then start fs-mount
pcs -f /etc/drbd.d/fs_cfg constraint colocation add apache-clone with fs-mount
pcs -f /etc/drbd.d/fs_cfg constraint order fs-mount then apache-clone
pcs cluster cib-push /etc/drbd.d/fs_cfg --config
pcs cluster cib /etc/drbd.d/dlm_cfg
pcs -f /etc/drbd.d/dlm_cfg resource create dlm ocf:pacemaker:controld op monitor interval=60s
pcs -f /etc/drbd.d/dlm_cfg resource clone dlm clone-max=2 clone-node-max=1
pcs cluster cib-push /etc/drbd.d/dlm_cfg --config
pcs constraint colocation add fs-mount with dlm-clone
pcs constraint order dlm-clone then fs-mount
pcs property set no-quorum-policy=freeze
pcs cluster cib /etc/drbd.d/active_cfg
pcs -f /etc/drbd.d/active_cfg resource clone fs-mount
pcs -f /etc/drbd.d/active_cfg resource update drbd0-clone promoted-max=2
pcs cluster cib-push /etc/drbd.d/active_cfg --config
pcs resource enable fs-mount
'서버 > Linux' 카테고리의 다른 글
| [Linux] DRBD StandAlone 복구 방법 (1) | 2025.07.21 |
|---|---|
| [Linux] DRBD+Pacemaker+Corosync 구성(Mysql Active-Standby failover공유 디렉토리 자동 마운트) (1) | 2025.07.21 |
| [Linux] 스토리지 볼륨 추가 증설 (2) | 2025.07.21 |
| [Linux] 리눅스 본딩 삭제 (0) | 2025.07.21 |
| [Linux] 리눅스 스토리지 Multipath 설정 (1) | 2025.07.21 |