centos7一鍵部署pacemaker+nfs集羣

1. 概述

《pacemaker配置mariadb和nfs高可用》裏,大部分篇幅主要介紹瞭如何配置mariadb的高可用。本篇主要通過幾個腳本,實現快速部署pacemaker+nfs,實現nfs共享目錄的高可用。

這裏的一鍵拆分爲幾個腳本,分別執行。

2. 準備條件

假設使用kvm創建2臺虛擬機node13,node14,且已經配置好了node13和node14的ssh互信。

爲node13和node14創建可共享的塊設備。注意,這部分必須

首先物理機創建塊設備:qemu-img create -f raw nfs-opt.img 50G;qemu-img create -f raw nfs-home.img 50G

然後編輯虛擬機,使得塊設備共享。

首先是複製下面內容,保存爲add_disk.xml,需要主要的是type='raw',dev='vb?',bus='0x0?',然後就是file的位置,指定創建的虛擬磁盤的路徑

    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/var/lib/libvirt/images/nfs-opt.img'/>
      <target dev='vdb' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x07' function='0x0'/>
       <shareable/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/var/lib/libvirt/images/nfs-home.img'/>
      <target dev='vdc' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x07' function='0x0'/>
      <shareable/>
    </disk>

2. 部署pacemaker的腳本

創建pacemaker_install.sh

#!/bin/bash
# 本腳本用於一鍵部署pacemaker+nfs
read -p "輸入本地節點主機名:" NODE1
read -p "輸入遠程節點主機名:" NODE2
echo -ne "本地執行安裝..."
yum -y install pcs pacemaker fence-agents-all >/dev/null 2>&1 &
while true
do
        rtn=$(ps axu|grep yum|egrep -v grep|wc -l)
        if [ "${rtn}" -eq 1 ]
        then
                echo -ne "."
                sleep 1
                rtn=$(ps axu|grep yum|egrep -v grep|wc -l)
        else
                echo "yum結束."
                break
        fi
done
echo -ne "遠程執行安裝..."
ssh ${NODE2} "yum -y install pcs pacemaker fence-agents-all >/dev/null 2>&1 &"
while true
do
        rtn=$(ssh ${NODE2} ps axu|grep yum|egrep -v grep|wc -l)
        if [ "${rtn}" -eq 1 ]
        then
                echo -ne "."
                sleep 1
                rtn=$(ssh ${NODE2} ps axu|grep yum|egrep -v grep|wc -l)
        else
                echo "yum結束."
                break
        fi
done
echo "本地執行配置..."
passwd hacluster
echo "遠程執行配置..."
ssh -t ${NODE2} "passwd hacluster"
echo "本地啓動服務..."
systemctl start pcsd -q && systemctl enable pcsd -q
echo "遠程執行啓動服務..."
ssh ${NODE2} "systemctl start pcsd -q && systemctl enable pcsd -q"
echo "配置集羣(Username:hacluster,Password:xxxxx):"
pcs cluster auth ${NODE1} ${NODE2}
pcs cluster setup --start --name my_nfs_ha_cluster ${NODE1} ${NODE2}
echo "配置開機啓動"
ssh ${NODE2} "systemctl start corosync -q && systemctl enable corosync -q"
ssh ${NODE2} "systemctl start pacemaker -q && systemctl enable pacemaker -q"
systemctl start corosync -q && systemctl enable corosync -q
systemctl start pacemaker -q && systemctl enable pacemaker -q

3. 創建資源的腳本

我這裏創建2個共享資源

創建nfs_opt_create.sh,內容

# 1.格式化共享盤
mkfs.xfs -f  /dev/vdb
# 2. 創建資源
pcs resource create \
        nfs_opt_disk ocf:heartbeat:Filesystem device=/dev/vdb directory=/opt/hpc fstype=xfs --group nfs_opt_group
pcs resource create \
        nfs_opt_server ocf:heartbeat:nfsserver nfs_shared_infodir=/opt/hpc/nfsinfo --group nfs_opt_group
pcs resource create \
        nfs_opt_exportfs ocf:heartbeat:exportfs clientspec="192.168.80.0/24" options=rw,sync,no_root_squash,no_all_squash directory=/opt/hpc fsid=0 --group nfs_opt_group
pcs resource create \
        nfs_opt_vip ocf:heartbeat:IPaddr2 nic=eth0 ip=192.168.80.186 cidr_netmask=24 --group nfs_opt_group

創建nfs_home_create.sh,內容

# 1. 格式化共享盤
mkfs.xfs -f /dev/vdc
# 2. 創建資源
pcs resource create \
        nfs_home_disk ocf:heartbeat:Filesystem device=/dev/vdc directory=/home/export/base fstype=xfs --group nfs_home_group
pcs resource create \
        nfs_home_server ocf:heartbeat:nfsserver nfs_shared_infodir=/home/export/base/nfsinfo --group nfs_home_group
pcs resource create \
        nfs_home_exportfs ocf:heartbeat:exportfs clientspec="192.168.80.0/24" options=rw,sync,no_root_squash,no_all_squash directory=/home/export/base fsid=0 --group nfs_home_group
pcs resource create \
        nfs_home_vip ocf:heartbeat:IPaddr2 nic=eth0 ip=192.168.80.187 cidr_netmask=24 --group nfs_home_group

4. 最後

最後把3個腳本,全部上傳到node13,在node13依次執行:pacemaker_install.sh,nfs_opt_create.sh,nfs_home_create.sh

腳本執行完成以後,執行pcs property set stonith-enabled=false

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章