如何應對虛擬機器數量增加產生的資料頻寬問題

2021-09-23 04:58:39 字數 2197 閱讀 9435

有些人把資料中心整合簡單地看作是,集合許多伺服器然後新增vmware這樣的虛擬化軟體,之後就算是完成了資料中心整合和應用虛擬化。

我曾經聽有人說他們把1000臺伺服器精簡到100臺,但同時又稱沒有必要改變底層儲存架構。我還聽說一家採用lto-4用於備份整合資料中心的站點,他們還計畫利用陳舊伺服器的的1gb光纖通道hba和1gb架構。考慮到1gb hba是eol的,所有lto-4支援未經過測試而且是不提供支援的,你無法正常執行磁帶驅動器,因為這些裝置可能會給你帶來麻煩。

那麼讓我們來看一看與資料中心整合相關的問題,以及對儲存架構的影響。每當我聽說有人宣稱他們計畫整合伺服器和削減成本的時候,我就會問我自己,這些人是否針對知道他們在做什麼嗎?

設想一下你擁有1000臺伺服器和2000個與san的連線來確保可靠性。如果以前拿1gb光纖通道舉例的話,假設每台伺服器使用20%的儲存頻寬和iops。因為這1000臺伺服器中可能許多伺服器已經使用數十年時間了,許執行著72gb 10k rpm驅動器(大約每秒100次iops運算元和67 mb/s的持續效能)。在這期間,raid控制器可能支援128個i/o請求以及光纖通道的處理速率。應該指出一點,對於大多數這種型別的windows應用來將,iops要比流式處理更重要,因為ntfs分配資料的方式是不同的。

讓我們來看一看這些問題的具體例子:

這個**有什麼問題?我有很多看法。從儲存到伺服器的頻寬方面,總頻寬大幅下滑。因為來自伺服器的頻寬是有限的,所有raid頻寬就不可能提高。即使以前的利用率很低(大約是儲存效能的20%),而現在你所能執行50%的理論頻寬也是不夠的。

我認為最大的問題就是iops效能。iops效能提高了3.6倍,這只是杯水車薪。從1000臺伺服器精簡到100臺意味著每台伺服器的iops會增長10倍。讓我們再回到那個假設,雖然利用率為20%,但是你的cpu能力提高了10倍,因此2000個cpu可以處理更多的的iops。顯然,cpu效能的10倍提公升和儲存空間的10倍提公升並等於iops的3.6倍提公升。

架構師應該做什麼?

在過去的八年時間裡,我們把cpu效能提高了10倍。即使你正在使用1.5萬轉的2.5英吋sas驅動器,iops效能也僅僅提高了2.5倍,從100次iops提高到250次iops。

2.5英吋驅動器每個驅動器的儲存容量稍低一些,所以在正確架構的情況下你能更有效地使用它。現在希捷1.5萬轉、73gb的2.5英吋sas驅動器iops效能提高了9.86倍,cpu數量和cpu效能比10:1。這非常接近現有的cpu數量,比使用1.5萬轉300gb驅動器的3.6:1好很多,因為驅動器更少。

如果我正著手開發乙個虛擬環境的系統架構,那麼我會首先看一看現有系統的五個重要因素:

·從伺服器到儲存的頻寬利用率是多少?

·從伺服器到儲存的iops利用率是多少?

·從伺服器到儲存的可用頻寬是多少?

·從伺服器到儲存的總iops是多少?

·底層檔案系統是什麼、這些檔案系統如何處理同時寫入的多個資料流?

上面的第五點是問題的癥結所在。如果你不知道檔案系統分配多i/o請求資料有多麼糟糕的話,那麼你就很難決定到底需要多少iops頻寬。

iops隨著cpu效能的提公升而增加。如果cpu效能增長了10倍,那麼磁碟的iops至少要提高10倍甚至更多。問題是,由於iops和頻寬的原因,i/o效能並不隨著密度增加而提高。記住一點,採用老系統的時候,更少的資料流流向更少的磁碟驅動器,檔案系統可能連續分配資料,減少旋轉延遲的尋道和開銷數量。即使你可以有效地維持不變的cpu運算能力,那也有可能在使用新系統的時候要處理更多的i/o請求。現有的pcie匯流排設計速度要比老式的pci匯流排高許多,我發現大多數pci匯流排無法達到標定的效能水平,而且沒有必要達到,因為我們被侷限在把1gb光纖通道作為最高速度連線。新的pcie 2.0在老系統上的頻寬大約是老式pci匯流排的30倍之多。相比老系統來說,能夠處理更多的i/o請求可能導致驅動器層級更多的尋道和旋轉延遲。

作為整合和虛擬化資料中心的架構師,你不能只拿著乙份**就想當然地在這或者在那把伺服器數量精簡到原來的1/10,還想著獲得你預期的效能水平。你要考慮到架構的方方面面,考慮不能與cpu和密度擴充套件比例同步的一些方面。當對乙個環境進行架構和虛擬化的時候,你需要考慮整個資料路徑,其中包括檔案系統如何老系統上分配資料、如何在新系統中運作等等,因為可能隨機i/o請求會更多。

通過 PowerShell 的方式增加虛擬機器終結點

關於虛擬機器終結點的概念請閱讀 如何設定虛擬機器的終結點 本文包含以下內容 本文在名稱為 pstest 的虛擬機器做測試 使用 powershell 前有關 azure powershell 的安裝 配置和連線到訂閱請閱讀這篇文章 檢視當前虛擬機器終結點 相關指令 get azurevm get a...

通過 PowerShell 的方式增加虛擬機器終結點

關於虛擬機器終結點的概念請閱讀 如何設定虛擬機器的終結點 本文包含以下內容 本文在名稱為 pstest 的虛擬機器做測試 使用 powershell 前有關 azure powershell 的安裝 配置和連線到訂閱請閱讀這篇文章 檢視當前虛擬機器終結點 相關指令 get azurevm get a...

通過 PowerShell 的方式增加虛擬機器終結點

關於虛擬機器終結點的概念請閱讀 如何設定虛擬機器的終結點 使用 powershell 前有關 azure powershell 的安裝 配置和連線到訂閱請閱讀這篇文章 檢視當前虛擬機器終結點 相關指令 get azurevm get azureendpoint servicename 為虛擬機器對應...