最近有人問我如何建 DRDB ,但我之前沒留筆記,加這之前透過 google 很快的就建好了 DRDB
我只記得當初那個專案的內容為二台 CentOS 透過 Keepalived 去做 HA,DRDB的重點則用在 PostgreSQL 的 HA.
簡單的說就是做出 PostgreSQL的 HA (Active/Standby),供 Zabbix 使用.
而我最近則是使用 MariaDB Cluster去做 MySQL 的 HA (Active/Active),供 Librenms 使用,
HA 的 VIP 一樣是用 Keepalived.
但他的需求不是用在 DB 上,而是想去做 Samba 的 HA,但我想到的一個問題是,如果透過 DRBD 去做 HA 的話,會受限 DRDB 的機制,必然是一個 A/S 的架構,另一個問題是它是用 Block level disk replication,平時無法驗證檔案是否真的有複寫成功,除非 Remount replicated disk才可去驗證,或做 HA 切換演練去驗證.另一個問題則是 Active GG 後, A/S 的角色互換問題與重建.
假設 Active/Standby 的機器沒在監控它的 DRDB 機制是否運作正常?會不會有一天, HA 切換後才發現 Samba 的東西短少了!?
經過 goolge 後,發現 GlusterFS + Samba (CTDB) 這個組合比 DRDB + Samba 還要優一些,而且是 A/A 的架構
Byte-level file replication VS Block-level disk replication 我個人是比較推崇 GlusterFS 的.
以下為個人做的建制小筆記.
架構說明:
(1) fsa 192.168.100.111
(2) fsb 192.168.100.112
(3) vip 192.168.100.100
CentOS 7.9 + Clusterfs 9.5
參考 URL
https://www.server-world.info/en/note?os=CentOS_7&p=glusterfs9&f=1
https://www.server-world.info/en/note?os=CentOS_7&p=glusterfs9&f=5
https://wiki.samba.org/index.php/CTDB_and_Clustered_Samba
=========================================================
vi /etc/hosts
yum install centos-release-gluster
yum install centos-release-gluster glusterfs-server centos-release-samba samba samba-vfs-glusterfs
yum -y install centos-release-samba411
yum --enablerepo=centos-samba411 -y install samba ctdb samba-vfs-glusterfs
fdisk -l
fdisk /dev/sdb
mkfs.xfs /dev/sdb1
mkdir -p /bricks/brick1
mount /dev/sdb1 /bricks/brick1
vi /etc/fstab
systemctl enable glusterd.service
systemctl start glusterd.service
gluster peer probe fsb
gluster peer status
gluster volume create glustervol1 replica 2 transport tcp fsa:/bricks/brick1/brick fsb:/bricks/brick1/brick
gluster volume start glustervol1
gluster volume info all
gluster volume stop glustervol1
gluster volume set glustervol1 user.smb enable
gluster volume set glustervol1 performance.write-behind off
gluster volume set glustervol1 group samba
vi /var/lib/glusterd/hooks/1/start/post/S29CTDBsetup.sh
vi /var/lib/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh
gluster volume start glustervol1
df -h /gluster/lock
tail -1 /etc/fstab
vi /etc/ctdb/nodes
ip add
vi /etc/ctdb/public_addresses
systemctl enable --now ctdb
ctdb status
ctdb ip
mount -t glusterfs fsa:/glustervol1 /mnt
mkdir /mnt/smbshare
groupadd smbgroup
chgrp smbgroup /mnt/smbshare
chmod 770 /mnt/smbshare
umount /mnt
vi /etc/samba/smb.conf
systemctl enable --now smb
useradd cent
smbpasswd -a cent
usermod -aG smbgroup cent
systemctl restart smb