毫無(wú)疑問(wèn)I/O是計(jì)算機(jī)行業(yè)必須攻克的下一個(gè)障礙。摩爾定律一直在發(fā)揮作用,計(jì)算機(jī)處理器的速度基本上每隔12到18個(gè)月提高一倍。內(nèi)存的速度也保持了和CPU一樣的快速發(fā)展。因此CPU和RAM能夠以相匹配的速度協(xié)調(diào)發(fā)展。在網(wǎng)絡(luò)交換領(lǐng)域,每隔3到5年就會(huì)在技術(shù)上有一個(gè)飛躍。10Gb/s以太網(wǎng)(10GbE)已經(jīng)成為主流的部署,40Gb/s的產(chǎn)品也發(fā)布了,帶寬是足夠了。
但這一切優(yōu)勢(shì)可能會(huì)被I/O拉后腿。I/O一直嚴(yán)重影響著應(yīng)用程序的性能,多年來(lái)I/O一直是性能的短板所在。
為了弄清楚為什么,我們需要從底層說(shuō)起。I/O是一個(gè)設(shè)備發(fā)送和接受數(shù)據(jù)的傳輸器,由發(fā)起I/O調(diào)用的文件系統(tǒng)或操作系統(tǒng)控制著。一個(gè)SCSI調(diào)用指令會(huì)通過(guò)HBA/NIC/CAN卡,穿過(guò)網(wǎng)絡(luò),到達(dá)SCSI設(shè)備。然后,磁盤(pán)陣列的存儲(chǔ)控制器接收并處理調(diào)用指令,數(shù)據(jù)就會(huì)被從磁盤(pán)中取出,或被寫(xiě)入磁盤(pán)。一直以來(lái),I/O的問(wèn)題所在是從磁盤(pán)中讀寫(xiě)所需要的時(shí)間太長(zhǎng)了。I/O至少滯后了30年,而且因?yàn)槊磕甑倪M(jìn)步很小,差距還在逐年擴(kuò)大。
但現(xiàn)在不一樣了。
NAND閃存芯片可能是縮小差距的希望所在。閃存被認(rèn)為是解決過(guò)去三十年內(nèi)I/O問(wèn)題的最好方案。有了固態(tài)硬盤(pán)(SSD),數(shù)據(jù)的傳輸速度就能夠滿足整個(gè)系統(tǒng)峰值性能的要求,數(shù)據(jù)就能夠匹配計(jì)算/內(nèi)存的性能,網(wǎng)絡(luò)和總線上的數(shù)據(jù)就能快如閃電地來(lái)回傳輸。
不僅如此。在很多方面,Vmware和其他虛擬機(jī)監(jiān)控管理器受到限制:簡(jiǎn)單的應(yīng)用以虛擬機(jī)的方式運(yùn)行沒(méi)有問(wèn)題,但如果要把關(guān)鍵應(yīng)用系統(tǒng)也虛擬化,I/O障礙就必須先解決掉。沒(méi)有哪個(gè)IT機(jī)構(gòu)會(huì)將一個(gè)對(duì)延遲很敏感,I/O密集型的應(yīng)用(通常加載在專用服務(wù)器上且被調(diào)優(yōu)運(yùn)行)放在虛擬機(jī)環(huán)境中,除非虛擬機(jī)環(huán)境下I/O的性能等同于或比物理機(jī)環(huán)境下更優(yōu)。
要求苛刻的應(yīng)用——例如高性能計(jì)算(HPC)、地震分析、生物、制藥、媒體和娛樂(lè)以及天氣預(yù)報(bào)等,會(huì)因?yàn)镮/O問(wèn)題而受到阻礙甚至被迫停止。解決I/O困境的投入是非常大的。
固態(tài)存儲(chǔ)僅僅是解決問(wèn)題的曙光,現(xiàn)在仍不能確定它應(yīng)該怎樣和從哪里入手來(lái)解決I/O的問(wèn)題。簡(jiǎn)單的解決之道是將固態(tài)硬盤(pán)做成與傳統(tǒng)磁盤(pán)一樣的外形尺寸,這樣可以直接把他們插入磁盤(pán)陣列中使用。這是能快速發(fā)揮作用的最簡(jiǎn)單方式,但只解決了一部分問(wèn)題。陣列控制器很快就成為了瓶頸,因?yàn)樗鼈儚膩?lái)就不是專為如此強(qiáng)勁的存儲(chǔ)設(shè)備而設(shè)計(jì)的。戴爾、EMC、惠普、日立數(shù)據(jù)、 IBM以及幾乎所有的數(shù)據(jù)存儲(chǔ)提供商提供這類產(chǎn)品。
為了克服存儲(chǔ)陣列控制器的局限性,許多供貨商已經(jīng)開(kāi)發(fā)了新的控制器來(lái)與固態(tài)驅(qū)動(dòng)器的速度相匹配。這種陣列可以使對(duì)延遲敏感的應(yīng)用性能提高4到10倍。這類供貨商包括GridIron系統(tǒng)公司、SolidFire公司、Violin Memory公司等。
閃存還有另外一種用法,它在I/O到達(dá)存儲(chǔ)陣列之前捕獲數(shù)據(jù),省掉數(shù)據(jù)從總線到HBA/NIC/CAN卡,穿過(guò)網(wǎng)絡(luò),再?gòu)腍BA/NIC/CNA返回等一系列傳輸路徑。在這種解決方案里,閃存安裝在PCIe卡上,PCIe卡就插在服務(wù)器上。對(duì)延時(shí)敏感的數(shù)據(jù)就保存在該卡的閃存中,相關(guān)的I/O被該卡捕獲并進(jìn)行本地處理。這種情況下,驅(qū)動(dòng)程序是非常關(guān)鍵的,它們通常由卡制造商提供。獲得的性能是非常顯著的,因?yàn)槿サ袅艘鹪L問(wèn)延遲的外部設(shè)備。這種模式就好像將內(nèi)存變成了磁盤(pán)。缺點(diǎn)是只有安裝了固態(tài)硬盤(pán)卡的服務(wù)器才具有這種I/O性能。這方面的供貨商包括IO Trubine、Fusion-io、VeloBit等公司。
另外一個(gè)應(yīng)用方向是將閃存作為存儲(chǔ)陣列的前端緩存,例如像NetApp的Flash Cache(閃存緩存)。在這種情況下緩存要被設(shè)計(jì)得足夠聰明,能夠感知并自動(dòng)駐留應(yīng)用程序頻繁訪問(wèn)的數(shù)據(jù)。與存儲(chǔ)陣列中裝載的SSD(數(shù)量不可能太多)不同,閃存的好處可以為整個(gè)陣列的數(shù)據(jù)訪問(wèn)加速。
這類應(yīng)用趨勢(shì)正衍生出越來(lái)越多的變化。舉個(gè)例子,我們已經(jīng)可以看到來(lái)自Alacritech和Avere系統(tǒng)公司這類供貨商的產(chǎn)品,他們把混裝了DRAM、閃存和磁盤(pán)驅(qū)動(dòng)器(HDD)的機(jī)柜置于一堆NAS機(jī)柜的前端,從而使傳統(tǒng)NAS系統(tǒng)的性能煥發(fā)了新生。幾乎每個(gè)創(chuàng)新企業(yè)都有創(chuàng)新的產(chǎn)品,現(xiàn)在還看不出那種方式將最終成為主流。
現(xiàn)在是解決I/O困擾的攻堅(jiān)時(shí)期。磁盤(pán)作為存儲(chǔ)的中流砥柱產(chǎn)品,時(shí)間已經(jīng)太長(zhǎng)了。現(xiàn)在,傳統(tǒng)的I/O模式已經(jīng)開(kāi)始發(fā)生徹底的改變。你會(huì)看到由此帶來(lái)的性能和效率收益將是跨越式的,遠(yuǎn)超你的想象。