華云網際游峰:像用手機一樣使用超融合技術
原創【51CTO.com原創稿件】超融合,是當前非常熱門的話題。
超融合技術解決了以往傳統硬件、軟件復雜的選型過程,簡化了廠商服務用戶的中間環節,加快了新一代數據中心的實現,具有明確的市場應用前景。目前,超融合技術與應用蓬勃發展,已經在政府、教育、企業、醫療、電力、金融等領域獲得大量部署和應用。在2016中國超融合技術論壇上,筆者非常有幸的采訪到了華云網際創始人游峰先生和王勁凱先生,就超融合的相關話題以及華云網際的裸金屬技術進行了交流。
一、像用手機一樣使用超融合技術
談到超融合,游峰先生認為超融合是把服務器、存儲和網絡設備三合一了。
華云網際創始人游峰先生
在2000年以后,無論網絡設備還是存儲設備,硬件的本質上其實并沒有太大的變化,如果把思科的交換機和EMC的存儲設備拆開來你會發現它們實際上并沒有太多的差別,也就是說在服務器上加入一些網卡就是交換機硬件,加入大量硬盤就是存儲硬件,配合不同的操作系統就構成了不同的應用設備。
這種分別部署的方式,存在著很多的問題,其中最為突出的就是CPU的利用率比較低。游峰先生表示,即然硬件本質上并沒有太多的差別,那何不在一臺服務器中放入三顆CPU,分別運行計算系統、存儲系統和網絡系統,這就是超融合的三合一。這樣的好處是不但提高了設備的利用率,而且讓三臺機器變成一臺,中間的連線少了,占地少了,成本降低了,可靠性提高了。
超融合技術不但解決了分布式存在以上各種問題,最重要的是要解決了易用性的難題。游峰先生認為,個人電腦是大型計算機的超融合,手機是個人電腦的超融合,把個人計算機框化到一個手機上,加入了觸摸技術,這樣老人小孩都可以用了,就把使用門檻***降低了。所以,超融合的重點是解決易用性的問題。工廠就應該只有工人,學校就應該只有老師,沒有專業的IT人員。超融合讓易用難度大幅降低,因此工人和老師也可以管、可以用他們的IT設備,游峰先生這么認為。
此外,超融合不單單是解決了易用性的問題,同時也讓使用成本進一步降低。比如現在筆記本電腦基本上是人手一個,但是只有上過大學,會打字的才會用,一般老人小孩都不會用。超融合同樣存在這樣的問題。此前,醫院、工廠和學院的傳統IT必須需要專家,但醫院、工廠和學校里沒有專家,所以超融合不僅僅是解決一個易用性,還解決了買的起用不起的問題,因為買的時候并沒有花多少錢,但大部分都不會用,必須請專家;另外,壞了也沒人修。所以,超融合就很好的解決了這些問題,讓使用成本降到***。
二、軟件定義存儲,不應該成為制約系統性能的瓶頸
軟件定義存儲是超融合里面必不可少的一點。
在Flash之前,存儲介質性能要嚴重滯后于其它硬件性能的發展。在Flash時代,介質性能已經不再是問題了,但操作系統卻成為了影響系統整體性能的瓶頸,這是因為Linux標準的API并沒有提供高性能的場景設計。
談到軟件定義存儲,華云網際聯合創始人王勁凱先生在采訪開始就給筆者介紹了在Flash時代軟件定義存儲所面臨的性能無法提升的難題。他表示,大多數軟件定義存儲都是實現在linux用戶空間。無論你在一個設備上插入多少硬件,插入多少資源,都會發現一個節點一二十萬iops就到了這些軟件定義存儲的上限了,這是因為Linux系統的任務調度,內存管理,以及系統調用,都是非常緩慢,完全不適合Flash時代的需求。如何解決繞開Linux系統,充分表現出Flash的性能呢?
這里主要通過兩個層面來考慮,1、硬件的訪問繞過操作系統(stack-bypass),2、軟件的運行繞過操作系統(os-bypass)
stack-bypass這部分業內已經有相對成熟的技術,相對來說容易實現。比如英特爾提供的DPDK/SPDK,Mellanox的RDMA,都不需要經過操作系統就可以直接訪問硬件,我們推出的裸金屬架構采用了這樣的解決方案。
os-bypass難度相對較大。比如內存訪問,裸金屬技術首先要繞過操作系統的內存管理,直接訪問物理內存,自己來實現內存管理,這中間要考慮NUMA,染色等問題。這部分工程量非常大。其次,任務調度也要考慮的非常清楚。過去解決高并發問題的時候,大家就會采用多線程的機制。但是,你會發現多線程一般在數百并發的時候會變得比較困難。在這種情況下,我們引入了協程技術,就是通過任務之間協作來分配時間片,每個任務處理完之后自動放棄時間片,而不是操作系統讓他強制放棄時間片
另外,在事件處理上,過去通過操作系統標準的實現,每個都跟時間有關,包括硬件系統的時鐘中斷。但是,這個技術并不是非常的高效,在這方面我們采用polling技術,沒有時間延期的。在多核同步上,目前 CPU的核數越來越多,過去編程的時候大家會采用生產者、消費者模型,用線程用來處理任務,但是到現在不再合理了,多核同步并不是一個非常高效的方案,這主要是因為NUMA和cachemiss問題,雖然大家說NUMA問題CPU解決的還可以,但是不夠好。
雖然無鎖隊列能夠一定程度上解決這個問題,但是我們幾乎沒有使用,大部分情況下采用run-complete模型,每個CPU的核從他接受到任務,到完成任務中間不再任何跳轉。避免隱性的CPU開銷。
通過以上的方案,我們已經拿掉盡可能多的環節,包括進出Linux的網絡堆棧,包括Linux的存儲堆棧,拿掉之后除了我們自有的軟件堆棧之外,剩下的流程全是在硬件上運行的。我們自有的軟件堆棧,每個IO目前壓縮到6微秒,并且還有一些優化空間。
通過裸金屬軟件定義存儲技術的應用,讓存儲的性能與硬件性能幾乎完全一致,它不帶來硬件性能的任何衰減。
三、存儲系統必須做到***的萬無一失
在采訪的過程中,談到創業歷程和產品演變。游峰先生表示,之所以選擇存儲行業,一是因為存儲的成本非常高。在基礎設施建設上,軟件是數據庫最貴,硬件是存儲最貴。例如銀行的數據是存放在數據庫上面的,能夠讓我們很容易的訪問數據,但是數據庫是存在存儲上,存儲是把硬件介質組成一個高可用的大存儲設備,這里面放的都是用戶的數據,是不能丟的。所以這個就是為什么軟件數據庫最貴,硬件是存儲最貴,因為他都是有狀態的。一臺服務器,一臺交換機,出了故障可以隨時換掉,但是數據庫和存儲必須保證***的萬無一失。
二是當時國內幾乎沒有核心的存儲技術,都是被非中國企業壟斷的。在當時,服務器已經國產化了,有聯想、曙光、浪潮、長城;網絡也國產化了,有中興、華為、華三等。但是,存儲在國產化進程中非常緩慢,所以***選擇了存儲行業。
從2007年開始技術研發,時至今日已經有九年的時間了,為何會選擇此時走出來,游峰先生有自己的觀點。他認為,一個技術產品,不管是Orace還是微軟,一般都要到第三個版本才會真正穩定下來,我們已經演進到了第四個版本,不但穩定好、功能強大,包括性能出色,可以把硬件性能全部發揮出來。這是為什么我們低調了這么多年現在終于可以亮相了的最主要原因,因為我們認為我們已經把產品跟技術做好了,可以放心給用戶使用了,已經對我們的產品有著足夠的信心,可以走到前臺,也能夠拿出來與大家進行分享了。
【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】