合理選擇磁盤 提升虛擬機性能
虛擬化通常關注于核心的計算元素比如處理器和內存,但是I/O以及磁盤存儲同樣對虛擬機的總體性能以及響應能力具有重要的影響。磁盤存儲以及I/O甚至更為關鍵,因為與磁盤相關的功能往往對處理任務的性能影響更大。急于提升虛擬機性能的虛擬化管理人員應該投入精力優化磁盤操作性能。
提升虛擬機性能的磁盤選項
在虛擬化中,hypervisor將工作負載從運行在底層的物理硬件中抽象出來,允許快速分配并共享計算資源,遷移工作負載。盡管hypervisor以及與虛擬化兼容的處理器性能開銷很小,但是虛擬化層的存在卻對性能有影響。
當磁盤性能對工作負載至關重要時,某些管理員可能會選擇以直通模式配置LUN,允許虛擬機的操作系統繞過hypervisor與直接LUN進行通信。例如,Windows服務器虛擬機可能使用直通模式繞過Hyper-V直接訪問磁盤,這對SQL Server數據庫的性能有些許提升。然而,由于客戶操作系統(采用直通模式)以及hypervisor試圖同時訪問磁盤,那么hypervisor必須被配置為忽略直通LUN。
直通模式存在的問題是其不被某些重要的虛擬化功能比如虛擬機快照或者集群所支持。因此,虛擬機在實際上可能會受益于虛擬化提供的各種功能特性而非采用直通模式所帶來的處于邊緣地位的性能提升。管理員需要評估虛擬機的需求并確定直通模式的適宜性。
除直通模式外,Hyper-V以及其他hypervisor還提供了其他磁盤存儲選項。例如,當.VHD文件被創建時,大小固定的磁盤將分配所有的數據塊。一旦被創建,大小固定的磁盤就不能夠進行調整了。然而,動態擴展磁盤從一開始創建的就是沒有數據塊的.VHD文件,當數據寫入到.VHD文件中后磁盤空間才會被分配出去。這和精簡配置類似,盡管在邏輯上創建了一塊磁盤,但實際的磁盤空間只有數據寫入時才會被用到。
差分磁盤是一種特殊的動態擴展磁盤類型。其設計思路是父磁盤擁有固定的鏡像而且差分磁盤與父磁盤相關聯,因此寫入到磁盤的數據被存放在差分磁盤而非.VHD文件中。讀請求首先檢查差分磁盤的.VHD文件,如果沒有更改,就會讀父.VHD文件。當需要標準化的磁盤鏡像而且回滾功能很重要時,差分是一個不錯的主意,但是管理員在維護父子磁盤配置時可能會面臨挑戰。
合理分配磁盤空間
磁盤空間分配不存在唯一的標準,因為很多變量可能會影響計算資源的分配。在理想情況下,運行在虛擬機內的工作負載需要的計算資源應該與部署在物理服務器上沒有什么兩樣。然而,虛擬化依賴于軟件hypervisor,而且運行hypervisor所需要的額外的計算資源將會為大多數虛擬化工作負載增加一些開銷。例如,微軟建議虛擬工作負載應該比在物理環境中運行時多獲得5%到10%的計算資源。
然而,需要指出的是以上只是一條不應該被嚴格執行的指南,因為不同應用的資源需求、性能需求、用戶流量模式以及負載增長預期都不相同。管理員在分配磁盤前應該仔細考慮上述因素,在開發測試環境中進行基準測試后再在生產環境進行部署。
此外,存儲價格昂貴,存儲過度分配將增加企業的運營成本。管理員經常會使用動態擴展磁盤或者其他精簡配置技術來預留磁盤空間,或者使用重復數據刪除技術移除重復的內容并降低存儲容量需求。
使用物理磁盤提升虛擬機性能的指導方針
存儲性能——無論是虛擬應用還是物理應用——都始于在物理層進行良好的設計,部署性能更好的存儲設備將有利于提升虛擬機存儲性能。磁盤選擇通常涉及磁盤大小、速度、主軸以及數據布局。
例如,選擇2.5寸硬盤而非體積更大的3.5寸硬盤。硬盤體積越小,其盤面也就越小,旋轉速度更快,延遲更小也就是尋道時間更短。小磁盤查找數據的速度更快、功耗更低,能夠降低數據中心存儲的能耗。
需要考慮的另一個因素就是磁盤組的構成。磁盤組的性能往往更好因為數據分散在多個磁盤上,可以同時在多個磁盤上查找數據能夠提升性能。除整合磁盤外,RAID 5或者RAID 6磁盤組能夠支持多個軸,并在存儲陣列或者服務器內提供全面的數據保護。
如果可能的話,采用動態數據分布方案將自動在最外側的磁道訪問最重要或者訪問最為頻繁的數據。請記住整個磁盤盤片以相同的速度旋轉,因此最外側的磁道實際上要比內側磁道的讀寫速度更快。盡管整個磁盤的速度仍舊受磁盤緩存大小的限制,但是動態數據分布能夠更快速地訪問最重要或者最為頻繁的數據。
虛擬機依賴存儲,但是存儲系統的限制及瓶頸將顯著影響虛擬機性能。使用直通磁盤能夠提升性能,但是因此丟掉虛擬化相關的功能卻不值得。和物理部署相比,虛擬機可能需要額外的存儲,但是準確的存儲容量需求***通過親自測試確定,結合現有的技術設計以緩解對存儲的需求。