合理的虛擬化
信不信由你,虛擬化是一種聰明的給SQL Server帶來性 能優勢的方式。這似乎違反直覺;畢竟,虛擬化的重點是在單台主機上運行多個工 作負載。因此,把整台計算機完全分配給SQL Server,不是可以得到更好的SQL Server性能嗎?
一般來說,你會這樣做。如果可以將整台物理服務器完全 分配給一個SQL Server數據庫,那麼就這樣做。然而,許多組織習慣在他們的SQL Server系統中安裝多個數據庫,甚至多個實例。這沒有什麼不妥當的;事實上, SQL Server就是這樣設計的,但它不能提供與工作負載相適應的可用硬件資源的 靈活性。
相反,將這些數據庫遷移到虛擬機後,占用的資源總量可能會少 於整台物理服務器的資源。SQL Server是一個最棒的虛擬機客戶應用程序,可以 將數據庫切分成多個SQL Server實例,每個實例占用一個虛擬機,這樣就可以獲 得較大的靈活性。使用實時遷移技術,可以迅速地將虛擬機從一台主機遷移到另 一台主機,根據當前的工作負載,重新分配虛擬機以更好地利用現有硬件資源。
你可以使用類似集群技術的方法,包括Windows集群服務。將數據庫分區 到集群中不同的SQL Server實例上(歸根到底,SQL Server實例是虛擬化的一種形 式)。然後,可以隨意移動這些實例,而無需擔心數據庫的可用性。如果數據庫A 在某個下午需要擴大規模,則可以關閉該數據庫群集節點上的其他實例,騰出資 源供那個指定的實例使用。這種動態縮放的能力可以得到令人贊歎的性能,但也 確實需要你的組織開發一個成熟的性能監控和響應模型。
如果你准備花費 大量資金購買新的服務器硬件,結合一些資源共享規劃(如集群或虛擬化)是非常 有意義的。這樣,可以讓昂貴的新硬件在任何時候都盡可能地發揮其最大能力, 滿足用戶的性能需求。