西瓜哥第一次關(guān)注Hedvig的時(shí)候,是去年學(xué)習(xí)Docker的時(shí)候(參見(jiàn)Docker都不懂,搞啥子存儲(chǔ)嘛?)。不過(guò),那個(gè)時(shí)候,SERVER SAN產(chǎn)品見(jiàn)多了,也沒(méi)有覺(jué)得Hedvig怎么樣。
但今年Gartner把Hedvig評(píng)為存儲(chǔ)的Cool Vendor,讓我有點(diǎn)意外,但還是沒(méi)有太在意這個(gè)廠商。
SERVER SAN里面,我關(guān)注比較多的還是VMWware VSAN和EMC ScaleIO。關(guān)于這兩個(gè)產(chǎn)品,我也寫過(guò)很多學(xué)習(xí)心得,就不再一一列舉。但是,就在去年,Hedvig把EMC SacleIO EMEA(歐洲、中東和非洲)的頭Bam挖了過(guò)去。
還有EMC ScaleIO的一個(gè)樣板點(diǎn)大客戶Van Dijk Education也變節(jié)了,把EMC的ScaleIO替換為Hedvig。
這兩件事情,讓我突然對(duì)Hedvig產(chǎn)生了濃厚的興趣。為什么這個(gè)初創(chuàng)公司這么厲害,其產(chǎn)品到底有什么特點(diǎn),讓EMC ScaleIO怎么難受?
從IT Central Station社區(qū)看到,由于Hedvig是統(tǒng)一的SERVER SAN資源池,同時(shí)支持塊、文件和對(duì)象,因此大部分用戶首先把它和Red Hat Ceph做比較,其次才是Nutanix,ScaleIO等。
大家知道,Hedvig是閉源的,而Ceph是開(kāi)源的。除了開(kāi)源和閉源,它們還有什么不同嗎?
從Hedvig自己的比較看,雖然Hedvig和Ceph從大的功能上非常相似,都是統(tǒng)一的資源池,但內(nèi)部架構(gòu)大大不同,最重要的不同是Ceph的本質(zhì)是一個(gè)對(duì)象存儲(chǔ),其塊和文件服務(wù)都是基于對(duì)象提供的,因此性能上不如Hedvig。Hedvig宣傳其塊性能要比Ceph高7-8倍。不過(guò),這不是也打擊了VMware的vSAN嗎?因?yàn)槠涔俜叫麄髌涞讓右彩菍?duì)象存儲(chǔ)(參見(jiàn)完了,VMware VSAN要做成通用存儲(chǔ)了,你讓EMC ScaleIO情何以堪?)。Hedvig還列舉了除了性能外其他很多的優(yōu)勢(shì),具體大家看下圖對(duì)比吧。
看樣子,好像Hedvig真是不錯(cuò),特別是企業(yè)特性非常豐富的,比一般的SERVER SAN特性多多了。看來(lái)是時(shí)候了解一下Hedvig的技術(shù)特點(diǎn)了。
初創(chuàng)公司的技術(shù)背景很重要。我們了解到,Hedvig在2012年創(chuàng)立,其CEO Avinash Lakshman(看名字應(yīng)該是印度人,存儲(chǔ)軟件Startup現(xiàn)在都被印度人占領(lǐng)了,而存儲(chǔ)硬件Startup則是以色列人的長(zhǎng)項(xiàng),如Moshe Yanai的Infinidat)在技術(shù)圈大名鼎鼎,是Amazon Dynamo的聯(lián)合發(fā)明人,Apache Cassandra的發(fā)明人。和Nutanix一樣,這是一個(gè)具有互聯(lián)網(wǎng)基因的公司(據(jù)說(shuō)Nutanix就是基于大量修改Cassandra而來(lái)的)。
但Nutanix雖然以SDS為核心,但定位是一個(gè)HCI廠商,而Hedvig卻定位是一個(gè)純粹的SDS廠商。Hedvig只銷售軟件,用戶購(gòu)買商用服務(wù)器組成一個(gè)分布式的統(tǒng)一存儲(chǔ)平臺(tái),支持超融合部署和兩層部署(計(jì)算和存儲(chǔ)分離)。
Hedvig認(rèn)為自己和市場(chǎng)上的SDS和超融合產(chǎn)品都不同,除了具備Virtual SANs部署靈活特點(diǎn)外,還具有高端存儲(chǔ)的企業(yè)存儲(chǔ)特性。也就是我具有你們所有的優(yōu)點(diǎn),這個(gè)怎么可能啊?
Hedvig在設(shè)計(jì)的時(shí)候,定了7個(gè)設(shè)計(jì)原則。除了具有幾乎EMC ScaleIO的優(yōu)勢(shì)外,Hedvig還支持ARM服務(wù)器,支持文件(NFS,馬上支持SMB)和對(duì)象(Swift和S3),支持容器(Docker),支持在線重刪壓縮(ScaleIO有路標(biāo)支持壓縮)、自動(dòng)分層,支持混合云部署和DR。
Hedvig最核心的就是其專利的分布系統(tǒng)引擎(Hedvig Storage Service),它提供數(shù)據(jù)管理服務(wù)和數(shù)據(jù)保持服務(wù)。
除了Hedvig Storage Service(類似ScaleIO的SDS),Hedvig還有一個(gè)訪問(wèn)層Hedvig Storage Proxy(類似ScaleIO的SDC),如果是VM環(huán)境,Storage Proxy部署成VM,如果是物理機(jī)器,則Storage Proxy部署為Docker容器形態(tài),提供block,file和object訪問(wèn)支持。為了可靠,Storage Proxy具有HA功能,防止單點(diǎn)故障。這個(gè)HA功能也可以利用VM的HA功能實(shí)現(xiàn)。
還有一個(gè)存儲(chǔ)的資源抽象叫Hedvig Virtual Disk。這是一個(gè)抽象的單位,所有的企業(yè)特性都是基于這個(gè)粒度來(lái)實(shí)現(xiàn),可以理解為主機(jī)看到的卷。從配置界面我們可以看到,可以選擇這個(gè)Virtual Disk的類型(iSCSI或者NFS),可以針對(duì)這個(gè)Virtual Disk選擇是否啟動(dòng)重刪和壓縮,可以選擇是否是全閃存和混合介質(zhì)(支持自動(dòng)分層),可以選擇塊大小(缺省是4K),可以選擇復(fù)制的策略(是機(jī)架冗余還是數(shù)據(jù)中心冗余),還有復(fù)制的因子(原來(lái)是2-6,現(xiàn)在改為1-6了,截圖是舊的),也就是數(shù)據(jù)可以保存1份到6份。大家知道,ScaleIO只支持2副本。Hedvig為什么考慮支持1副本形態(tài)呢?這不是沒(méi)有任何冗余嗎?其實(shí)這里主要針對(duì)支持Hadoop的HDFS文件系統(tǒng)場(chǎng)景,雖然Hedvig并沒(méi)有提供HDFS接口,但Hadoop集群可以利用Hedvig作為存儲(chǔ)來(lái)建立HDFS,而HDFS本身就是三副本的保護(hù)方式,如果Hedvig再做數(shù)據(jù)復(fù)制就太浪費(fèi)了。Hedvig最多支持6副本的方式,這樣可以支持4個(gè)活動(dòng)的數(shù)據(jù)中心,可以跨全球部署,甚至部署到公有云上去。
從下圖我們可以看到,主機(jī)如果采用對(duì)象接口,可以不安裝Storage Proxy組件的,直接通過(guò)AWS命令行或者OpenStack GUI可以調(diào)用相應(yīng)的接口。
目前Hedvig和Cisco合作,我們從其參考架構(gòu)的文檔來(lái)看看Hedvig的一些細(xì)節(jié)部署。Hedvig的存儲(chǔ)節(jié)點(diǎn)是基于CentOS的,一般要求配置2塊系統(tǒng)盤保存Linux系統(tǒng)(鏡像),配置2塊SSD保存元數(shù)據(jù)和作為讀寫Cache,然后就是多塊的HDD數(shù)據(jù)盤。Hedvig把每三塊數(shù)據(jù)盤組成一個(gè)存儲(chǔ)池,然后把池切成16GB的粒度,Hedvig把它叫Container或者Chunk(為了不和Docker那個(gè)容器封裝搞混,我后面就用Chunk來(lái)代表)。這個(gè)Chunk顆粒比較大,16GB,相比ScaleIO的1MB要大多了。復(fù)制的單位就是Chunk。一般來(lái)說(shuō),Chunk太大,對(duì)小文件的處理性能就比較差,但估計(jì)Hedvig有別的機(jī)制來(lái)解決這個(gè)問(wèn)題。Chunk可以被多個(gè)Virtual Disk共享,而Virtual Disk還切為更小的數(shù)據(jù)塊,因此Chunk大一些估計(jì)問(wèn)題也不大。關(guān)于硬盤的重構(gòu)速度,Hedvig宣傳4TB的硬盤重構(gòu)只需要20分鐘,已經(jīng)是非??斓牧?。
還有,我們看到第三臺(tái)服務(wù)器沒(méi)有安裝Proxy VM,但也可以通過(guò)iSCSI和NFS通過(guò)第二臺(tái)服務(wù)器的Proxy VM訪問(wèn)存儲(chǔ),這種部署方式就更加靈活了。
不管怎么說(shuō),采用副本的方式,存儲(chǔ)的空間還是太浪費(fèi)了?,F(xiàn)在VMware VSAN支持RAID,而Nutanix開(kāi)始支持糾刪碼。但副本的性能肯定是最好的,而且只有副本才能支持跨數(shù)據(jù)中心的DR部署。因此,Hedvig沒(méi)有計(jì)劃支持糾刪碼,只是建議針對(duì)性能要求不高的場(chǎng)景,如對(duì)象存儲(chǔ),開(kāi)啟在線壓縮和重刪,而且無(wú)需采用全閃存,這樣可以彌補(bǔ)副本造成的空間浪費(fèi)。
雖然Hedvig不需要全閃存,但沒(méi)有閃存是萬(wàn)萬(wàn)不行的。Hedvig在存儲(chǔ)節(jié)點(diǎn)利用SSD保持元數(shù)據(jù)和寫優(yōu)化,可以把隨機(jī)小I/O變?yōu)轫樞虼驣/O,還可以作為自動(dòng)分層的性能層保存熱點(diǎn)數(shù)據(jù)。客戶端的閃存也可以作為讀Cache進(jìn)行加速。大家可以看到,一般的SERVER SAN都不用服務(wù)器的DRAM做寫cache,因?yàn)闊o(wú)法實(shí)現(xiàn)掉電保護(hù),如果采用NV-DIMM成本又太高,因此,基本都是采用SSD作為寫緩存。因此,SSD基本都是必配的,否則系統(tǒng)性能會(huì)非常差。
由于Hedvig的元數(shù)據(jù)和其他數(shù)據(jù)采用一樣,每個(gè)存儲(chǔ)節(jié)點(diǎn)都有,因此是否可以理解為全對(duì)稱的SERVER SAN?
這些元數(shù)據(jù)可以實(shí)現(xiàn)快速而豐富的數(shù)據(jù)服務(wù),如做快照和克隆的時(shí)候,其實(shí)只是進(jìn)行元數(shù)據(jù)的操作,而元數(shù)據(jù)全部都在SSD里,因此速度還是非??斓?,幾乎是實(shí)時(shí)的。
我思故我在
1、Hedvig從特性來(lái)說(shuō),幾乎是EMC ScaleIO的超集??梢赃@么理解,Hedvig=EMC ScaleIO(block)+Isilon(file)+ECS(object),以一敵三。據(jù)說(shuō)Hedvig的價(jià)格也很便宜,因此EMC頭疼是正常的?,F(xiàn)在很多用戶,還是特別喜歡統(tǒng)一的存儲(chǔ)資源池這個(gè)概念的。但Hedvig畢竟是一個(gè)新公司,目前案例還不多,性能到底如何,也沒(méi)有第三方的測(cè)試報(bào)告。EMC采用這種best of breed產(chǎn)品策略,暫時(shí)還是沒(méi)有什么問(wèn)題,特別是ScaleIO,可以打擊Hedvig的不成熟和性能(就說(shuō)統(tǒng)一存儲(chǔ)的塊性能肯定不讓專門做塊存儲(chǔ)的),讓客戶不敢把關(guān)鍵業(yè)務(wù)遷到Hedvig上去。而Isilon采用糾刪碼,可以在存儲(chǔ)空間利用率上打擊Hedvig的副本方式。但從趨勢(shì)來(lái)看,統(tǒng)一的存儲(chǔ)資源池應(yīng)該是方向,就像在中端存儲(chǔ)領(lǐng)域,EMC Unity最終也融合了。Server SAN領(lǐng)域,未來(lái)也一樣。
2、華為其實(shí)也存在和EMC一樣的問(wèn)題,塊資源池主推FusionStorage,而文件資源池主推OceanStor 9000,對(duì)象資源池原來(lái)主推OceanStor UDS,現(xiàn)在用OceanStor 9000提供對(duì)象接口支持。不過(guò),從華為公布的路標(biāo)來(lái)看,未來(lái)FusionStorage會(huì)同時(shí)提供三種服務(wù),實(shí)現(xiàn)融合的存儲(chǔ)資源池,類似目前Hedvig的形態(tài)。在FusionStorage暫時(shí)做不到融合之前,現(xiàn)在可以采用OceanStor DJ(提供服務(wù)編排)+FusionStorage(block池)+OceanStor 9000(file+objiect池)來(lái)構(gòu)建融合的資源池方案,滿足客戶的需求。