1. 程式人生 > >CentOS 7下搭建高可用叢集

CentOS 7下搭建高可用叢集

本文以兩臺機器實現雙集熱備高可用叢集,主機名node1IP192.168.122.168 ,主機名node2IP192.168.122.169 

一、安裝叢集軟體

必須軟體pcspacemakercorosyncfence-agents-all,如果需要配置相關服務,也要安裝對應的軟體

二、配置防火牆

1、禁止防火牆和selinux

  1. # systemctl disable firewalld
  2. # systemctl stop firewalld

修改/etc/sysconfig/selinux確保SELINUX=disabled,然後執行setenforce 0或者reboot伺服器以生效

2、設定防火牆規則

  1. # firewall-cmd --permanent --add-service=high-availability
  2. # firewall-cmd --add-service=high-availability

 三、各節點之間主機名互相解析

分別修改2臺主機名分別為node1node2,在centos 7中直接修改/etc/hostname加入本機主機名和主機表,然後重啟網路服務即可。

  1. #vi /etc/hostname
  2. node1
  3. #systemctl restart network.service
  4. #hostname
  5. node1

 配置2臺主機的主機表,在/etc/hosts中加入

  1. 192.168
    .122.168 node1
  2. 192.168.122.169 node2

 四、各節點之間時間同步

node1node2分別進行時間同步,可以使用ntp實現。 

  1. [[email protected] ~]# ntpdate 172.16.0.1//172.16.0.1 為時間伺服器

五、各節點之間配置ssh的無密碼金鑰訪問。

下面的操作需要在各個節點上操作。

  1. # ssh-keygen -t rsa -P ‘’ #這個生成一個密碼為空的公鑰和一個金鑰,把公鑰複製到對方節點上即可
  2. # ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected] #對方主機名用登入使用者名稱

兩臺主機都要互相可以通訊,所以兩臺主機都得互相生成金鑰和複製公鑰,相互的節點上的hosts檔案是都要解析對方的主機名, 192.168.122.168 node1 192.168.122.169 node2 

  1. # ssh node2 ‘date’;date #測試一下是否已經互信 

六、通過pacemaker來管理高可用叢集

1、建立叢集使用者

為了有利於各節點之間通訊和配置叢集,在每個節點上建立一個hacluster的使用者,各個節點上的密碼必須是同一個。

  1. # passwd hacluster
  2. Changing password for user hacluster.
  3. New password:
  4. Retypenew password:
  5. passwd: all authentication tokens updated successfully.

2、設定pcsd開機自啟動

  1. # systemctl start pcsd.service
  2. # systemctl enable pcsd.service

3、叢集各節點之間進行認證

  1. # pcs cluster auth node1 node2Username: hacluster Password: node1: Authorized node2: Authorized

4、建立並啟動叢集

  1. [[email protected] ~]# pcs cluster setup --start --name my_cluster node1 node2
  2. node1:Succeeded
  3. node1:StartingCluster...
  4. node2:Succeeded
  5. node2:StartingCluster...

5、設定叢集自啟動

  1. # pcs cluster enable –all

6、檢視叢集狀態資訊

  1. [[email protected] ~]# pcs cluster status

7、設定fence裝置

這個可以參考<Red Hat Enterprise Linux 7 High Availability Add-On Reference>

corosync預設啟用了stonith,而當前叢集並沒有相應的stonith裝置,因此此默 認配置目前尚不可用,這可以通過如下命令驗證:

  1. #crm_verify -L -V

可以通過如下面命令禁用stonith

  1. #pcs property set stonith-enabled=false(預設是true)

8、配置儲存

高可用叢集既可以使用本地磁碟來構建純軟體的映象型集群系統,也可以使用專門的共享磁碟裝置來構建大規模的共享磁碟型集群系統,充分滿足客戶的不同需求。

共享磁碟主要有iscsiDBRD。本文並沒有使用共享磁碟。

9、配置浮點IP

不管叢集服務在哪執行,我們要一個固定的地址來提供服務。在這裡我選擇192.168.122.101作為浮動IP,給它取一個好記的名字 ClusterIP 並且告訴叢集 每30秒檢查它一次。

  1. # pcs resource create VIP ocf:heartbeat:IPaddr2 ip=192.168.122.170 cidr_netmask=24 op monitor interval=30s
  2. # pcs update VIP op monitor interval=15s