在過去的文章中,我們開始討論 Proxmox VE 是什麼及其工作原理。 今天我們將討論如何利用集群的可能性並展示它帶來的好處。
什麼是集群以及為什麼需要它? 集群(來自英語 cluster)是一組通過高速通信通道聯合起來的服務器,它們作為一個整體工作並顯示給用戶。 使用集群主要有以下幾種場景:
- 提供容錯能力 (高可用性)。
- 負載均衡 (負載均衡)。
- 提高生產力 (高性能)。
- 執行分佈式計算 (分佈式計算)。
每個場景對集群成員都有自己的要求。 例如,對於進行分佈式計算的集群,主要要求是浮點運算的高速性和低網絡延遲。 此類簇通常用於研究目的。
既然我們已經談到了分佈式計算這個話題,我想指出的是,還有這樣的事情: 網格系統 (源自英語grid——格子、網絡)。 儘管總體相似,但不要混淆網格系統和集群。 網格不是通常意義上的集群。 與集群不同,網格中包含的節點通常是異構的,並且具有低可用性的特點。 這種方法簡化了分佈式計算問題的解決方案,但不允許從節點創建單個整體。
網格系統的一個引人注目的例子是流行的計算平台
博恩克 (伯克利網絡計算開放基礎設施)。 該平台最初是為該項目創建的SETI @ home (在家尋找外星智慧生命),解決通過分析無線電信號尋找外星智慧生命的問題。
Какэтоработает從射電望遠鏡接收到的大量數據被分成許多小塊,並將它們發送到網格系統的節點(在 SETI@home 項目中,志願者計算機扮演此類節點的角色)。 數據在節點處進行處理,處理完成後發送到SETI項目的中央服務器。 因此,該項目在沒有所需的計算能力的情況下解決了最複雜的全球問題。
現在我們已經清楚地了解了集群是什麼,我們建議考慮如何創建和使用它。 我們將使用開源虛擬化系統
在開始創建集群之前,清楚地了解 Proxmox 的限制和系統要求尤為重要,即:
- 集群中的最大節點數 - 32;
- 所有節點必須有 相同版本的 Proxmox (也有例外,但不建議用於生產);
- 如果將來計劃使用高可用性功能,那麼集群應該具有 至少 3 個節點;
- 端口必須打開以便節點相互通信 UDP/5404, UDP/5405 用於 corosync 和 TCP/22 用於 SSH;
- 節點之間的網絡延遲不應超過 2 ms.
創建集群
重要的! 以下配置是測試配置。 不要忘記檢查
為了運行測試集群,我們使用了三台安裝了 Proxmox 虛擬機管理程序的服務器,配置相同(2 個內核,2 GB RAM)。
如果您想了解如何安裝 Proxmox,那麼我們建議您閱讀我們之前的文章 -
虛擬化的魔力:Proxmox VE 入門課程 .
最初,安裝操作系統後,單個服務器運行在 獨立模式.
單擊按鈕創建集群 創建集群 在相關部分。
我們為未來的集群設置一個名稱並選擇一個活動的網絡連接。
單擊創建按鈕。 服務器將生成一個2048位密鑰並將其與新集群的參數一起寫入配置文件。
題詞 任務確定 表示操作成功完成。 現在,查看系統的一般信息,可以看到服務器已經切換到集群模式。 到目前為止,集群僅由一個節點組成,即尚不具備集群所需要的能力。
加入集群
在連接創建的集群之前,我們需要獲取信息來完成連接。 為此,請轉至以下部分 簇 инажимаем кнопку 加盟信息.
在打開的窗口中,我們對同名字段的內容感興趣。 需要復制它。
所有必要的連接參數都在這裡編碼:用於連接的服務器地址和數字指紋。 我們轉到需要包含在集群中的服務器。 我們按下按鈕 加入集群 並在打開的窗口中粘貼複製的內容。
領域 對等地址 и 指紋 會自動填寫。 輸入節點號1的root密碼,選擇網絡連接並按下按鈕 加入.
加入集群過程中,GUI網頁可能會停止更新。 沒關係,重新加載頁面即可。 以完全相同的方式,我們添加另一個節點,結果我們得到了一個由 3 個工作節點組成的成熟集群。
現在我們可以從一個 GUI 控制所有集群節點。
高可用性組織
Proxmox 開箱即用,支持虛擬機和 LXC 容器的 HA 組織功能。 公用事業 哈經理 檢測並處理錯誤和故障,執行從故障節點到工作節點的故障轉移。 為了使該機制正常工作,虛擬機和容器必須具有公共文件存儲。
激活高可用性功能後,ha-manager軟件堆棧將持續監控虛擬機或容器的狀態,並與其他集群節點異步交互。
連接共享存儲
例如,我們在 192.168.88.18 部署了一個小型 NFS 文件共享。 為了使集群的所有節點都能夠使用它,您需要執行以下操作。
從網絡界面菜單中選擇 數據中心-存儲-添加-NFS.
填寫字段 ID и 服務器. 在下拉列表中 出口 從可用目錄和列表中選擇所需的目錄 內容 — 所需的數據類型。 按下按鈕後 加入 存儲將連接到所有集群節點。
在任何節點上創建虛擬機和容器時,我們指定我們的 存儲 作為存儲。
設置HA
例如,讓我們使用 Ubuntu 18.04 創建一個容器並為其配置高可用性。 創建並運行容器後,轉到 部分 數據中心-HA-添加。 在打開的字段中,指定虛擬機/容器 ID 以及嘗試重新啟動和在節點之間移動的最大次數。
如果超過此數字,虛擬機管理程序會將虛擬機標記為失敗並將其置於錯誤狀態,之後它將停止對其執行任何操作。
點擊按鈕後 加入 效用 哈經理 將通知集群的所有節點,現在具有指定 ID 的 VM 已受到控制,並且在發生崩潰時必須在另一個節點上重新啟動。
讓我們來一次崩潰吧
為了看看切換機製到底是如何工作的,讓我們異常關閉node1的電源。 我們從另一個節點查看集群中發生的情況。 我們看到系統已修復故障。
HA機制的運行並不意味著VM的連續性。 一旦節點“崩潰”,虛擬機運行就會暫時停止,直到在另一個節點上自動重新啟動。
這就是“魔法”開始的地方 - 集群自動重新分配節點來運行我們的虛擬機,並在 120 秒內自動恢復工作。
我們在營養上消滅了節點2。 讓我們看看集群是否能夠存活,虛擬機是否會自動恢復到工作狀態。
唉,正如我們所看到的,我們遇到了一個問題,即唯一倖存的節點上不再有法定人數,這會自動禁用 HA。 我們在控制台中發出命令強制安裝仲裁。
pvecm expected 1
2 分鐘後,HA 機制正常工作,未找到節點 2,而是在節點 3 上啟動了我們的虛擬機。
一旦我們重新打開節點 1 和節點 2,集群就完全恢復了。 請注意,虛擬機不會自行遷移回節點 1,但這可以手動完成。
總結
我們向您介紹了 Proxmox 集群機制的工作原理,並向您展示瞭如何為虛擬機和容器配置 HA。 正確使用集群和 HA 可以大大提高基礎設施的可靠性,並提供災難恢復。
在創建集群之前,您需要立即規劃集群的用途以及未來需要擴展的程度。 您還需要檢查網絡基礎設施是否準備好以最小的延遲運行,以便未來的集群能夠正常運行。
告訴我們 - 您是否使用 Proxmox 的集群功能? 我們在評論裡等你。
之前有關 Proxmox VE 虛擬機管理程序的文章:
來源: www.habr.com