Vì lý do chạy các lệnh bằng CLI nên các thông số và tên các biến trên hình ảnh minh họa có thể thay đổi so với câu lệnh
sudo dnf --enablerepo=highavailability,resilientstorage -y install lvm2-lockd gfs2-utils dlm pcs pacemaker fence-agents-aws
sudo systemctl start pcsd.service
sudo systemctl enable pcsd.service
Trong đó:
sudo passwd hacluster
sudo pcs host auth <dns name of node1> <dns name of node2> -u hacluster
sudo pcs cluster setup macluster <dns name of node1> <dns name of node2>
sudo pcs cluster enable --all
sudo pcs cluster start --all
Giải thích:
sudo pcs stonith create clusterfence fence_aws \
access_key=<your access key> \
secret_key=<your secret key> \
region=us-east-1 \
pcmk_host_map="<dns name of node1>:Instance-ID-1;<dns name of node2>:Instance-ID-2" \
power_timeout=240 pcmk_reboot_timeout=480 pcmk_reboot_retries=4
Trong đó:
Sau khi hoàn thành cấu hình cluster, bạn cần thiết lập GFS2. Bộ phụ trợ Lưu trữ Đảm bảo của Red Hat Enterprise Linux (RHEL) cung cấp GFS2, và nó phụ thuộc vào bộ phụ trợ RHEL High Availability để cung cấp quản lý cluster cần thiết cho GFS2. Tuy nhiên, trong lab này, chúng ta sẽ sử dụng các gói được cung cấp với CentOS 9 stream.
sudo mkdir /var/lib/mysql
Trên cả hai node của cluster, thiết lập tùy chọn cấu hình use_lvmlockd trong file /etc/lvm/lvm.conf để sử dụng use_lvmlockd=1
Trên bất kỳ node nào, thiết lập tham số Pacemaker toàn cục no-quorum-policy thành freeze:
sudo pcs property set no-quorum-policy=freeze
sudo pcs resource create dlm --group locking ocf:pacemaker:controld op monitor interval=30s on-fail=fence
sudo pcs resource clone locking interleave=true
sudo pcs resource create lvmlockd --group locking ocf:heartbeat:lvmlockd op monitor interval=30s on-fail=fence
sudo pcs status –full
sudo pvcreate /dev/nvme1n1
sudo vgcreate --shared shared_vg1 /dev/nvme1n1
Lưu ý: vì chúng ta sẽ cài đặt mysql trên hệ thống file gfs2 này, chúng ta sẽ mount hệ thống file vào /var/lib/mysql. /var/lib/mysql là thư mục mặc định của Mysql.
sudo lvcreate --activate sy -L5G -n shared_lv1 shared_vg1
sudo mkfs.gfs2 -j2 -p lock_dlm -t macluster:gfs2-demo1 shared_lv1
sudo pcs resource create sharedlv1 --group shared_vg1 ocf:heartbeat:LVM-activate lvname=shared_lv1 vgname=shared_vg1 activation_mode=shared vg_access_mode=lvmlockd
sudo pcs resource clone shared_vg1 interleave=true
sudo pcs constraint order start locking-clone then shared_vg1-clone
sudo pcs constraint colocation add shared_vg1-clone with locking-clone
[root@z1 ~]# sudo lvs
[root@z2 ~]# sudo lvs
sudo pcs resource create sharedfs1 --group shared_vg1 ocf:heartbeat:Filesystem device="/dev/shared_vg1/shared_lv1" directory="/var/lib/mysql" fstype="gfs2" options=noatime op monitor interval=10s on-fail=fence
[root@z1 ~]# sudo mount | grep gfs2
[root@z2 ~]# sudo mount | grep gfs2
sudo pcs status --full