2019年1月13日 星期日

PVE 4.2 Cluster 修改方式

PVE 4.2 Cluster 修改方式
這個週末完美突破了 PVE 4.2 的 不能修改 cluster 模式. 徹底了解 corosync cluster 如何運作. 得到以下的結論:
  1. PVE Cluster 可以改 ip!
  2. 已經加入了 cluster 的 node 是最好不要修改名稱, 因為 hostname 是有搭配 public key/private key 建制的, 如果重新命名 hostname, 那些 key 是要重建的, 倒不如, 退出 cluster 後再加入.
PVE 4.2 的部分一直以來都是最困難的一部分, 而且它的設定都一直是 read only 模式. 因為沒有修改正確, 那麼 cluster 就會進入 failed state. 舊的 cluster, 其 管理界面 ip 是 192.168.253.x. 但是為了新的網路架構, 我必須要全部移到 10.0.3.x 的 network 上面. 在這部分, 需要在 /etc/hosts 裡面修改 pvelocalhost 到正確的 ip 位置. 再來所有的 node-list 裡面的 host 也要修改到他們新的 ip. 先讓 cluster node 下線
 "service pve-cluster stop"
然後強制 pve node 以 local 模式開啟 Proxmox Cluster file system, 執行
"pmxcfs -l"
修改 /etc/pve/corosync.conf totem 部分的 bindnetaddr
把在現有所有的 cluster node 都是以上述模式下線修改, 如果有 4個 nodes, 那麼都要下線修改, 10個 nodes 也都是要下線修改.
全部的 node 修改好了以後, 每一個 node 都要執行
"service pve-cluster start"
"service pvedaemon restart"
"service pveproxy restart"
"service pvestatd restart"
如果是要修改 node 的名稱的方法如下
"service pve-cluster stop"
"rm /etc/pve/corosync.conf"
"rm -rf /etc/corosync"
"rm /var/lib/pve-cluster/corosync.authkey"
修改你的 /etc/hostname 以及 /etc/hosts 然後執行
"pvecm updatecerts -f"
在一台 PVE cluster member 裡面執行
"pvecm delnode  [舊 node 的 hostname]"
再來就是以 新 node 加入cluster 模式, 就可以了.
"pvecm add [IP-ADDRESS-CLUSTER]"
/root/.ssh/knownhosts 的 entry 以及 /root/.ssh/authorize_keys 有可能需要需改. 把舊的 node entry 移除. 基本上都會報錯在第幾行有錯誤的訊息, 我都是最後要手動使用 vi 整行刪除, 使用 ssl regen -f 無效.
PVE Cluster 其實說穿了, 只要 hostname 可以對應到 ip (/etc/hosts 要正確), 再來就是所有的 ssl key 要 match. 這樣子就可以很簡單修改 cluster. 但是如果 node 越多, 需改起來的複雜度就越難.

沒有留言:

張貼留言