
很久之前,我記得那大概是在2005年,聽說過國外一家初創(chuàng)公司做了一種以太網(wǎng)口的硬盤,當(dāng)然硬盤本身不是他們做的,他們只是在硬盤上加上一個轉(zhuǎn)接板,專業(yè)說法叫做Dongle,實現(xiàn)基于以太網(wǎng)的SCSI協(xié)議傳輸,至于協(xié)議是否使用的就是iSCSI無從而知,對其具體細(xì)節(jié)也很不了解。當(dāng)時存儲技術(shù)在國內(nèi)還沒有怎么得到普及,所以感覺這種東西非常新鮮,竟然可以這么玩!當(dāng)然,這東西最后終究沒成氣候,逐漸淡出了業(yè)界。那時候,ATAoE,SCSIoE這種類似協(xié)議也一直有人在做,其目的就是拋棄TCPIP這種厚重的傳輸協(xié)議而轉(zhuǎn)為一種輕量級的適配到以太網(wǎng)的協(xié)議。但是目前來看,這類協(xié)議最終也沒得到推廣。
固態(tài)存儲——崛起!
8年過去了,這8年里發(fā)生了很多事情。
首先,企業(yè)級存儲系統(tǒng)在國內(nèi)得到了鋪天蓋地的應(yīng)用,從一開始曲高和寡到現(xiàn)在的遍地開花,各廠商的企業(yè)級存儲系統(tǒng)產(chǎn)品在這期間至少經(jīng)歷了4次升級換代,高端產(chǎn)品則經(jīng)歷了兩次。
其次,在業(yè)務(wù)層面,主機虛擬化的崛起,以及基于虛擬化之上的云計算架構(gòu)的崛起,以及互聯(lián)網(wǎng)后端架構(gòu)的變遷,海量存儲和大數(shù)據(jù)分析挖掘系統(tǒng)的廣泛應(yīng)用,這三大變革性事件對很多存儲技術(shù)、產(chǎn)品、廠商及生態(tài)產(chǎn)生了重大影響。
再次,底層技術(shù)的革新,固態(tài)存儲技術(shù)崛起,2012年應(yīng)該算是一個固態(tài)元年。業(yè)務(wù)和底層技術(shù)的變革,驅(qū)動著企業(yè)級存儲做出一輪又一輪的變化,一開始是內(nèi)部架構(gòu)的變化,比如Scale-Up到Scale-Out,然后就是訪問協(xié)議的變化,除了塊和文件,對象接口越來越被廣泛使用,再就是數(shù)據(jù)管理上的變化,企業(yè)級存儲其實對固態(tài)存儲介質(zhì)可謂是愛恨交織,明知道這小東西一定會顛覆自己苦心建立的基于機械盤的生態(tài)系統(tǒng),但又不能迎合潮流,出現(xiàn)了各種數(shù)據(jù)分層分級方案和技術(shù),以及所謂全固態(tài)存儲系統(tǒng)。
如果說在這8年里的前4年,企業(yè)級存儲算是慢慢悠悠地自我欣賞地發(fā)展,那么后4年基本是在小步快跑了。一下子爆發(fā)的眾多變化,都發(fā)生在后4年里,企業(yè)級存儲顯得應(yīng)接不暇、不知所措。云計算、大數(shù)據(jù)、固態(tài)存儲、開源、軟件定義,各方圍剿,使得商用企業(yè)存儲好像找不到出路,各個廠商絞盡腦汁規(guī)劃下一代產(chǎn)品到底應(yīng)該是個什么樣子,以及整體戰(zhàn)略需要怎么調(diào)整。
就在兩年前,國內(nèi)某存儲廠商為應(yīng)對海量低成本存儲場景,設(shè)計了一套與2005年時候國外那個廠商類似的方案,也就是在每塊磁盤驅(qū)動器上前置一個Dongle,其基于ARM處理器,這個Dongle相當(dāng)于一個Mini Storage Controller,功能方面,其在硬件層后端通過集成的SAS/SATA控制器訪問并管理這塊盤,前端則通過以太網(wǎng)口來傳輸封裝之后的訪問協(xié)議比如Object對象訪問協(xié)議,核心軟件層是一個精簡的Linux內(nèi)核,包含SAS/SATA Host驅(qū)動、以太網(wǎng)設(shè)備驅(qū)動、塊設(shè)備驅(qū)動、卷管理層、對象/文件管理層、對象訪問協(xié)議、TCPIP協(xié)議層以及管理監(jiān)控Agent等。也就是說,將一塊傳統(tǒng)的以Block形式訪問的磁盤通過加一個轉(zhuǎn)接板,變?yōu)榱艘粔K以對象Object形式訪問的磁盤,如果向其軟件層加入更多協(xié)議,那么還可以變?yōu)閕SCSI Target,NFS/CIFS Export,當(dāng)然一切實際上都受限于ARM的性能。每塊對象盤連接到以太網(wǎng)上,再通過一個或者多個冗余/AA的總控服務(wù)器來管理這些磁盤,并通過這個總控服務(wù)器集群向外提供空間和服務(wù)。
IP硬盤——玩玩?
也就在最近幾天,希捷與這家存儲廠商聯(lián)合推出了被命名為Kinetic的硬盤,宣稱其直接提供對象訪問接口,并向應(yīng)用提供API以調(diào)用進行數(shù)據(jù)訪問和監(jiān)控管理。這個產(chǎn)品相當(dāng)于把之前的轉(zhuǎn)接板去掉,把核心軟件直接跑在硬盤背面的控制芯片里。處理芯片的一般架構(gòu)是一個或者多個ARM/MIPS core與一堆外圍電路比如XOR、ECC/CRC、加密、壓縮、PHY等組成,而ARM/MIPS Core平時不參與數(shù)據(jù)的傳輸,只是控制數(shù)據(jù)的傳輸,否則會由于為數(shù)過多的內(nèi)存拷貝而性能根本達不到要求,所以一般來講一款處理芯片中的通用CPU模塊,絕大多數(shù)時間負(fù)載并不高,這也就為在處理芯片中集成更多的軟件功能提供了技術(shù)空間。
但是別指望這種低功耗CPU能勝任事務(wù)級在線處理,跑跑一般的數(shù)據(jù)收發(fā)、簡單的協(xié)議處理還是可以的;也別指望其能勝任高IOPS的場景,每一個IO處理耗費的CPU資源是不容小覷的,包括中斷、協(xié)議處理、內(nèi)存拷貝等在內(nèi)的流程對CPU周期耗費很大。但是低負(fù)載、以帶寬吞吐量大塊連續(xù)IO為主的場景下,這類處理器能夠很好地勝任,尤其是在只帶一塊磁盤的情況下,那就更是小菜一碟了。所以這種產(chǎn)品的基因決定了它的應(yīng)用場景,也就是比如冷數(shù)據(jù)存儲場景,或者備份等海量低成本存儲場景。
綜上,我們暫且簡稱這種硬盤為“IP硬盤”或者“對象硬盤”。其與傳統(tǒng)的存儲架構(gòu)本質(zhì)區(qū)別在于,傳統(tǒng)存儲控制器屬于集中式控制器,用一臺或者多臺集中式的高性能控制器,通過SAS/SATA適配器接入為數(shù)有限的磁盤,最小的比如Raid卡,比如Adaptec by PMC最新的產(chǎn)品可直連24盤或者通過擴展柜連接256盤,最大的比如高端商用企業(yè)存儲,可以管理多達3000多塊盤,前端終結(jié)了SAS協(xié)議,轉(zhuǎn)為使用FC或者iSCSI、NAS或者對象等協(xié)議,通過集中的單一的訪問點來訪問所有磁盤經(jīng)過虛擬之后的空間。而Kinetic的架構(gòu)則屬于分布式微型控制器,有多少磁盤就有多少個訪問點。
說到這里我們就要仔細(xì)地去分析一下,這種新架構(gòu)帶來的優(yōu)點和挑戰(zhàn)在哪里。毋庸置疑,其優(yōu)點是支持大規(guī)模并行訪問,因為訪問點是分布式的,有多少磁盤就有多少訪問點,那么應(yīng)用或者客戶端程序可以直接并行地訪問所有連接到以太網(wǎng)上的磁盤,體系效率較高。當(dāng)然,其代價就是訪問節(jié)點的管理上,需要被軟件定義。對于集中式的磁盤控制器,對磁盤的管理,比如監(jiān)控、容錯、性能優(yōu)化、空間管理等,都有集中控制負(fù)責(zé),上層不需要關(guān)心,而新架構(gòu)下,直接暴露了底層的磁盤,那么這些邏輯就需要被挪到上層軟件層中去執(zhí)行,也就是所謂軟件定義,那就需要用戶具有一定的技術(shù)開發(fā)能力去駕馭這個新架構(gòu),或者由廠商做這一層的開發(fā),但是相對于在外部設(shè)備里開發(fā)這一層來講,在用戶的OS里做這個管理層,其主要難度在于兼容性,用戶的OS千變?nèi)f化、環(huán)境千變?nèi)f化,兼容性很難保證。所以這類產(chǎn)品應(yīng)用到互聯(lián)網(wǎng)后端的可能性較大,一般企業(yè)會吃不消對其日常維護的開銷。
那么再看一下互聯(lián)網(wǎng)企業(yè),假設(shè),如果依然利用現(xiàn)有架構(gòu),比如1U通用服務(wù)器,加一個SAS/SATA Raid/HBA適配器,接入12/16/24盤,然后在服務(wù)器上進行空間管理、協(xié)議轉(zhuǎn)換,底層Raid控制器實現(xiàn)數(shù)據(jù)的小范圍冗余容錯及性能優(yōu)化,在所有服務(wù)器上運行分布式文件系統(tǒng)來執(zhí)行數(shù)據(jù)的大范圍容錯和均衡,這樣做的好處是對上層來講復(fù)雜度降低。同樣是1U服務(wù)器,如果訪問Kinetic架構(gòu),SAS/SATA Raid/HBA不需要了,直接通過以太網(wǎng),那么原本由SAS Raid卡做的工作,就需要被挪到軟件里去做,需要用戶自己或者廠商開發(fā)一層邏輯,而且這層邏輯要么是分布式部署的,要么是非對稱集中式部署在一個帶外控制管理節(jié)點上的,這種做法基本上就是將磁盤進行非對稱帶外集群化,供上層的服務(wù)器集群訪問。如果使用1Gb以太網(wǎng)連接每塊磁盤,其帶寬相對目前主流的6Gb SAS/SATA來講會降低,時延也會增加。
結(jié)論,不管是對于互聯(lián)網(wǎng)企業(yè)還是傳統(tǒng)企業(yè),一個集中控制設(shè)備或者軟件層都是需要的。Kinetic架構(gòu)的優(yōu)勢在于,降低了訪問粒度,提升了大范圍內(nèi)的訪問并行度;其劣勢在于,性能域擴大,管理域也隨之?dāng)U大,故障域也隨之增大,傳統(tǒng)1Gb以太網(wǎng)帶寬和響應(yīng)速度有限,對于冷數(shù)據(jù)這類場景,傳統(tǒng)架構(gòu)在性能、成本、管理上是否已經(jīng)真的無法滿足需求?是否有必要去這樣折騰,還是個需要考慮的問題。