[Proxmox VE] 解決無法使用Multicast之情形


目錄

最近在測試各種KVM的解決方案時,經由學弟介紹測試了一款叫做Proxmox VE的管理環境,他的管理及搭建方式待測試完後在移併給大家做個介紹,這次主要是給在搭建過程遇到的一個問題做個紀錄,讓以後再有出現這樣的問題時可以快速的解決。

在使用不論是付費的虛擬化方案也好,還是開源的也罷,為了增加系統的可靠性我們都會加入多台的主機做HA(High Availability),在Proxmox VE也是,他做的方式是選定一台主機作為主要的控制機建立叢集,再讓其他台加入此叢集後進行HA的設定來完成高可靠性,但是在叢集中主機之間的構通Proxmox VE預設是使用Multicast來完成,所以當網路環境中不支援或允許Multicast、IGMP snooping、IGMP snooping時,可以透過下列方法來取代Multicast,當然,如果只是單純因為Multicast功能被關掉的話,可以在網路設備上開啟即可。

當初沒有注意到這個問題,所以裝完了2台Proxmox VE的主機並加成一個叢集之後就發現,一開始兩台主機還都可以探詢到對方,過幾分鐘之後,兩台主機都沒辦法探詢到對方了,但是還是可以互相對操作設定跟使用底下的虛擬機,所以看起來服務應該是沒死掉,就只是沒辦法知道彼此的狀態而已,後來一查,在Proxmox VE的WiKi才發現是這個問題造成的,改成使用Unicast的方式進行連線,當然就好解決啦!

 

參照說明,我把做的過程記錄下來供大家參考

編輯hosts檔案,將所有要加入叢集中的主機資訊在每一台主機的hosts檔案中做紀錄

root@PVE01:~#vim /etc/hosts

192.168.1.1 PVE01
192.168.1.2 PVE02

root@PVE02:~#vim /etc/hosts

在主節點上建立叢集

root@PVE01:~#pvecm create CLUSTER-NAME

編輯PVE的corosync設定檔,加入使用Unicast連線的設定並存檔離開

root@PVE01:~#vim /etc/pve/corosync.conf

....

totem {
  cluster_name: GarenaTW 
  config_version: 2 
  ip_version: ipv4 
  secauth: on 
  version: 2 
  transport: udpu 
  interface { 
    bindnetaddr: 10.4.100.213 
    ringnumber: 0 
  }
}

預先在corosync.conf其他節點資訊

nodelist {
  node {
    name: PVE01
    nodeid: 1
    quorum_votes: 1
    ring0_addr: PVE01
  }

  node {
    name: PVE02
    nodeid: 2
    quorum_votes: 1
    ring0_addr: PVE02
  }

}

重新啟動主節點

root@PVE01:~#reboot

主節點重新啟動完成後,在其他節點上加入叢集

root@PVE02:~#pvecm add 192.168.1.1

 

如此一來就解決了叢集中主機間通訊的問題囉!

Leave a comment

你的電子郵件位址並不會被公開。 必要欄位標記為 *