所以基本上我需要在前端和後端託管一個 Web 應用程式(所有 PHP),以及一個具有 HA 的 MySQL 資料庫。
不同資料中心將有 2 台伺服器。
我在想我們是否應該將 Proxmox 與 2 個虛擬機一起使用,一個用於 Web 應用程序,另一個用於資料庫。
或者我是否應該安裝 debian 並將所有內容放在一起並完成它。
Web 伺服器的 HA 由另一台伺服器上的 HaProxy 實例處理。資料庫HA將由HA中的ProxySQL處理(因此基本上MySQL伺服器和ProxySQL將位於同一台伺服器中),但我的應用程式需要知道它們應該連接到哪個ProxySQL。
如果我使用 Proxmox,使用 Keepalived 執行此操作會很簡單,因為一切都會使用內部 IP,而且沒問題。
但是,如果我使用 debian,它將是公共 IP,並且我正在使用的託管 ( OVH ) 有允許這種稱為浮動 IP 的功能,但切換大約需要 5 分鐘,因此該網站需要 5 分鐘已下降。
使用 proxmox 我還有其他優勢,我可以啟動伺服器進行升級,然後只需切換等等,而不會破壞任何東西。使用debian直接意味著重新格式化伺服器等等。
當然,使用 Proxmox 會對效能造成輕微影響,但我認為這是可以忽略的。
這兩種解決方案都有利弊,我不確定該朝哪個方向發展。
那麼虛擬化還是裸機?
伺服器是:
CPU: Xeon-E 2288G - 8c/16t
Memory: 32GB
Disks: 2× 960GB SSD NVMe - RAID 1
有什麼想法嗎?謝謝!
答案1
您在這裡使用 Proxmox 的理由似乎是為了可以使用 keepalived (儘管我不確定到底是為了什麼)。這似乎有點矯枉過正。
在您暗示的這種情況下,還有其他可能有意義的原因。
您還提到了 OVH 浮動 IP。
這就是XY問題。
您主要關心的問題似乎是確保(至少其中一項)服務可透過虛擬 IP 提供。
如果沒有大量巧妙的路由配置,虛擬 IP 就無法跨資料中心運作。複雜性不好。
虛擬 IP 作為 HA 機制很糟糕。你依賴你的系統做某物當它處於破損狀態時。裂腦周圍存在併發症。很難測試/監控。服務總是會中斷。
您不需要虛擬 IP - 如果 ProxySQL(或 haproxy 或類似的)在需要連接到資料庫的每個節點上可用/配置,並且知道您的資料庫服務擁有 HA 的所有資料庫節點。對於HTTP服務,HA的關鍵部分是跨多個主機的循環DNS位址。注意:互聯網上仍然存在著許多關於 rrDNS 和 HTTP 的錯誤訊息。它可以處理負載平衡器無法處理的情況,並處理負載平衡器可以處理的大多數用例。
在這樣的環境中使用虛擬化的最大成本是 DBMS 磁碟 I/O。如果 mysql 效能對整體服務效能有重大影響,而您的預算允許這一點,那麼您可以透過將專用磁碟控制器和儲存傳遞給 DBMS VM 來消除此問題。