古老的岷江水順著漫漫的歷史長(zhǎng)河流淌到今天,站在都江堰渠首安瀾索橋上向下看去,它依然是那么清澈。岷江上游水流湍急,進(jìn)入成都平原以后,地勢(shì)突然低平,水勢(shì)減緩,所挾帶的大量沙石沉積下來(lái),淤塞河道,時(shí)常泛濫成災(zāi)。兩千多年前,秦蜀郡郡守李冰父子創(chuàng)造性的提出“深淘灘、低作堰”的設(shè)計(jì)理念,并興建了都江堰水利工程,保證了大約三百萬(wàn)畝良田的灌溉,使成都平原成為旱澇保收的“天府之國(guó)”。至今都江堰水利工程仍然灌溉著成都平原,是世界上少有的保存兩千多年至今仍然在服務(wù)的水利工程。
華為存儲(chǔ)操作系統(tǒng)
距離都江堰不到四十公里的華為存儲(chǔ)研發(fā)中心秉承都江堰“深淘灘、低作堰”的設(shè)計(jì)理念,創(chuàng)新地開發(fā)出來(lái)系列的存儲(chǔ)產(chǎn)品,這些產(chǎn)品的核心——存儲(chǔ)操作系統(tǒng)則是該設(shè)計(jì)理念的集中體現(xiàn)。
操作系統(tǒng)(Operating System)是一種特殊的系統(tǒng)軟件,它負(fù)責(zé)管理整個(gè)計(jì)算機(jī)系統(tǒng)的軟硬件資源,一個(gè)良好的操作系統(tǒng)對(duì)計(jì)算機(jī)至關(guān)重要。同理,存儲(chǔ)操作系統(tǒng)就是存儲(chǔ)系統(tǒng)中負(fù)責(zé)管理所有存儲(chǔ)資源的系統(tǒng)軟件,它對(duì)于存儲(chǔ)設(shè)備的可靠性、功能、性能起決定性作用。在存儲(chǔ)業(yè)界,設(shè)計(jì)一個(gè)存儲(chǔ)產(chǎn)品大概有兩種思路,一種思路偏硬件,即采用特殊的硬件形態(tài)和存儲(chǔ)專用芯片作為基礎(chǔ)構(gòu)件存儲(chǔ)系統(tǒng)。這類系統(tǒng)一般設(shè)計(jì)簡(jiǎn)單可靠,單位成本的性能比較高。但是由于硬件尤其是專用的芯片改動(dòng)成本較高、研發(fā)周期長(zhǎng),因此這種設(shè)計(jì)越來(lái)越不適應(yīng)存儲(chǔ)技術(shù)的快速發(fā)展。另一種的思路偏軟件,即基于通用的硬件,比如說(shuō)x86體系結(jié)構(gòu),將存儲(chǔ)的基本功能設(shè)計(jì)為基礎(chǔ)的系統(tǒng)軟件,然后將這套軟件部署在不同系列的硬件平臺(tái)之上,快速形成豐富的產(chǎn)品組合。這個(gè)基礎(chǔ)的軟件就是存儲(chǔ)操作系統(tǒng),如NetApp的統(tǒng)一存儲(chǔ)操作系統(tǒng)Data ONTAP,EMC Symmetrix的存儲(chǔ)操作系統(tǒng)Enginuity。
一款存儲(chǔ)的操作系統(tǒng)的生命周期很長(zhǎng),一款優(yōu)秀的存儲(chǔ)操作系統(tǒng)可能在設(shè)計(jì)之初非常領(lǐng)先,但是隨著新技術(shù)、新功能不斷涌現(xiàn),由于軟件架構(gòu)限制,即使曾經(jīng)優(yōu)秀的操作系統(tǒng)也慢慢顯現(xiàn)疲態(tài)。比如說(shuō)Data ONTAP在設(shè)計(jì)之初即采用統(tǒng)一存儲(chǔ)的設(shè)計(jì)理念,通過(guò)WAFL融合了文件系統(tǒng)和塊設(shè)備層,同時(shí)在底層RAID技術(shù)、快照技術(shù)等關(guān)鍵點(diǎn)上具有創(chuàng)新性的設(shè)計(jì),使Data ONTAP成為業(yè)界最優(yōu)秀的存儲(chǔ)操作系統(tǒng)。NetApp憑借這塊先進(jìn)的操作系統(tǒng)快速推出產(chǎn)品,成為存儲(chǔ)市場(chǎng)的三強(qiáng)之一。時(shí)至今日,雖然Data ONTAP依然可以說(shuō)一款優(yōu)秀的存儲(chǔ)操作系統(tǒng),但是其弱點(diǎn)和限制也逐漸顯現(xiàn)。
華為自研的存儲(chǔ)操作系統(tǒng)取名XVE,它的全稱是“Extreme Virtual Engine”。 研發(fā)XVE的初衷源于華為要開發(fā)一款高端存儲(chǔ),進(jìn)而以這款存儲(chǔ)產(chǎn)品的軟件做為平臺(tái)移植到全系列的存儲(chǔ)產(chǎn)品上去。在預(yù)研的初期,正是存儲(chǔ)虛擬化得到廣泛認(rèn)可的時(shí)候,業(yè)界也不斷推出所謂的“虛擬化存儲(chǔ)”。設(shè)計(jì)團(tuán)隊(duì)經(jīng)過(guò)仔細(xì)的研究發(fā)現(xiàn),發(fā)現(xiàn)某些廠商所謂的虛擬化只是在原來(lái)的傳統(tǒng)技術(shù)上包裝一層虛擬化的外衣,技術(shù)上沒有本質(zhì)變化。但是華為沒有選擇這條“偽虛擬化”的捷徑,毅然采用了真正的虛擬化設(shè)計(jì),實(shí)現(xiàn)從磁盤虛擬化到卷虛擬化從而使得徹底解決了在大容量存儲(chǔ)下故障恢復(fù)時(shí)間的問(wèn)題和性能均衡問(wèn)題。
高可靠性
XVE作為一款存儲(chǔ)操作系統(tǒng),高可靠性是設(shè)計(jì)的重中之重。為實(shí)現(xiàn)所有代碼的可控性,XVE重寫了通用操作系統(tǒng)的硬盤管理模塊,使之成為一個(gè)存儲(chǔ)專用的硬盤管理模塊。它直接和芯片驅(qū)動(dòng)、硬盤交互,按照上層業(yè)務(wù)特點(diǎn)有針對(duì)性地處理硬盤的故障。并且,硬盤管理與華為自研的SSD硬盤相結(jié)合,最大化發(fā)揮SSD的性能優(yōu)勢(shì),提高SSD的使用壽命和可靠性。
基于可靠的硬盤管理模塊,XVE針對(duì)RAID技術(shù)采用大膽創(chuàng)新,采用了業(yè)界先進(jìn)的RAID2.0+技術(shù)。從所周知,RAID重構(gòu)過(guò)程中數(shù)據(jù)沒有可靠性保障,如果在重構(gòu)完成前再出現(xiàn)壞盤就將造成數(shù)據(jù)丟失,不可恢復(fù);所以對(duì)于一個(gè)存儲(chǔ)系統(tǒng)而言其可靠性的最重要標(biāo)志就是其RAID重構(gòu)時(shí)間越小越好。傳統(tǒng)硬盤重構(gòu)的瓶頸主要在目標(biāo)盤(熱備盤),因?yàn)樗谐蓡T盤將所有數(shù)據(jù)讀出后全部寫入到目標(biāo)盤,目標(biāo)盤寫帶寬就成了整個(gè)重構(gòu)速度的關(guān)鍵,以一塊2TB 7.2K rpm盤為例,重構(gòu)時(shí)平均寫入速度為30M/s左右,完成重構(gòu)時(shí)間長(zhǎng)達(dá)18個(gè)小時(shí)。華為存儲(chǔ)RAID 2.0技術(shù)采用虛擬化RAID技術(shù),消除RAID的重構(gòu)性能瓶頸——當(dāng)一個(gè)物理硬盤故障時(shí),同時(shí)更多的目標(biāo)硬盤參加重構(gòu),大大縮短重構(gòu)時(shí)間,從而提高了存儲(chǔ)系統(tǒng)的可靠性。同時(shí)XVE為了保證數(shù)據(jù)的一致性,XVE支持端到端的數(shù)據(jù)校驗(yàn),能夠監(jiān)測(cè)到任何偶然的數(shù)據(jù)錯(cuò)誤,并自動(dòng)修復(fù),從而保證了關(guān)鍵業(yè)務(wù)的數(shù)據(jù)一致性。
作為一款支持Scale-out多控的存儲(chǔ)OS,XVE設(shè)計(jì)了專用的集群管理系統(tǒng)。通過(guò)與自研硬件、驅(qū)動(dòng)的緊密結(jié)合,最大化的提高了節(jié)點(diǎn)間故障切換時(shí)間。比如,典型情況下,如果一個(gè)控制器發(fā)生故障,該控制器的IO能在1秒之內(nèi)切換到另外一個(gè)控制器。
高性能
為了追求極致的性能,XVE對(duì)通用操作系統(tǒng)的線程調(diào)度、內(nèi)存管理等進(jìn)行了優(yōu)化,使其更適合存儲(chǔ)處理大規(guī)模IO并發(fā)處理的特點(diǎn)。XVE采用統(tǒng)一的IO線程調(diào)度機(jī)制,最大化的減少線程切換帶來(lái)的時(shí)延開銷。內(nèi)存管理也繞開通用OS復(fù)雜的內(nèi)存管理機(jī)制,直接在底層實(shí)現(xiàn)專用高效的內(nèi)存管理機(jī)制。為了最大的利用節(jié)點(diǎn)間通信的性能,在底層實(shí)現(xiàn)了低時(shí)延高帶寬的通信模塊。為了保障系統(tǒng)端到端的QoS,線程調(diào)度、內(nèi)存管理和節(jié)點(diǎn)通信都擁有相應(yīng)的優(yōu)先級(jí)控制機(jī)制。以上機(jī)制都是XVE為存儲(chǔ)系統(tǒng)量身定做的,基于這些基礎(chǔ)框架,XVE擁有了一個(gè)高性能的基礎(chǔ)。
高效率
XVE作為一款面向海量數(shù)據(jù)、虛擬化環(huán)境的存儲(chǔ)OS,對(duì)于存儲(chǔ)資源實(shí)現(xiàn)高效管理和自動(dòng)資源調(diào)配。它支持資源按需分配,數(shù)據(jù)被均勻分布到陣列內(nèi)所有的硬盤上,可以防止局部硬盤過(guò)熱,當(dāng)存儲(chǔ)池中的硬盤數(shù)量增加或減少,以及隨業(yè)務(wù)變化硬盤讀寫壓力發(fā)生變化后,系統(tǒng)通過(guò)IO記錄智能分析計(jì)算,并自動(dòng)調(diào)節(jié)熱點(diǎn)Extent在同一類硬盤上的實(shí)際存儲(chǔ)位置以確保每一塊硬盤的壓力均衡,從而實(shí)現(xiàn)均衡硬盤磨損,有效降低故障率、延長(zhǎng)硬盤壽命。同時(shí),XVE還可以根據(jù)數(shù)據(jù)的訪問(wèn)熱度在不同存儲(chǔ)介質(zhì)之間實(shí)現(xiàn)動(dòng)態(tài)分級(jí)存儲(chǔ),分級(jí)存儲(chǔ)實(shí)現(xiàn)自動(dòng)監(jiān)控,分析出冷數(shù)據(jù)和熱數(shù)據(jù),將數(shù)據(jù)遷移至合適的存儲(chǔ)介質(zhì)。總而言之,XVE是一款針對(duì)存儲(chǔ)系統(tǒng)的特點(diǎn),端到端優(yōu)化、端到端可控的存儲(chǔ)操作系統(tǒng)。
展望
“深淘灘,低作堰”是都江堰的治水名言,深淘灘是指河道要深淘,深淘的標(biāo)準(zhǔn)是古人在河底深處預(yù)埋的“臥鐵”。歲修淘灘要淘到臥鐵為止,才算恰到好處,才能保證灌區(qū)用水。正如XVE的采用底層虛擬化技術(shù),對(duì)創(chuàng)統(tǒng)RAID技術(shù)進(jìn)行了深刻地創(chuàng)新,為系統(tǒng)的提供堅(jiān)實(shí)可靠的基礎(chǔ)。低作堰就是說(shuō)飛沙堰有一定高度,高了進(jìn)水多,低了進(jìn)水少,都不合適,自動(dòng)調(diào)節(jié)流入成都平原的水量。正如XVE的智能資源管理,使得數(shù)據(jù)能自由的流動(dòng),隨需地?cái)U(kuò)展。“深淘灘,低作堰”看似平平常常、簡(jiǎn)簡(jiǎn)單單的,但卻是中國(guó)古代人民智慧的結(jié)晶,XVE將這個(gè)理念運(yùn)用到設(shè)計(jì)中,并且安裝了XVE這顆存儲(chǔ)之心的中端、高端存儲(chǔ)產(chǎn)品已經(jīng)規(guī)模應(yīng)用,在市場(chǎng)上不斷取得客戶的認(rèn)可。相信有一天XVE會(huì)和華為存儲(chǔ)一道取得更大成功,成為國(guó)人自主創(chuàng)新的驕傲。