Virtualization

設置高可用性虛擬化環境

  • March 3, 2016

對於一個項目,我的任務是為網上商店和 CMS 系統規劃高可用性設置。但是,當然,該項目的預算很緊。因此,高端解決方案可能不在預算之內。

將有兩台機器執行 Web 伺服器(CMS、商店),一台機器執行數據庫,一台機器執行傳真伺服器,以便將訂單傳遞給合作夥伴。所有系統都執行 Linux。所有這些組件都需要具有高可用性,並且應該支持透明的故障轉移。

為了降低硬體成本,我考慮了虛擬化環境。那裡有很多資訊,但我不知道確切的開始。似乎很明顯,至少需要伺服器作為虛擬機的主機,這樣就不會出現單點故障。

支持高可用性的最佳方式是什麼?

第一個問題是哪種虛擬化解決方案在這種情況下是最好的。需要有某種管理界面。需要有一種方法可以將正在執行的虛擬機從一台主機移動到另一台主機,這樣才能對主機進行維護。需要某種機制,以便在一台主機出現故障時虛擬機仍然可用。您能在這裡就有效的解決方案提出建議嗎?

在大多數情況下,共享文件儲存似乎是高可用性的先決條件(除了 VMware vSphere,它相當昂貴)。但是,寧願在虛擬機主機上投入更多資金,也不願在設置中添加另外兩台伺服器以提供冗餘 NFS 文件儲存。是否有可能只與兩個虛擬機主機相處?一個解決方案可能是兩個也將這兩個用作 NFS 主機。這樣做會造成很大的性能損失嗎?

編輯:我的目標是 99,9% 的可用性。但是,由於有固定的營業時間,因此不需要 24/7 的可用性,這為操作提供了一些空間。必須以某種方式保證的可用時間是上午 10 點到午夜之間。

作為一般概述,要實現高可用性,您需要:

  1. 多台伺服器
  2. 數據的多個一致副本
  3. 可在多個伺服器之間訪問的一致數據
  4. 一種在備用伺服器上自動啟動第二個實例的方法

第 1 點就像聽起來一樣簡單 - 購買兩台相同的伺服器。

第二個可以通過複製 SAN(昂貴、非常快、非常可靠)或在每台伺服器上複製文件系統(便宜、速度和可靠性取決於您對所選技術的了解)來實現。

數字 3 可以通過 SAN(一個儲存 LUN,由兩台伺服器訪問)或複製文件系統(兩個單獨的儲存區域,每個伺服器只能看到自己的)來實現。

4 號可以通過心跳應用程序來實現。

要以較小的預算做到這一點,比如說 VMWare vSphere,您可以使用 SANVMWare 現在提供自我複制的儲存設備,該設備在兩台伺服器上提供兩個不同的數據儲存,可用於實現高可用性。vSphere 還提供內置檢測信號和高可用性配置。

要在沒有預算的情況下執行此操作,您可以沿 Xen 路徑走,並使用 DRBD 在兩個節點之間複製儲存。然後,您設置心跳來切換活動的 DRBD 儲存節點和 Xen 實例,以便在第一個主機出現故障時啟動第二台主機上的虛擬機。

使用這些基本建議您不會獲得 5-9 (99.999%) 的正常執行時間,但如果您知道自己在做什麼,則可以通過使用最便宜的方法輕鬆獲得 3-9 (99.9%)。

引用自:https://serverfault.com/questions/366273