8.4.4. 配置總覽:KVM 遠端節點

這部分提供了能讓 Pacemaker 啟用虛擬機器,並透過 libvirt 與 KVM 虛擬客座來將該機器整合為遠端節點的基本概要總覽。
  1. 在安裝了虛擬化軟體並在叢集節點上啟用了 libvirtd 服務後,在所有叢集節點與虛擬機器上將一個 authkey 放置在 /etc/pacemaker/authkey 中。這將能確保遠端通訊與認證。
    下列指令會建立一項 authkey
    # dd if=/dev/urandom of=/etc/pacemaker/authkey bs=4096 count=1
  2. 在所有虛擬機器上安裝 pacemaker_remote 套件,啟用 pacemaker_remote 服務並使它能在開機時執行,並在防火牆中允許開啟 TCP 連接埠 3121。
    # yum install pacemaker-remote resource-agents
    # systemctl start pacemaker_remote.service
    # systemctl enable pacemaker_remote.service
    # firewall-cmd --add-port 3121/tcp --permanent
  3. 為各個虛擬機器提供靜態的網路位址與獨特的主機名稱。
  4. 若要建立 VirtualDomain 資源代理程式來管理虛擬機器,Pacemaker 需要虛擬機器的 xml 配置檔案傾印到一個檔案或磁碟上。比方說,若您建立了一個名為 guest1 的虛擬機器,請使用下列指令來將 xml 傾印至主機上的某個檔案中。
    # virsh dumpxml guest1 > /virtual_machines/guest1.xml
  5. 建立 VirtualDomain 資源,配置 remote-note 資源的 meta 選項來顯示虛擬機器是個能執行資源的遠端節點。
    在以下範例中,meta 屬性 remote-node=guest1 會告知 pacemaker 這項資源是主機名稱為 guest1 的遠端節點,並且它能被整合入叢集中。叢集會嘗試聯絡虛擬機器的 pacemaker_remote 服務於主機名稱 guest1(在它啟用後)。
    # pcs resource create vm-guest1 VirtualDomain hypervisor="qemu:///system" config="vm-guest1.xml" meta remote-node=guest1
  6. 在建立了VirtualDomain 資源後,您可將遠端節點視為叢集中的任何其它節點使用。比方說,您可建立一項資源,並在遠端節點上執行的資源上設置資源限制式。
    # pcs resource create webserver apache params configfile=/etc/httpd/conf/httpd.conf op monitor interval=30s
    # pcs constraint location webserver prefers guest1
    當遠端節點整合入叢集之後,您便能由遠端節點本身執行 pcs 指令,就如同遠端節點執行了 Pacemaker 一般。