본문 바로가기

서버/Linux

[Linux] DRBD+Pacemaker+Corosync 구성(Apache 서비스)

728x90
반응형
SMALL

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

 

 

728x90
반응형
LIST