小型 Linux 虛擬伺服器的完美設置是什麼?
我有自己的電子郵件伺服器,它為幾十個使用者提供服務。我現在需要替換它,並且我希望替換為在管理程序下執行的虛擬伺服器映像。
我對新伺服器系統的計劃包括以下內容:
- 只執行免費的開源軟體。
- 至少執行三個虛擬映像:電子郵件伺服器、HTTP 伺服器和 SSH 伺服器。我計劃執行一個網路電子郵件系統(例如SquirrelMail)。
- Hypervisor OS 將是 Debian Stable(目前是 Debian 5.0 “lenny”)。來賓作業系統也將是 Debian 穩定版。
- 軟體 RAID 使用鏡像 (RAID 1) 配置中的兩個硬碟驅動器。
我需要盡快啟動並執行虛擬機管理程序和電子郵件訪客映像,因為我擔心我的舊伺服器可能會出現硬體故障。(它每天大約重啟 3 次!)
這是我為未來做好準備的黃金機會。什麼是完美的設置?我應該如何配置我的系統?
我的主要問題:
- 我應該使用KVM嗎?我本來打算使用Xen,但我看到,在其他 ServerFault 問題中,有人推薦 KVM 作為未來的最佳選擇。我現在需要一些穩定可靠的東西,而且我需要讓它快速執行……如果 Xen 更穩定或者 KVM 很棘手,我現在可以使用 Xen。(Debian 不會很快放棄對 Xen 的支持!)
- 我應該將LVM與我的管理程序一起使用,還是不使用它?我傾向於讓事情盡可能簡單,而 LVM 似乎會增加另一層複雜性;但另一方面,我認為它現在已經穩定和成熟,如果我的虛擬伺服器映像的需求發生變化,靈活性可能會很有價值。
- 是否有一些 GUI 或基於 Web 的工具可以用來管理 KVM/Xen?我目前的電子郵件伺服器甚至沒有 X11。我只通過 SSH 管理它。
- 任何其他建議或提示將不勝感激。
如果您想了解我的硬體,以下是重要的基礎知識:
- AMD BE-2300 晶片(雙核;支持 AMD-V 虛擬化指令)
- 4 GB 記憶體
- 兩個相同的 250 GB 希捷硬碟
老實說,我看不出使用任何虛擬化技術會給您帶來什麼好處。
- 您仍在使用一台伺服器,硬體使用並沒有減少。
- 由於您只有這台伺服器,因此能夠遷移虛擬機(甚至可能在執行時)可能帶來的好處並不適用。
- 保持 virt 所需的工作量。執行的伺服器實際上增加了,因為您必須對虛擬機管理程序和每個映像進行基本管理,而沒有足夠的機器來通過自動化常見任務來獲得很多收益。此外,您將把主管作為需要您注意的附加層。
- 同時,由於使用者群如此之小,在不同機器上擁有 Web 和郵件服務的好處非常小,即使在邏輯上分開時,您仍然需要同樣多的小心來保證它們的安全和健全。
在我看來,虛擬化是一種很酷的技術,它並不適合任何地方,並且僅僅因為每個人都這樣做而進行虛擬化並不是一個好主意(再次,在我看來)。
由於您在主機和來賓 VM 上執行相同的作業系統 Linux,我建議您從User Mode Linux或OpenVZ中進行選擇。
UML 最初是作為修改後的 Linux 核心而誕生的,它可以作為使用者模式程序啟動。它已廣泛用於託管公司,以及需要在單個伺服器上模擬大量 VM 的人。OpenVZ 來自更多的企業背景,並且更多地以 Solaris 容器化為模型。這個想法是您可以對系統進行分區並將軟體安裝在不影響系統其餘部分的容器中。要刪除軟體,只需刪除容器即可。
在你決定之前看看這兩個網站。我認為 OpenVZ 似乎更適合你,但很大程度上取決於你未來的計劃,即最好選擇你將來可能用於工作的那個。
UML 和 OpenVZ 都與 XEN 和 KVM 有很大不同。簡而言之,XEN 和 KVM 是成熟的虛擬化管理程序,允許執行 x86 硬體支持的任何作業系統,但 UML 和 OpenVZ 是 chroot 監獄概念的擴展,允許隔離不同的 Linux 程序。如果您打算只使用 Linux,那麼最好避免 XEN 和 KVM 的複雜性。
所以 OpenVZ 和 UML 擴展了 Linux 系統的功能,但是 XEN 或 KVM 可以讓你把它變成一個執行 MS-Windows、FreeBSD、OpenSolaris 等的非 Linux 系統。
如果你想執行 XEN,那麼你應該執行一個完全支持它的發行版,比如 OpenSUSE 11。