虛擬化的優缺點
我知道這裡有很多討論類似主題的問題,但在這種情況下,我會嘗試更具體。一個目標場景是中小型 ISV,第二個場景是企業基礎架構。以下想法適用於這兩種情況。
我們面向微軟。我需要決定走哪條路(以及何時走),並且我需要一些支持或反對虛擬化的可靠(理想情況下是普遍的)論據 - 我知道虛擬化很流行,但我很感謝你的幫助,因為到目前為止,我已經閱讀過,整個網路的利弊相當平衡,我想根據以下範例提供一些可靠的論據,為什麼不選擇虛擬化。
1)我了解虛擬化有利於利用硬體資源 - 如果每個專用伺服器在一個伺服器應用程序上執行並且其資源沒有被利用,如果這些伺服器被虛擬化,則資源使用率不是這種情況。但是,如果我不將 SQL、Exchange、IIS 和 TFS 安裝在單獨的伺服器上,而是全部安裝在一台伺服器上,因為所有這些應用程序完全能夠共同存在,該怎麼辦?另一方面,如果 Exchange 伺服器的使用率如此之高以至於消耗了大部分伺服器容量,那麼為什麼要對其進行虛擬化呢?值得一提的是,我們預計工作量的數量不會有任何顯著變化。
2)我也明白虛擬化讓我可以自由地向網路添加/擴展/刪除伺服器 - 但實際上,我認為這實際上是無用的。對於實驗,我們在 Azure 上使用虛擬機,我們可以在其中執行測試和實驗——但是一旦我們有了明確定義的伺服器基礎架構,我們就需要對其進行更改,可能會添加專門的伺服器。
另一件事是虛擬化需要集中儲存——如果失敗,一切都會失敗。如果我有例如三個獨立的伺服器,每個都執行在自己的 RAID 上,我個人會感覺更舒服一些。
對於 DC 或文件伺服器等高度關鍵的系統,我認為虛擬化沒有任何好處。
我也明白,如果有人真的搞砸了某些伺服器,例如 Exchange 或 SQL,恢復伺服器映像很容易——但同樣,這通常是在登台環境中完成的。
虛擬化的好處是複製和更好的災難恢復——但另一方面,如果我們定期將配置和數據備份到 Azure,我看不到任何真正的好處。
免責聲明 - 我不是虛擬化懷疑論者,我只是欣賞一些關於這些重要決定的可靠論據或提示,我更願意從更有經驗的人那裡獲得一些見解。
- 當然,您可以將所有這些應用程序安裝在單個作業系統實例上,並讓它們愉快地生活在一起。但是,如果您需要將其中一個擴展到更大的硬體,會發生什麼?如果你搞砸了其中一個應用程序的升級並且導致整個作業系統崩潰,會發生什麼?虛擬化使您能夠隔離作業系統和應用程序,以及輕鬆地將作業系統實例從一個硬體移動到另一個硬體的能力。
- 就網路而言,虛擬化允許更大程度的靈活性。如果這對您沒有用,那麼很好,不要使用該功能。
- 不真實。虛擬化絕對不需要集中儲存。如果您確實想要集中儲存,您將獲得虛擬化的許多好處(實時遷移等),但這不是必需的。我有許多僅使用本地 RAID10 儲存的 ESXi 主機。對於集中式儲存系統,它的架構通常不會出現任何單點故障(多條 FC 路徑、多控制器、電源冗餘等)。使用這些系統,包括控制器在內的每一個元件都可能發生故障和/或停機進行維護,而不會導致一毫秒的停機時間。
- 請參閱以上幾點 - 供應商完全支持 DC 的虛擬化,您可以在此過程中獲得很大的自由度和靈活性。需要更換伺服器上的 DIMM?好的,只需將您的虛擬機 vMotion 移動到另一台主機,執行維護,然後 vMotion 將其恢復。您已經設法在沒有任何停機時間的情況下更換物理伺服器上的記憶體。在沒有虛擬化的情況下嘗試。
- 錯誤發生,硬體當機,軟體更新檔出錯等等。在執行任何可能破壞事情的更新之前,能夠將虛擬機的維護前快照作為備份是非常好的。當然,您絕對應該在暫存環境中測試事物,但即使具有這種嚴格程度,事情仍然可能發生故障。
- 恢復快照的速度比物理伺服器的裸機恢復快幾個數量級。此外,快照不需要恢復到類似的硬體。虛擬化的主要好處之一是它為您提供了硬體獨立性。
總之,除非您有一些非常嚴格的性能要求,否則如今在沒有虛擬化的情況下部署系統幾乎是無能的。即使您的工作負載需要整個伺服器的資源,擁有一個虛擬化層仍然是有益的,因此您可以利用上述所有項目。