存儲的角度:我們真的需要萬兆以太網麼?

    在10Gbps的以太網出現以前,像iSCSI和NFS那樣的基於IP的存儲技術基本都停留在1Gbps的時代,那時2Gbps和4Gbps的光纖信道擁有至高無上的地位。現在,面對適用面廣,廉價的10GbE網絡硬件,許多人反而爭論起來了——真是夠諷刺的,世道的確是變了啊!

    當你開始認真研究它的時候,那些原始的吞吐量統計數據到底能起到多大的作用呢?10Gbps的速度給運維帶來的那些好處,多個1Gbps的連接無法提供嗎?要回答這些問題似乎很簡單,但是又不像看上去那麼簡單。

    推送數據

    當然,物理法則仍然存在:使用10GbE的管道,你可以推送的數據量大約是1GbE管道的10倍。但是,讓我們回過頭來,用現實的眼光來看一看這些數字。

    在現實生活中,使用一個1Gbps的連接,你可以獲得110MBps的iSCSI吞吐量——在配置正確,負載均衡也完美無缺的情況下,這個數字可能會翻倍。在我見過的一些10GbE測試平臺上,單個連接的推送速度大約是1,150MBps。

    這比1GBps要高一些。我承認還有許多優秀的案例,但是,我們中有多少人敢說一個正常的應用程序的確需要高速地遷移這麼多的數據(或者只是提供遷移這麼多數據的能力)呢?我敢打賭,就算在大型的企業,政府和學術界中,這樣的應用程序也是寥寥無幾的。

    一般來說,你遇到的最常見的存儲問題並不是對原始數據吞吐量的處理,而是對大量的,非常微小的,而且完全是隨機的I/O操作的處理。對於完整的數據庫應用程序來說,這些類型的負載更加常見,對於傳統的旋轉式磁盤來說,這些負載是最難處理的。

    這是因爲磁片旋轉的速度和磁頭的定位速度都是有限的。最後,一個相對重量級的磁盤的IOPS(每秒I/O的次數)也許只能達到20,000 4KB IOPS,原始的吞吐量也許只能達到80MBps——一個1GbE連接已經足夠用了。但是,由於磁盤延遲的限制,同樣的負載可能需要高於110 15K RPM的磁盤。對於這些類型的負載來說,存儲的瓶頸通常是磁盤子系統本身,而不是存儲設備之間的互聯速度。

    可以肯定的是,如果可以把當前的磁盤全部替換成超高速的SSD,那麼瓶頸又會變成存儲設備之間的互聯速度,甚至是服務器本身。但是現在,SSD那高昂的價格,以及相對較低的容量,導致它們很難引起的大家的注意(除了那些需要使用最高端的事務處理程序的人和那些預算十分充足的人)。如果你要把當前的磁盤全部替換成超高速的SSD,那麼10GbE的互聯速度纔是必須的,因爲只有這樣才能完全發揮出它的潛力。

    否則,除了特定用途的應用程序(例如:高碼率的視頻和圖像應用程序)以外,在生產環境下,你很少能看到磁盤負載可以“吃掉”10GbE帶寬的情況。但是,有一個重要的領域需要特別說明一下,那就是:備份。爲了保護我們日益增長的,堆積如山的數據,我們要不斷地進行備份。

    不像數據庫應用程序,備份通常會持續不斷地遷移大量的數據——通常遷移到高性能的磁帶驅動器,它們可以很輕鬆地承受高於1Gbps的連續吞吐量。如果你需要在一個夜間備份窗口中備份幾十個TB的數據,那麼,並行地運行大量的磁帶驅動器也許是實現這個目標的唯一方法。如果你採取了這種方法,並且不考慮其他因素的話,那麼只有10GbE的互聯速度纔可以確保你的SAN能夠滿足你的備份設備的需要。

    減少延遲

    10GbE的以太網能提高性能的另外一個領域是延遲領域。但是,它們之間的差別也許並不想你想象的那樣明顯。除了一些磁盤問題之外,還有兩個和延遲有關的問題必須要考慮:傳輸和序列化。

    傳輸是指數據通過特定介質(光纖,銅線,等等)的速度。無論是實施10GbE的以太網還是1GbE的以太網,只要使用的介質相同,那麼絕對不會對傳播速度造成什麼影響的——電子或光學信號從導線的一端傳送到導線另外一端的速度都是一樣的,這和你把多少數據放入了那個管道沒有什麼關係。另一方面,序列化是指你把指定數量的數據放入那個管道的速度。在這方面,10GbE的以太網可以快10倍。

    在延遲時間中,序列化時間只佔很小的一部分。連接層的巨大延遲主要是由連接的每一端的接口和系統引入的。在一天快要結束的時候,你可能會發現,對於一個特定的包來說,它通過一個調整好的1GbE的連接的往返時間是135μs,而它通過一個10GbE的連接的往返時間只能下降到75μs——大多數其他的開銷都是來自於設備的兩端,而不是來自於連接本身。

    雖然10GbE以太網的延遲時間比1GbE以太網的延遲時間要少,但是,一般來說,這個差別並不會對存儲性能造成太大的影響——尤其是你使用傳統的旋轉式磁盤的時候。當你的存儲設備要花費長達100倍的時間來響應的時候,減少60微秒的連接延遲時間並不會起到什麼明顯的效果。如果你大量使用SSD的話,那麼,相對於存儲的延遲時間來說,這個連接延遲時間所佔的比例會更大一些,也許在這種情況下,值得進行這項額外的投資。

    可管理性和聚合

    10GbE以太網的亮點是容易管理。雖然通過多個1GbE的連接,使用現有的硬件和軟件也可以實現MPIO (Multi-Path IO),但是配置,監控和管理起來都比較痛苦。甚至佈線也成爲了一種痛苦——一個1GbE的SAN,在兩個冗餘控制器之間可能有8個或8個以上的1GbE連接,而且,一個1GbE的SAN通常會使用上限爲4個控制器的主動/被動控制器架構。

    即使在存儲設備上你不選擇10GbE的以太網,你也應該認真地考慮一下在服務器端使用它——尤其是你處在虛擬化的環境下。一個支持iSCSI的虛擬主機主機,如果使用1GbE網絡的話,每次(也許是每兩次)進行主機管理,虛擬機通信,以及iSCSI訪問至少會消耗掉6個1GbE的端口。你可以用一對冗餘的10GbE接口替換掉那6個接口,這是很容易做到的,你可以通過這對接口來做任何事情,雖然你的端口消耗量和電纜數顯著地減少了,但是你的總體可用帶寬卻增加了。

    此外,如果你使用“刀片”架構的話,那麼你可以通過使用智能的聚合網絡(converged networking)進一步深化這個模型。HP爲他們的C類“刀片”產品提供的Virtual Connect模塊就是一個很好的例子(當然,這方面的例子不止這一個)。通過這個VC(Virtual Connect)模塊,你可以在“刀片”服務器內置的10GbE接口上創建多個“Flex NIC”,它們每個都有自己的帶寬限制和網絡設置。一個完整的“刀片”框架也許只需要兩個或四個外部的10GbE連接就可以連接到你的物理交換網絡的其餘部分了——令人難以置信的管理和成本優勢。

    不要衝動,衝動是“魔鬼”

    概括起來,10GbE的IP存儲比1GbE的IP存儲更快,更容易管理,但是,它還是太貴了,並且,你可能根本就不需要它(但是如果你能得到它,那麼你會喜歡它的)。

    當然,在接下來的幾年裏,這些陳述也許會變得十分不合時宜,就像我在幾年之前(那時我的筆記本還沒有Gb級的接口)說的話一樣:“除了核心的網絡骨幹之外,沒有人會需要1GbE的網絡。”或者,再往前幾年,人們會說:“除了核心的網絡骨幹之外,沒有人會需要100Mbps的網絡。”或者,許多,許多年以前,人們會說:“LocalTalk比較不錯——以太網太貴了。”歡迎大家在評論中談談自己的想法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章