两本赠书和投票 | 服务器里面一定要有硬盘吗? - SAS与SDS
【編者按】
一不留心就到4月1日了,不過我保證文末的贈書活動是真實的,SDS新書有8位作者的簽名。另外一本贈書是VMware VDI的書籍。
在《SDS新書的來龍去脈 & SDS序言 - 倪光南:眾籌出書也是一種創新》里,我曾說到:“我相信這本書里面有些篇章,具有較遠的技術前瞻性,即使是三、四年過后,仍然有其借鑒或者啟發的意義”。原因就在于這本書里有好幾篇前瞻性的文章,而Peter Cui(崔勇)撰寫的第24章《SAS與SDS》是其中的一篇。
我曾一度猶豫是否要把SAS與SDS這篇文章放到書中。這篇文章起源于2015年12月18日在微信公眾號“樂生活與愛IT”上的一篇閱讀量非常高的《別再說存儲了,我真的煩了》,文章本身令人腦洞大開,看完也頗有啟發,而且這篇文章還引來了一則趣事,也許十年后可以請故事的主角親自來回顧這段軼事。
坦率說,這篇文章總體上行文不是十分嚴謹,而且不是現有技術的分析,是對未來技術的探討。彼時其實現在也是如此,SAS交換技術尚未成為業界的主流標準,未來是否能普及開來不得而知。后來考慮到SDS生態的完整性(代表著SDS后端的數據傳輸技術),而且個人覺得確實很有道理,另外也希望讀者不僅能看到現在,還能激發對未來的思考,就收錄進來了。
另外,Peter Cui提出的一個觀點也頗為新穎:“云計算就是數據更靈活的和計算單元(物理CPU或虛擬CPU)建立耦合關系”。其實數據和計算的解耦是否采用SAS交換來落地不重要,但是這種往解耦的方向發展,從而更靈活地適用于多種業務場景,以滿足各自對計算和存儲的配比關系,或許是一個值得思考的方向。
時至今日,采用SAS交換機將服務器的計算和存儲分離的廠商和用戶,在全球范圍內仍不多見,很高興看到做為IT廠商的浪潮、英業達、書生云;做為用戶的阿里、騰訊、百度等中國互聯網廠商,以及以BAT為首的天蝎3.0計劃已經有SAS交換的落地了。順便恭喜一下書生云基于SAS交換的超融合產品簽約鳳凰創新園,據書生云CEO王東臨說,該數據中心投資超過10億元,設計存儲容量超過1Eb(編者按:應該是1EB)。
如果SAS交換技術能夠在未來形成生態乃至標準,這或許是華人在存儲領域這個細小分支的突破!
好,下面我們就開始腦洞大開之旅。
---Begin---
第24章? ?SAS與SDS
重復一下本書主編的話:軟件定義的存儲(SDS)是一個不斷進化的概念,在現階段看來,SDS是指存儲資源由軟件自動控制,通過抽象、池化和自動化,將標準服務器內置存儲、直連存儲、外置存儲或云存儲等存儲資源整合起來,實現應用感知,或者基于策略驅動的部署、變更和管理,最終達到存儲即服務的目標。
筆者認為軟件定義存儲和傳統存儲并不是黑與白的關系,而是彼此學習、互相兼容而且不斷發展的過程;由于市場格局或產品定位等非技術原因,往往最新的、定制化的技術會被首先用在所謂的傳統存儲設備上,比如PCIe的網絡,RapidIO網絡等,這些技術最先被用在傳統存儲的控制器之間互聯。這些在當時并不是最通用的技術,但是可以提供高速、低延時的數據通信。而今天隨著技術飛速發展,越來越多的快速、廉價的網絡技術被普及,越來越快的存儲介質遠遠突破傳統存儲控制器的IO設計能力,與此同時CPU的計算能力有極大的剩余,軟件定義存儲(基于X86服務器和以太網)也就自然而然的產生了。
剛剛提到的快速而且廉價的網絡是指以太網,今天的標準有10Gb、40Gb、100Gb、25Gb,同時像RoCE這樣的技術也越來越普及,高速和低延時的網絡越來越容易獲得。但是以太網是唯一的選擇么?后面會給大家介紹各種協議的選擇和妥協。
本章內容主要介紹通過SAS(串行連接SCSI接口)網絡來實現存儲池化的方法。由于本章所展望的通過SAS實現SDS和以往的方法不太一樣,所以需要有一些鋪墊內容來介紹一些基礎概念。本章涉及到的一些概念和現在的硬件和SDS不太一樣,所以我們先在本章開始之前提出一個問題:服務器里面一定要有硬盤么?
本章分為以下幾個部分:
1)什么是SAS協議,SAS協議的現狀;
2)服務器存儲和計算硬件解耦和;
3)用SAS協議來傳輸數據;
4)數據IO從軟件到硬件;
5)云計算和軟件定義存儲;
6)其它的一些補充。
24.1 ?SAS協議和SAS協議的現狀
SAS全稱是串行連接SCSI接口,也是目前服務器和存儲設備中的最常見的存儲協議,通常用來連接硬盤的協議,SAS協議兼容SATA協議。在服務器中通常由IOC(也叫SAS卡或者HBA卡)或Raid卡來實現PCIe協議到SAS 協議的轉換,HBA卡或RAID卡一般有8個SAS接口(少數卡支持16個或者24個接口),其中每4個SAS接口可以組合組合成一個寬端口,因為服務器內的SAS HBA或RAID卡是必備配件,為了減少服務器的內部PCIe插槽占用,這張卡片也有很多不同的外形。Server SAN里的都是采用HBA卡連接本地硬盤。如下圖
?
內置RAID控制器,定制接口,多采用插座形式,不占用PCIe插槽
標準PCIe 插槽RAID卡外置MiniSAS端口
標準PCIe SAS HBA卡內置Mini SAS端口
?
SAS協議目前最新的版本是SAS 3.0,單端口的帶寬是12Gb。一張8端口的HBA,可以提供理論上96Gb的SAS帶寬,而HBA卡的PCIe 3.0 x8接口帶寬是64Gb。所以HBA卡的SAS接口理論上沒有瓶頸,可以充分發揮PCIe的帶寬。每4個SAS端口組成一個寬端口,每個寬端口的帶寬是48Gb。目前使用的寬端口的名稱叫做Mini SAS HD,包括外部端口和內部端口。如下圖
外置Mini SAS 接口和內置Mini SAS HD接口
外置Mini SAS HD接口
SAS協議可以說是無處不在,無論是服務器或存儲設備中,只要有硬盤的地方就有SAS協議使用,除了我們前面提到的控制卡使用SAS協議,在服務器或存儲設備上還有一個SAS端口擴展器,可以讓一個8端口的控制卡連接幾十塊硬盤。由于這些器件通常都是放在機箱內部,大多數人對它們不是非常熟悉。
24.2 ?服務器存儲和計算物理解耦和
作為目前X86唯一的CPU供應商,Intel每隔一年半到兩年左右就會發布新一代的CPU,而每個服務器廠家就會按照Intel的節奏發布新款服務器,我們以雙路服務器為例,每個廠家都會基于最新一代的IntelCPU發布十幾個型號服務器,這些服務器最大的不同在于機箱的機械尺寸和存儲的擴展性。所以我們提出希望統一計算部件,將服務器的計算部分和存儲部分分離,實現數據中心的計算節點統一,在選擇計算節點時候不需要考慮服務器支持多少個硬盤或者多少種類硬盤。服務器僅需要包括CPU、內存、網卡、HBA卡等基礎部件即可。存儲部分都在服務器外部。那么就需要一個設備可以把若干臺服務器和大量的硬盤連接在一起。同時這個方案需要能被互聯網行業使用,必須要滿足高速交換、不改變現有操作系統、不改變應用習慣、不增加成本、擴展容易等特點。無論是2個至強CPU配置2個硬盤還是配置120塊硬盤,都可以采用相同的服務器和相同的JBOD硬盤柜。如下圖
CPU和硬盤分離示意圖
?
上圖上半部分是僅包含CPU、內存、網卡、SAS卡的計算節點,通過某一種網絡和大量的硬盤或SSD連接在一起。硬盤可以按照需求任意分配給Fabric連接的服務器。這個Fabric需要滿足高速、無阻塞、低延遲、低成本、低開銷、技術成熟、較高的擴展性。可是這個Fabric究竟應該是什么樣的協議呢?
可以選擇的互聯協議比較有限,目前看來,協議無非就是PCIe、Ethernet、SAS、FC等幾種協議。為什么選擇SAS協議來實現存儲和計算物理解耦和呢?我們簡單來看一下各種協議的現狀,目前該方案采用了SAS網絡,國內已經有2家公司量產了這種交換機,而且有超過2家的互聯網企業采用了這種CPU和硬盤解耦和方案。下面我們通過協議的對比,看看為什么最終選擇了SAS協議。
PCIe協議,一提到PCIe協議,大家就會覺得高帶寬、低延時、直連CPU等等。反正就是快,采用PCIe協議再配合上NVMe 來實現存儲更符合技術發展的方向,但是我們現在需要的是一個Fabric而不是點對點的數據傳輸,在這個Fabric上要有多個節點和多個存儲配件。
但是我們不能忽視PCIe協議目前的幾個缺點,NVMeSSD的每GB成本還是遠高于機械硬盤,PCIe交換機目前成本還比較高。PCIe交換機的擴展規模有限,以目前最大96 lanes(通路)的單PCIe switch芯片為例,如果每個服務器需要x8的帶寬,那么最大只能實現 12個主機互聯而且還沒有考慮到PCIe 存儲設備連接到Switch芯片上,如果要多個交換芯片組成一個大的交換矩陣,PCIe端口擴展比較復雜。
PCIe交換機成本較高,目前PCIe交換機主要供應商是PLX和IDT,PCIe 3.0協議不支持多主機互聯(需要使用非透明橋NTB來橋接主機和PCIe交換機)。用PCIe交換機來計算存儲解耦和或者統一IO(存儲、網絡等),目前來看只是一個美好的愿望,但是還有很多路要走。
戴爾的服務器產品較早使用PCIe交換機,從最初的GPU擴展,到多服務器節點共享存儲資源,而且根據使用場景有不同的存儲資源分配方案,目前配置了PCIe交換機的服務器主要有VRTX和FX2,這2款產品充分利用了PCIe交換的特點,并且這2款產品完全面向不同的業務環境,所以在存儲擴展上采用了不同的實現方式。下圖是IDT和PLX PCIe交換機芯片。
?
如果用PCIe Switch組成的解耦和環境如下圖所示:考慮到HDD每GB成本比較低,實際使用中還需要HDD和NVMeSSD 同時存在,那么必須要有PCIe到SAS的協議轉換,而且Fabric里面有2中協議混合存在。如果要把接在SAS HBA下面的HDD 要分配給不同的主機,有很大的難度,也有很多的挑戰,這里不進一步詳述。其實DELL的VRTX就是這么做的,把一張RAID卡虛擬成4張RAID卡,但是目前僅僅支持4個節點,主要面向中小企業和分支機構。
?
?
?
Ethernet協議,如果要通過Ethernet連接今天的硬盤和CPU,需要通過幾種協議的轉換,在Initiator端,先要把PCIe轉到Ethernet,在Target端,把Ethernet轉到SAS或者NVMe協議。第一次協議轉換相對比較容易,和現有的網卡一樣的功能,這個特殊的網卡需要虛擬出一個塊存儲設備給CPU.但是在Target端協議轉換卻需要重新設計,硬盤或SSD需要有以太網接口,通常會采用RJ45接口,接口速率10G或更高的速率,硬盤需要把Ethernet協議轉換成SAS協議或NVMe協議,目前沒有任何類似的產品可以參考,FCOE協議和SASOE如下圖。
參考FC協議到FCOE,SAS和NVMe協議也可以采用類似的邏輯,但是在Mapping的部分可以有不同的實現方式,比如在SAS(64位)地址和MAC(48位)地址的處理方式,可以采用變長地址,也可以2種地址完全無關直接packing,但是無論哪種方式,都需要網卡中有直接Offloadengine。
基于Ethernet協議解耦后的結構圖
?
采用了這種SASOE后的結構如上圖,從上圖中可以看出,存儲介質的接口需要改成Ethernet,通常采用RJ45接口,供電部分也可以直接使用POE,目前這只是我的一個假設,RJ45接口的缺點就是機械尺寸比較大,但是這個問題不大,畢竟8個觸點還是比較好處理的。
?
圖 24-8 網卡虛擬存儲設備
?
改成這種結構以后,對OS和應用有什么需求么?如圖24-8所示,這時候NIC就需要有較多的功能,在MAC層以上需要支持SASOE和NVMeOE的協議,通過NIC可以虛擬出存儲設備,對于CPU和操作系統,這就是一個連接在PCIe總線上的存儲設備,該虛擬存儲設備由多個SASOE存儲設備的存儲空間組合而成,組合方式見后面的SAS DHBA卡工作原理。
可能有人會說為什么不用ISCSI協議呢?其實ISCSI協議和Ethernet轉存儲方式是類似的,只是Ethernet轉存儲時候沒有IP層和傳輸層,轉發效率上和封包速度上會快不少。IP轉存儲相關協議比如ISCSI協議,沒有獨立器件實現IP到SAS協議之間的轉換,目前多用ISCSI網關(IPSAN存儲設備等)來實現轉換。下圖對比ISCSI和SASOE的區別。
?
FC協議,雖然FC協議已經發展了十幾年了,但是到今天為止FC協議的成本仍然不低,其次從CPU到硬盤或者SSD,如果采用FC互聯,必須要經過PCIe轉FC,FC轉SAS 兩次轉換。FC協議基本上不在考慮范圍之內。
SAS協議,最后我們說說這個無處不在的SAS協議,目前從CPU到硬盤,僅僅是PCIe協議轉SAS協議僅僅一次轉換就可以了。通常是SAS HBA或RAID卡來實現轉換。最大的缺點就是不支持NVMe協議。如下圖。
?
最終可以實現的服務器計算部分和存儲部分完全分離,CPU到每一個硬盤都可以實現無阻塞的交換,實現后的效果圖和邏輯結構圖如下
?
SAS交換機現狀,最早的SAS交換機是LSI6160 SAS交換機,基于SAS2.0協議。最大16個端口。每個端口的帶寬支持4*6Gb=24Gbps。浪潮在2015年推出了一個17口交換機,基于SAS3.0協議,每個端口的帶寬是4*12Gb=48Gbps。理論上,現有的技術單交換機可以支持68個48Gbps端口。LSI 的SAS交換機價格非常高,但是浪潮和英業達的SAS交換機已經把成本降到非常非常低。
LSISAS6160 SAS交換機
某公司設計的SAS 交換機
?
肯定有人會擔心SAS交換機的成本是不是很高,大家都知道一個最基本的道理,被大量廣泛使用的技術,成本下降的最快,相比以太網和FC網絡,大家對SAS網絡不是很熟悉。其實SAS網絡比以太網和FC網絡更加普及,在通用服務器中,通常會有一個SASExpander和一個SAS RAID卡或HBA卡。按照端口數量來估算,每10-20臺服務器有1個FC接口,每臺服務器有2個以太網口,但是每臺服務器有20-40個SAS接口(每張SAS RAID卡或HBA卡有8個接口,服務器硬盤熱抽換背板上有24到36個SAS端口)。所以SAS的普及程度要遠遠高于其它的網絡。而SAS交換機就是基于SAS Expander 設計出來的。基于SAS協議的解耦和架構就是把每一個服務器的SAS Expander拿到機箱外部,并不會增加什么器件成本。
某互聯網公司采用這種方案,可以實現高性能計算、熱數據、溫數據、冷數據存儲采用統一的服務器。為什么這么說呢?各種應用類型的服務器最大的特點是CPU計算能力和數據量之間的比例,舉例來說:高性能計算通常只需要2個硬盤RAID1配置,熱數據采用若干塊SSD,溫數據采用12-16塊7200轉機械硬盤,冷數據可以配置到60塊機械硬盤。今天上線的計算服務器,幾年后新的CPU上市,原來的計算服務器需要被汰換,改為存儲型服務器,假如原來的計算服務器最大僅支持2塊硬盤,擴展硬盤容量是件很復雜的事情。但是如果采用SAS網絡來更改CPU和硬盤的比例,就是件很容易的事情,不再收到機箱規格的限制。如下圖。
?
24.3 ?Server SAN的數據讀寫通過SAS網絡傳輸
上一節我們提出了低成本實現CPU和存儲的解耦和,可以得到一個靈活配置的機架,可以減少服務器的種類,優化了BOM成本。在實際案例中評估上圖方案的成本和一個機柜配置傳統服務器成本略有優勢。同時我們得到了一個連接所有CPU和硬盤的網絡。
在實現了計算和存儲的物理分離后,我們可以發現,其實任何一個CPU到任何一個存儲介質(硬盤或SSD)都可以聯通。我們在回去看看Server SAN的架構原理,如下圖,大家不難發現在Server SAN的方案中,當數據在寫入磁盤的時候需要保持多副本的一致性,必須要在其它的主機上同步寫入數據,而副本的寫入是是通過IP網絡寫入到其它的主機的硬盤上。
在現有硬件條件下,這是最好的方式,而且通過合理配置SSD、提高以太網絡帶寬以及降低網絡延時,可以實現不錯的性能。但是其缺點也是顯而易見的,首先副本數據在寫入其它主機的時候,需要經過的協議轉換次數是很多的,而且這些協議的轉換需要通過CPU來實現,數據傳輸的跳數比較多,主機開銷也比較大。如圖24-14。
圖24-14?Nutanix基礎原理架構
?
圖24-15 Nutanix的數據流示意圖
?
從上面的圖24-15可以看出,當一個虛擬主機需要寫數據的時候,需要經過若干次軟件處理,再通過必不可少的硬件設備,若干次的協議轉換,最終實現副本寫入到其它的主機的物理存儲空間。整個過程的時延和CPU開銷是非常大的。
?
但是,當Server的計算部分和存儲部分分離之后,我們可以發現,其實當CPU寫入到本機硬盤和其它主機的硬盤實際的物理路徑是一樣的,甚至中間的跳數和協議的轉換也是完全一樣的,也就是說,有可能通過一步操作實現多個副本的寫入,理論上想寫幾個副本就寫幾個副本,任何一個副本的開銷和本地寫開銷完全一樣,而且可以不經過任何軟件層處理。當一個主機計劃內或計劃外下線了,其實它的所有的數據都在SAS交換網絡上,甚至連主副本都在,只需要有某一個主機把這些數據再裝載起來,完全不用擔心,服務器離線后,服務器內的硬盤內的幾十TB數據也一起下線了。如下圖
?
只要文件系統可以很好的調度和管理主數據和副本,并且在CPU主機之間通過狀態監控,就可以實現數據按照需要在不同的主機之間漂移,數據始終在那里,就想SAN存儲設備一樣,所有接在這個交換網絡內的主機都有可能訪問這些數據。和SAN不同的地方在于,網絡內全是硬盤,這些硬盤怎么組成一個簡單的高效快速存儲空間呢?需要主機內的文件系統來管理邏輯存儲空間到物理磁盤之間的映射關系,比如100塊SSD,每塊SSD提供10GB的空間,組成一個邏輯1TB的邏輯塊設備。那么這個映射關系就需要文件系統來管理,而且需要對這個映射關系建立好副本。
在上圖可以看到,全局的硬盤的數量比較多,元數據的存儲、全局磁盤狀態、副本數據校驗等工作還需要在本機CPU上執行,同時一份數據需要3次寫入。但是最大的挑戰在于,必須要在OS的文件系統中支持這樣的存儲方式,所以需要對Server SAN或者云計算的文件系統層做出修改。如果想讓任何操作系統都能支持,就需要多廠家都支持這種工作方式,比如VMware、Windows、Linux、Openstack、Ceph等等,但是如果要在一個數據中心里面,同時有多種操作系統,該如何才能像FC SAN那樣來分配存儲空間呢?短時間內要讓操作系統廠家來支持這個方案,需要對操作系統進行比較大的改動,但是目前北京有一家云計算公司簡稱SS公司,他們已經讓OpenStack支持SAS交換網絡,從目前的情況來看,無論是IO能力還是CPU資源的占用都得到了極大的改善。
24.4 ?數據寫入硬盤從軟件到硬件
在上一節中文件系統必須是特殊定制的,雖然定制的復雜度很大,但是獲得的收益也是很顯而易見的,同時因為所有用到的配件都是量產成熟的硬件,SAS網絡來實現數據寫入硬盤的做法是目前比較理想和現實的。
前面提到的SS公司在開源的操作系統中先實現了基于SAS網絡的數據傳輸,修改Ceph,讓OpenStack來支持通過SAS網絡實現CPU到硬盤的數據讀寫。但是如果要修改windows或者修改VMware則難度很大,有沒有一種可能來實現不需要修改現有的操作系統就可以實現數據多副本寫入到硬盤?可以讓現有的操作系統或者任何單主機的操作系統,都能自由使用SAS網絡呢?甚至Windows7 也可以使用SAS網絡實現多副本呢?
方法總是有的,在上一節總我們提出了虛擬地址到物理地址的映射關系,這個映射關系就是存儲的核心,原來是交給文件系統來管理和動態維護,如果把這個管理維護的工作交給一個獨立的硬件來完成呢?我們按照數據寫入的路徑從文件系統往下一級一級的看,文件系統到CPU,CPU到PCIe總線,PCIe總線到SAS HBA,SAS HBA到SAS 交換機,SAS交換機到硬盤,有機會承擔這個映射關系管理工作的只有HBA或者交換機了。如果讓SAS HBA 實現這些功能。那我們看一看新SAS HBA需要增加那些功能,我暫時給這種HBA卡起一個名字叫DHBA。
DHBA主要作用是抽象真實的物理的存儲空間(包括DHBA卡連接的SAS 交換機以及連接在交換機上的硬盤和其它計算設備),通過抽象底層的硬件和結構,DHBA卡向上層CPU和操作系統提供一個邏輯的塊存儲設備,數據可靠性、一致性、讀寫優化、部分的物理存儲資源的管理也是由DHBA卡來實現。如下圖
大家肯定會問,萬一這個DHBA卡壞了,數據是怎么保護的?業務會不會中斷?這里簡單介紹一下DHBA卡怎么實現的。
如上圖示例,DHBA卡虛擬出一個SAS設備,操作系系統會認為這是一個20TB的硬盤,但是實際的存儲空間是由200塊磁盤各出100GB空間組成的,副本存儲在其它的空間,按照3副本要求實際占用空間60TB。虛擬SAS設備和物理SAS存儲之間采用地址映射的方式實現。如下表
從上面的表,大家可以看到,VirDev1是CPU和操作系統可以看到的本機的塊存儲設備,但是VirDev1實際上是不存在的,是由DHBA卡虛擬出來的卡片,而虛擬設備的存儲塊是由物理設備的存儲塊映射過來的。
三副本的映射方式
上表中大家也可以看出,也可以由一個虛擬塊映射到多個物理塊,這樣可以實現副本備份,也可以實現QOS調度等。通過合理的設計這個mapping表還可以實現災難備份、精簡配置、動態遷移等等,這個表是最小粒度的塊地址映射,當然可以實現更大的粒度比如4M或者64M,或者采用連續塊地址映射來優化映射算法。具體算法需要高手來實現。
通過上面的映射表可以實現很多高級的功能。比如精簡配置的功能,虛擬設備照樣提供20TB的空間,但是物理地址實際上僅提供2TB的空間。比如副本數量調整,一方面可以提高可靠性,另一方面可以實現某些應用的讀取負載均衡,如下圖,數據一次寫入進虛擬存儲空間,同時實現20份副本,每份副本提供給一個服務器。這樣可以極快速提供最大數據讀取IO能力。再比如寫3副本的時候,1份副本采用SSD,同時讀寫,另2份副本僅寫入,采用機械硬盤。這樣可以實現較好的性價比。還有其它的一些功能在后面描述,比如容災,HA,雙活,高可用等。
整個存儲網絡由很多的硬盤組成,整個映射表也非常大。但是可以實現子表和總表分離,每個交換機存儲全局的總表,每個子表和SAS端口對應,當服務器連接上SAS交換機端口,DHBA卡從總表下載下載對應端口的子表,然后DHBA卡建立虛擬SAS設備存儲和物理空間的映射,這樣服務器就可以從虛擬磁盤設備上直接啟動和讀寫數據了。服務器完全不需要預裝操作系統,也不需要配置存儲和主機的映射。服務器和操作系統以及數據完全沒有關系了,比如原來的一臺服務器是雙路服務器,因為服務器需要升級到新的四路服務器,只需要把新的四路服務器連接到原來服務器對應的SAS端口,那么新的四路服務器從SAS交換機下載對應的端口的子表后,就可以從原來的操作系統啟動并讀寫原來的數據了。如圖24-18。
圖24-18映射子表和全局映射表
?
有什么協議可以比SAS更合適未來的技術需求呢?比如NVMe+PCIe。或者NVMe over Fabric。假如是NVMe over Eth,那么上面的DHBA的映射技術還可以被用到新的協議上來么?以太網卡不僅可以把所有的IO統一,而且網絡技術也成熟,現在網絡速度很快,交換設備的交換容量也很大,而且現在的大二層的以太網方案也可以很好的支持各種OverEthernet存儲技術。
在前面第三節的協議的選擇的時候,提到過如何通過SAS over Ethernet 或者NVMe over Ethernet。就目前的協議發展速度和方向來看,Over Ethernet幾乎是一個很好的選擇,但是其實現的復雜度要遠遠高于SAS網絡。開發難度,相關硬件的成熟度等等。筆者認為在5-10年內SAS很有可能要繼續發揚光大。
?
?
?24.5 ?云計算和軟件定義存儲?
?
在第四節我們已經把數據和CPU徹底分開了,數據和CPU完全沒有任何依存關系。任何CPU都可以按照策略或者按照需求來獲得所需要的數據。把子表分配給某端口,某個端口連接的CPU就可以讀寫子表對應的邏輯存儲空間,邏輯存儲空間上的數據就屬于該端口的CPU。
在說云計算之前稍微說一下虛擬化,因為今天的云計算基本上都是基于昨天的虛擬化發展過來的。與此同時今天的云計算也離不開現在的軟件定義存儲。
最初,一個物理主機上建立虛擬層,并且在虛擬層上創建若干硬件資源,在每個虛擬硬件資源上運行若干個操作系統,每個操作系統彼此獨立。這個時候的虛擬化最大的優勢是充分利用剩余的計算資源,在歷史的發展過程中從開發環境、測試環境一步步的向生產系統遷移。
由于生產系統對可靠性要求比較高,而且隨著SAN技術越來越成熟,通過把SAN加入虛擬化環境,人們可以將避免單物理服務器的故障,可以共享數據來實現更高速的集群計算,數據統一管理等。虛擬化不可避免的用到SAN技術,原先2臺物理主機之間的HA并不能很好地解決數據一致性的問題,VMware推出了和上層操作系統和應用無關的vMotion讓虛擬機和數據可以運行在不同的物理機上,而且這個過程平滑、快速,其實歸根到底是數據所在的位置并沒有發生改變。
從單機虛擬化到基于共享存儲的虛擬化
?
2014年,VMware推出了VSAN,這個上市時間并不長的軟件,成為今天的VMware云計算的一個核心組件。為存儲的資源池化提供了技術保障。也可以說,VSAN是一個里程碑的產品。
?
筆者認為,數據和CPU的關系決定了今天的云計算的結構,我們通常考慮的事情是數據屬于那個計算節點(CPU),數據就在那個計算節點上運行。原先通過SAN來實現數據耦合不同的物理主機,比如把LUN分配某一個主機,該LUN上的數據就可以被該主機讀寫。但是SAN的局限性有3點,不可能擴大到云計算的規模(速度、主機數);成本高;性能受限。但是VSAN可以在更大的網絡規模上可以實現數據耦合不同的物理主機,硬件成本要比SAN節約很多,幾十個主機合計的IO性能要高于傳統的SAN。由于VSAN的多副本,可以輕松的實現數據和其它主機的耦合。
數據通過SAN被投射給不同的物理主機,而且因為SAN可以靈活的按照各種策略將數據投射到不同的物理主機。VSAN由于正本和副本數據存儲在不同的物理主機上,可以按照需要來實現數據副本和其它物理主機的耦合,比如下圖紅色數據正本耦合在主機1,如果主機1宕機,紅色數據副本符合可以立即耦合到主機2。
?
SAN的數據和主機之間的耦合方式
圖24-21 SAN可以靈活的讓數據和主機建立耦合關系
?
從圖24-21可以看出,由于有虛擬層的存在,所以數據可以被輕松的耦合到任何一個物理主機,再分配給任何一臺虛擬機,我認為云計算就是數據更靈活的和計算單元(物理CPU或虛擬CPU)建立耦合關系。如果用運算能力較弱的物理CPU (ATOM 或ARM) 來替代虛擬CPU,只要數據可以靈活的和物理CPU耦合,那么也可以實現類似云計算的效果,如圖24-22.
?
圖 24-22異構計算環境的云計算平臺
?
按照本章第四節所描述的方案,我們可以實現一個更靈活的云計算環境,計算資源和存儲資源完全分離,數據的IO不依賴虛擬化或操作系統或應用軟件的處理,而且多種作業系統可以在同一個環境下并存,如下圖
?24.6 ?最后的一些話
12年前,筆者開始向企業級客戶推薦SAN產品的時候,我們常常與一個例子,每個人有一瓶水,但是可以把這些水存在一個大水桶中然后通過飲水機給用戶提供水,這樣可以節約水資源,更合理的分配,做到資源優化配置。但是我們忽略了,如果大家都很渴,都想喝很多誰的時候,一個飲水機的出口是不能滿足大家一起喝水的,而且飲水機的容量越大,提供的喝水用戶越多,瓶頸越明顯。延伸一下,今天的軟件定義存儲是把許多瓶水用繩子捆在一起,每增加一瓶就增加一瓶水的容量,也增加一個出水口,容量和性能都很好的提高了,讀者可以想象一下那個畫面,還是有一些小小的不方便。或者有沒有可能做一個大盤子,把水倒在盤子里,每個人都可以在盤子里直接喝水,只要盤子大,幾百人也可以一起喝水,這個大盤子的容量和IO能力遠超其他的容器。
最近(【編者按,指2015年的時候】)有一款具有革命意義的產品上市,它可以提供驚人的高速存儲IO能力,基于PCIe的網絡SSD存儲介質,它就是DSSD。不知道各位是都注意到它的架構其實是和本章縮描述的SAS交換網絡是非常類似的,在DSSD的材料中有一句話是“movethe system software out of IO path ” 首先要有一個扁平高速網絡,其次硬件要有一些的智能來執行必須的指令,指令來自于軟件,但是軟件不轉發數據。就像許多人在一個大盤子里喝水。
?
在筆者寫下上述這些文字的時候,EMC的DSSDD5也發布了,大家關注在它的高性能上,10M的IO,100Gbps帶寬,100us的延時。估計少有人注意到剛才提到的那句話,這是一小段Q&A的對話,出現在發布會的PPT上:Move System Software Out Of I/O Path。全段如下:
The software layer was really,really different than the storage stacks we knew well.?ANSWER = don’t tryto design a software stack for traditional storage persistence (RAID or objectmirroring) and data services – this isn’t an array, it’s a new thing, designthe software stack in a different way – out of the IO path inentirety.?? While perhaps data services likereplicas/dedupe/compression (which are data-path in nature) may be possible inthe future, you can see the effects (both as strengths andweaknesses) in DSSD at GA – focus of the team was on extreme performance,extreme density, and targeting new use cases.
翻譯一下:“這個軟件和我們知道的存儲堆棧有非常非常大的不一樣。回答,不要試圖把它理解成為一個傳統存儲或數據服務的軟件堆棧,它不是一個陣列,它是一個新事物,用不同的方式設計軟件堆棧-完全在IO路徑之外。雖然有可能某些數據服務像副本、去重、壓縮本質上還是屬于數據IO,也許在未來也是有可能從數據IO上去除。但是你可以看到這個新設計的DSSD帶來的影響(優勢和劣勢),極高的性能、極高的密度、一些新的目標市場”。
---end---
【編者按】
談及EMC DSSD,編者我忍不住嘮叨幾句。進入2017年3月,意外的聽說Dell EMC Stops Production On DSSD
http://www.storagereview.com/dell_emc_stops_production_on_dssd ,不過按照官方的說法,將來會把DSSD的技術融入到其他產品線里。
在SDS新書《軟件定義存儲:原理、實踐與生態》,編者我撰寫了第25章,《內存虛擬化與SDS及DELL Fluid Cache》,當時比較看好具有深厚SDS基因的Fluid Cache(脫胎于DELL收購的RNA),可惜不久也停產了,據說就是因為EMC有DSSD。沒想到,時至今日,竟然聽到花了10億美元的DSSD將不再以原有面貌繼續銷售。
看來這種曲高和寡的超前技術,生存并壯大還是比較難的。不知道SAS交換技術在存儲和互聯網領域的發展會如何? 歡迎大家投票或留言。
scrolling="no" frameborder="0" class="vote_iframe js_editor_vote_card" data-display-style="height: 225px;" data-display-src="/cgi-bin/readtemplate?t=vote/vote-new_tmpl&__biz=MzA5MzMwMTc2Ng==&supervoteid=459159988&token=24554944&lang=zh_CN" data-src="/mp/newappmsgvote?action=show&__biz=MzA5MzMwMTc2Ng==&supervoteid=459159988#wechat_redirect" data-supervoteid="459159988" allowfullscreen>
SDS新書是指《軟件定義存儲:原理、實踐與生態》
贈書活動
為感謝廣大讀者的支持以及慶祝《軟件定義存儲:原理、實踐與生態》一書第三次印刷,再次舉行簽名贈書活動。參與方法:
1.?在本文末留言,發表對本文內容或對軟件定義存儲看法;
2.?邀請朋友對您的留言點贊。
簽名包括如下8位作者:
1)第9章 飛康軟件 FreeStor作者 張瑾
2)第15章 Lenovo ThinkCloud AIO作者 要志文
3)第16章 華云網際FusionStor作者 王勁凱
4)序言3《軟件定義-存儲的規模效應》的作者張廣彬(企事錄創始人)
? ? ? 序言3的詳情可打開:張廣彬《軟件定義——存儲的規模效應》 ?& ?活動介紹(2016軟件定義存儲技術沙龍,7月3日下午1點)
5)贊譽作者 陳緒博士 (Intel中國云計算戰略總監,中國開源軟件推進聯盟常務副秘書長)
6)本書主編Peter Ye(葉毓睿);
7)第26章 容器與SDS 作者Henry Zhang(張海寧,他同時是《區塊鏈技術指南》的作者);
8)第20章 Zadara云陣 作者鄒均(他同時是《區塊鏈技術指南》的第一作者);
總結
以上是生活随笔為你收集整理的两本赠书和投票 | 服务器里面一定要有硬盘吗? - SAS与SDS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ios底部安全距离
- 下一篇: 2017云栖大会门票转让_云栖大会的门票