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