在 Linux 集群中,使用 fence 同步通常是指在一個(gè)高可用性集群中實(shí)現(xiàn)節(jié)點(diǎn)間的故障檢測(cè)和自動(dòng)恢復(fù)
Corosync 是一個(gè)用于實(shí)現(xiàn)高可用性和負(fù)載均衡的集群服務(wù)。首先,在所有集群節(jié)點(diǎn)上安裝 Corosync。
對(duì)于基于 Debian 的系統(tǒng)(如 Ubuntu):
sudo apt-get install corosync
對(duì)于基于 RHEL 的系統(tǒng)(如 CentOS):
sudo yum install corosync
接下來(lái),編輯 /etc/corosync/corosync.conf
文件以配置集群。這里有一個(gè)簡(jiǎn)單的示例配置:
totem {
version: 2
secauth: off
cluster_name: my_cluster
transport: udpu
}
nodelist {
node {
ring0_addr: node1_ip_address
name: node1
}
node {
ring0_addr: node2_ip_address
name: node2
}
}
quorum {
provider: corosync_votequorum
}
logging {
to_logfile: yes
logfile: /var/log/corosync.log
to_syslog: yes
}
將 node1_ip_address
和 node2_ip_address
替換為實(shí)際節(jié)點(diǎn) IP 地址。
Pacemaker 是一個(gè)用于管理集群資源的工具。在所有集群節(jié)點(diǎn)上安裝 Pacemaker。
對(duì)于基于 Debian 的系統(tǒng)(如 Ubuntu):
sudo apt-get install pacemaker
對(duì)于基于 RHEL 的系統(tǒng)(如 CentOS):
sudo yum install pacemaker
接下來(lái),創(chuàng)建并編輯 /etc/pacemaker/authkey
文件以設(shè)置集群節(jié)點(diǎn)之間的認(rèn)證密鑰。在文件中添加以下內(nèi)容:
auth 1
1 sha1 my_cluster_password
將 my_cluster_password
替換為實(shí)際密碼。然后,將此文件復(fù)制到其他節(jié)點(diǎn)。
STONITH(Shoot The Other Node In The Head)是一種用于在集群中實(shí)現(xiàn)節(jié)點(diǎn)隔離的技術(shù)。你需要為你的集群選擇合適的 STONITH 設(shè)備。這里有一個(gè)使用 IPMI 的示例:
在所有節(jié)點(diǎn)上安裝 pcs
工具:
對(duì)于基于 Debian 的系統(tǒng)(如 Ubuntu):
sudo apt-get install pcs
對(duì)于基于 RHEL 的系統(tǒng)(如 CentOS):
sudo yum install pcs
使用以下命令創(chuàng)建 STONITH 設(shè)備:
sudo pcs stonith create my_stonith_device ipmi \
ipaddr=bmc_ip_address \
userid=bmc_username \
passwd=bmc_password \
interface=lanplus \
pcmk_host_list=node1,node2
將 bmc_ip_address
、bmc_username
和 bmc_password
替換為實(shí)際 BMC(基板管理控制器)信息。
在一個(gè)節(jié)點(diǎn)上運(yùn)行以下命令以啟動(dòng)并激活集群:
sudo systemctl start corosync
sudo systemctl enable corosync
sudo systemctl start pacemaker
sudo systemctl enable pacemaker
現(xiàn)在,你已經(jīng)在 Linux 集群中使用 fence 同步。你可以通過(guò)手動(dòng)關(guān)閉一個(gè)節(jié)點(diǎn)或模擬故障來(lái)測(cè)試集群的故障檢測(cè)和自動(dòng)恢復(fù)功能。