為 100 台 VM Web 伺服器選擇 SAN 技術
問題
我們在現有平台上的性能存在問題,所以我轉向蜂巢思維以獲得第二意見。到目前為止,性能問題與 IOPS 而非吞吐量有關。
情景
一個由 16 台主機組成的刀片中心,每台主機都有 64GB 的 RAM。(這是一個帶 M610 的戴爾 M1000e,但這可能不相關) 500 個虛擬機,所有 Web 伺服器(或相關的 Web 技術,如 MySQL、負載平衡器等),大約 90% 是 Linux,其餘是 Windows。管理程序是 VMWare vSphere。我們需要提供主機 HA,所以本地儲存就用完了。因此,主機只需一個 SD 卡即可啟動。
一點背景思考
目前,我們最多有 6 台主機(刀片中心將在幾年內滿負荷執行,以目前的增長速度),我們正在執行 iSCSI 到帶 MD1220 的戴爾 MD3220i 以進行擴展。
我們考慮過的可能選項,以及與它們一起的即時想法:
- 跨 NFS 數據儲存分佈虛擬機,並執行滿足給定數量虛擬機性能要求的 NFS 儲存。NFS 的擴展似乎更便宜,並且比塊級儲存更抽像一點,因此我們可以根據需要移動它。
- 添加更多 MD3220i 控制器/目標。儘管我們擔心這樣做可能會對 VMWare 如何處理具有大量目標的方式產生負面影響。
- 將所有磁碟從 Nearline SAS 交換到 SSD。這應該可以徹底解決 IOPS 問題,但也有明顯的副作用就是我們的儲存容量會被削減。而且它仍然非常昂貴。
- vSphere 5 有一個儲存設備。我們沒有研究這麼多,但它一定很好用嗎?
問題
你會在所有這些下執行什麼樣的儲存?它不需要擴展到另一個刀片中心,它只需要為所有這些虛擬機提供相對良好的性能。
我不是在尋找“購買 SAN x,因為它是最好的”答案。我正在尋找有關各種 SAN 技術(iSCSI、FC、FCoE、InfiniBand、NFS 等)、不同類型的儲存(SATA、SAS、SSD)以及處理 100 台 VM 儲存的方法(整合、分離)的想法,分片等)。
絕對歡迎任何想法,連結,指南,指針等。我也很想听聽我們已經考慮過的上述選項的想法。
非常感謝您的任何輸入!
2012 年 3 月 5 日更新
到目前為止,一些很棒的回复,非常感謝大家!
到目前為止,通過對這個問題的回答,我開始認為以下路線是這樣的:
- 將可用儲存分層到 VMWare 集群,並將 VM 磁碟放置在適合其工作負載的儲存上。
- 可能會使用能夠自動管理將數據放置到合適儲存的 SAN。
- Infiniband 看起來是在主機滿負荷時獲得所需頻寬的最具成本效益的方法。
聽起來絕對值得利用主要 SAN 供應商的售前服務來了解他們的情況。
我會繼續考慮這個問題一段時間。在此期間,任何更多的建議感激不盡!
一個好的 VMWare 儲存平台的關鍵是了解 VMWare 會產生什麼樣的負載。
- 首先,由於您託管大量伺服器,因此工作負載通常是隨機的。有很多 IO 流同時進行,並且沒有多少可以成功預記憶體。
- 其次,它是可變的。在正常操作期間,您可能會看到 70% 的隨機讀取,但是當您決定將 VM 移動到新的數據儲存或其他東西時,您會看到大量的 60GB 順序寫入。如果您對架構不小心,這可能會削弱您的儲存處理正常 IO 的能力。
- 第三,您環境的一小部分通常會產生大部分儲存工作負載。
為 VMWare 平台建構儲存的最佳方法是從基礎開始。
- 您需要能夠為大型隨機讀取工作負載提供服務,這意味著更小更快的驅動器,以及可能的 SSD。大多數現代儲存系統允許您根據訪問方式自動移動數據。如果您要使用 SSD,您需要確保這是您使用它的方式。它應該作為逐漸減少熱點的一種方式。無論您是否使用 SSD,能夠將所有工作放在所有驅動器上都是有益的,因此具有某種類型的儲存池的東西將是有益的。
- 您需要服務間歇性大寫的能力,它不太關心底層驅動器的主軸速度,但關心控制器堆棧的效率和記憶體的大小。如果您有鏡像記憶體(除非您願意在控制器發生故障時返回備份,否則這不是可選的),通常用於鏡像的兩個記憶體之間的頻寬將成為大型順序寫入的瓶頸。確保您獲得的任何東西都具有用於寫入記憶體的高速控制器(或集群)互連。盡最大努力獲得具有盡可能多埠的高速前端網路,同時在價格上保持現實。良好前端性能的關鍵是將儲存負載置於盡可能多的前端資源上。
- 您可以通過低優先級儲存層以及精簡配置來顯著降低成本。如果您的系統沒有自動將單個塊遷移到便宜的大/慢驅動器(例如近線 SAS 或 7200 RPM 和 2TB+ 大小的 SATA),請嘗試手動遷移。大型慢速驅動器是歸檔、備份、某些文件系統甚至低使用率伺服器的絕佳目標。
- 堅持儲存是 VAAI 集成的,以便 VMWare 可以取消分配 VM 的未使用部分以及數據儲存。