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























