現在的應用程序就像是內存吞噬者,占據消耗著大量的內存,因此內存往往會成為整個服務器系統中最緊缺的部件。而在一個虛擬化的服務器環境中,缺乏足夠的物理內存甚至還會影響到整個系統的投資回報率,它成了高密度計算系統木桶中的那塊短板。
個中原因在于,每個處理器插槽現在支持不斷增長的內核數量,為了最大化效率,每臺主機都必須平衡各虛擬機所用的資源。當某臺主機的內存資源開始緊缺,大量的虛擬機的運行都會受限,盡管處理器等其它資源還很充沛。
在虛擬環境中應用內存過量使用技術可以緩解這一問題,而通過SSD來處理內存過量使用的成本效益更遠高于機械磁盤。
我們來檢驗一下內存過量使用技術如何解決服務器硬件中的內存限制,以及固態磁盤驅動器(SSD)技術如何更好地解決這個問題。
服務器硬件中物理內存的缺陷
服務器內部的內存有兩種問題:可用的內存插槽數量以及高密度雙列直插式存儲模塊(DIMM)的成本。虛擬化環境下的服務器硬件要求海量內存以支持其上面運行的數量眾多的虛擬機。最新版本的vSphere可以在一臺主機上支持高達1TB的內存容量以及每個虛擬機最高255GB的內存容量。而服務器內部的內存插槽數量限制了單臺設備的最大內存容量,而是用高密度的DIMM則需要很高的成本。即便你目前有較多的內存插槽,假設你要擴展至最大內存容量,你必須使用大于4GB的DIMM.而8GB或16GB的服務器DIMM價格區間在400美金到1,300美金每根左右,價格差取決于速率,檔次和一些其它因素。因此,如果你的虛擬服務器主機要配備128GB的內存,那么光內存的價格就可達6,000美金或20,000美金。
vSphere(不過Hyper-V不支持)具有內存過量使用技術,其使得用戶的VMware虛擬機可以使用超過物理主機實際的內存容量。這可以使你配置更少的內存,從而降低內存成本。而且在服務器已經配置最大DIMM內存而其上運行的虛擬機又要求更多內存時,這種技術也相當有用。通過內存過量使用技術,即便物理主機只有8GB的內存,而其上運行的一臺虛擬機可以配置高達255GB的內存。當一臺虛擬上線時,主機通過使用外部擴展內存,并不是物理內存,而是在磁盤上創建的一種特別的虛擬vswp文件。所創建的vswp文件大小等于分配給虛擬機的內存減去虛擬機啟動時的物理內存預留量(默認值是0)。比如一個消耗16GB內存的虛擬機有4GB的預留,那么就會相應創建12GB的。vswp文件。這些文件為虛擬機創建后僅僅在物理主機消耗盡所有物理內存后才會使用。
雖然內存過量使用技術是一項非常優秀的特性,但也有個最根本的問題:機械磁盤的速率較RAM而言是在慢了太多。其結果是,當虛擬機開始使用磁盤作為內存后,其性能直線下降--而這恰恰是我們在許多情況下需要避免的。根據各磁盤總的工作狀態,有時一個虛擬機遷移到硬盤后就呈現出幾乎是宕機的狀態。
通過SSD解決內存過量使用技術中的性能問題
SSD提供了一個全新的解決方案以在很大程度上解決了上述磁盤技術中遇到的性能問題。一塊15,000rpm轉速的SAS驅動器典型的吞吐速率為180 IOPS,而相對一塊SSD的吞吐量則高得多,一塊3GbpsSATASSD驅動器可以提供至少5,000 IOPS的寫速率和20,000 IOPS的讀速率。通過存儲中SSD作為虛擬機的swap文件使得應用內存過量使用時性能不會受到很大影響。雖然SSD的性能較RAM還有一定的距離,但比起機械磁盤而言,它快出很多。
SSD基本上可以變成服務器中的另一層RAM,提供給虛擬機。vSphere中的內存資源控制可以保障或限制虛擬機使用的最大物理內存,你可以在虛擬機切換到磁盤時很好地加以控制。設置內存預留可以確保每臺虛擬機都可以有一定的物理內存;而設置內存閾值可以限制每臺虛擬機可以使用的物理內存。這使得你可以確保關鍵的虛擬機可以訪問到最快速的物理內存,而次重要的虛擬機可以在物理內存耗盡后轉向使用SSD層。
RAM和SSD的成本比較
為了更好地說明使用SSD用于內存過量使用時的成本優勢。我們看一下2種HP服務器不同配置的價格比較--第一臺配置192GB的內存和一般的磁盤,而第二臺配置64GB內存和SSD
- 配置一:HP DL385 G7(2顆12內核處理器,192GB內存,72GB 15,000rpmSAS磁盤);成本:$15,065
- 配置二:HP DL385 G7(2顆12內核處理器,64GB內存,120GB SSD磁盤);成本:$11,141
第一臺的配置中有192GB的物理內存;72GB的磁盤對于虛擬化swap文件來說實在是太慢了。而第二臺配置64GB的物理內存和額外120GB的SSD存儲用于虛擬化swap文件。目前HP 60GB SSD驅動器的價格約為1,000美金;120GB的約為2,000美金。其結果是使用SSD作為RAM的替代品,在這個配置中可以降低至少4,000美金的成本。而且SSD的價格正在穩步下降,容量亦在逐步提升,隨著系統使用時間增加,應用SSD將帶來更多好處。
除了使用SSD存儲來替代RAM以外,你還可以使用SSD來補充RAM.上述HP服務器的配置中配置了總共24顆處理器內核,約可以支持超過50個虛擬機。不過,服務器可以提供的最大內存支持僅有256GB.你可以增加SSD驅動器來為虛擬機提供額外可用內存,以增加每臺物理服務器的集成密度,提高服務器的處理器利用率。
不論在內存層面或是在存儲層面應用,SSD技術較機械磁盤提供了極大的性能提升,使得你在架構虛擬環境中的服務器時有了更多的選擇。使用SSD來取代RAM只是許多創新想法中的一個。其提供了較RAM而言更高的性價比,而且可以應用在任何規模的虛擬化解決方案中以提供額外的內存容量。虛擬化要求物理服務器資源的平衡使用,以避免任何性能瓶頸,并最大化利用虛擬環境中昂貴的服務器硬件成本。SSD所提供的這種資源方式確保資源使用平衡并提供需要大內存支持的虛擬機可以獲取其所需的內存資源。