什麼是軟體定義存儲(SDS)?現在有哪些產品,應用情況如何?
Software-defined storage
下次自己搜瀉藥,這個問題太大了,一時我答不上來,但根據我目前了解,只是改變了寫入的方式而已,但根本還是一樣的讀和寫,好比如以前沒有虛擬機打開很多軟體存放很多文件無法讓處理器和內存完全跑滿有了虛擬機後可以榨乾物理機全部資源一樣。但這個詞感覺不怎麼著地。。。應該幫不上你。。。
這個問題太大了,我先試著回答你第一個問題吧。什麼是軟體定義存儲(SDS)?
先來說一下軟體定義的概念。
最近兩、三年,在IT圈裡,除了雲計算、大數據、人工智慧之外,最火的就屬「軟體定義」了,先是有軟體定義網路 (SDN, Software DefinedNetworking),繼而有軟體定義數據中心(SDDC, Software Defined Data
Center)和軟體定義存儲(SDS, Software Defined Storage)。後來還陸續出現了軟體定義基礎架構 (SDI, Software Defined Infrastructure),軟體定義一切(Software Defined Everything, 或者Software
Defined Anything,有些簡稱SDX)。
軟體定義其實是一個過程,不是一蹴而就的目標,它分成不同階段。軟體定義就是要將特定的硬體與軟體進行解耦,將硬體的可操控成分按需求,分階段的,通過編程介面或者以服務的方式逐步暴露給前端應用,分階段地滿足應用對資源的不同程度、不同方面的靈活調用。
SDS的定義並沒有統一的標準,各家權威諮詢機構,各大廠商等,都對這一概念有著不同的解釋或描述。這裡我主要選擇幾家權威的吧:
VMware
軟體定義的存儲產品是一個將硬體抽象化的解決方案,它使你可以輕鬆地將所有資源池化並通過一個友好的用戶界面(UI)或API來提供給消費者。一個軟體定義的存儲的解決方案使得你可以在不增加任何工作量的情況下進行縱向擴展(Scale-Up)或橫向擴展(Scale-Out)。
EMC
EMC我並沒有找到官方的關於它的定義,這裡就引用EMC高級存儲業務總裁Amitabh Srivastava的話來回答你的問題吧(自行翻譯^_^):
When 「defining」 SDS, we need to take a holistic view of storage –
across all vendor arrays and across all commodity hardware – to provide a
complete solution that meets the requirements of the Software-Defined Data
Center. SDS separates the storage management services (or control plane) from
the storage infrastructure (or data plane) while still retaining and extending
the unique value, characteristics, and intelligence of each vendor array(s).
This approach provides choice and flexibility to enterprises – so they can run
their business with the necessary speed and agility required to be successful
in today』s world.
IBM
IBM將軟體定義存儲分為三步走戰略:
第一步,「軟體定義存儲」1.0時代---指虛擬化和優化;
第二步為「軟體定義存儲」2.0時代--可延伸性及具行業導向;
第三步為「軟體定義存儲」3.0時代---分析及應用驅動。
SNIA (全球網路存儲工業協會)
最權威的SDS的定義莫過於SNIA對SDS的定義了。SNIA認為,SDS需要滿足的是:提供自助的服務介面,用於分配和管理虛擬存儲空間;
SDS應該包括如下功能:
·自動化 Automation– Simplified
management that reduces the cost of maintaining the storage infrastructure.
· 標準介面 Standard Interfaces –
APIs for the management, provisioning and maintenance of storage devices and
services.
· 虛擬數據路徑 Virtualized Data
Path – Block, File and Object interfaces that support applications written to
these interfaces.
· 擴展性 Scalability – Seamless
ability to scale the storage infrastructure without disruption to availability
or performance.
· 透明性Transparency – The
ability for storage consumers to monitor and manage their own storage
consumption against available resources and costs.
寫到這裡什麼是軟體定義存儲我想應該定義的差不多了吧,下列來張圖綜合涵蓋了軟體定義存儲的全部要點:
雖然每家對SDS的定義都不盡相同,各有側重點。但可以看出來,自動化、基於策略或者應用的驅動都幾乎都成為大家定義中的必備特徵。
軟體定義存儲(Software-defined storage,SDS)不是很好理解,它是一種數據存儲方式,所有存儲相關的控制工作都放置在相對於物理存儲硬體的外部軟體中。這個軟體不是作為存儲設備中的固件,而是在一個伺服器上或者作為操作系統(OS)或hypervisor的一部分。
軟體定義存儲可以保證系統的存儲訪問能在一個精準的水平上更靈活地管理。軟體定義存儲是將軟體從硬體存儲中抽象出來的,這也意味著它可以變成一個不受物理系統限制的共享池,以便更有效地利用資源。存儲也可以通過軟體和管理進行部署和供應,其管理程序可以通過基於策略的自動化管理來進一步簡化。軟體定義存儲的概念很大,存儲虛擬化、Server SAN、超融合架構(HCI)都是SDS的一部分。百度百科有介紹SDS(軟體定義存儲)
現在做軟體定義存儲的產品有很多,國外有VMware VSAN、EMC ScaleIO、Nutanix,國內有華為FusionStorage、志凌海納SmartX、XSKY XEBS、.....。看XSKY的網站做的功能還比較全http://www.xsky.com/SDS是在Software Defined Data Centre下的一個子集,目前的發展還不如SDN成熟,各個廠商有自己的定義和產品。應用的案例已經不少,用家既有ISP,Enterprise,也有大學的lab;有的是Tier0-3都使用一個品牌,也有的是混搭不同牌子,還有一些並沒有加入SDS contorller,而是從CMP的層面進行控制。一般而言,既然客戶選擇走上Software-defined之路,方向就是更開放靈活的IT環境,更少的vendor lock-in,更多更快的資源共享,更高的運維性價比,在產品/廠商/集成商的選擇上既要考慮項目的一次性投入、運維成本、參考案例,也要考慮從傳統到新技術的平滑遷移,配套的IT服務管理等等。個人經驗,客戶方最大的困擾不是SDS技術的實現,而是隨之而來在Information Security信息安全和ITSM服務管理上面的問題。另外,現有的企業組織架構大部分是infra基礎架構、application應用開發和operation運維分家的,當企業引入這種敏捷性高,以應用層為驅動的技術之後,如何去重組IT部門和運營模式才是更大的課題。
以下是幾個主流SDS廠家,沒有特定的deployment環境是無法比較的,僅作為一個羅列:- HDS:Controller的部分使用HSV,Fabric可以搭配Brocade,storage的部分從T0到T3都有產品,其中G1000在2015年被Gartner評為High End Array的第一名。能和openstack、VMware的cloud platform進行集成。
- EMC:Controller的部分使用EMC ViPR Controller,storage的部分都有自己的產品例如XtremeIO, ScaleIO,也兼容第三方的SAN storage。能和openstack、VMware的cloud platform進行集成。
- IBM:Controller的部分使用IBM Spectrum Control和Virtualize,storage的部分有自己的產品例如IBM FlashSystem 900,也兼容第三方比如file storage可以選擇NetApp。
- NetApp:提供storage的management software並支持與orchestration layer的集成。Storage的部分可選的產品包括NetApp AFF 8080和NetApp FAS8000等等,取決於需求。
- Huawei:Huawei給移動通信公司提供了相當volume的SDS,通常印象中會有一些proprietary的東西,實際上也是支持Openstack的,生態圈做的不錯。可選的產品包括FusionStorage 6.0,OceanStor 9000等等,Controller則是可以考慮Huawei OceanStor DC。
- HP:HP的"Controller"和NetApp類似,只是management software,支持與orchestration layer的集成。可選的產品包括HPE 3PAR StoreServ,HPE Apollo 4x00等等。
轉一個和Ceph相關的,至於為啥轉Ceph,如果你不知道,就不要說你是搞軟體定義存儲的了。
一
裝修
前陣子家裡裝修,剛好樓下熱情、好客的鄰居是做鋁合金傢具工廠的,新型傢具材料,給了些樣品,即使是我這種外行,也會真心覺得材質確實好,當然,價格也基本是出廠價,比建材市場更是便宜非常多。所以,櫥櫃的裝修就這麼定下來了。
但在具體訂做的過程中,還是發生了幾件惱人的事情:
首先,工廠沒有櫥櫃的設計,鄰居自己也忙,需要我提供設計圖紙,而且繪圖他也沒人,只會看。我只能撿起大學所學的機械製圖,花了大半天功夫畫了張圖給他。
其次,因為不夠專業,所以沒有考慮到瓷磚/地板對尺寸的影響,導致安裝時問題不斷。比如房間門裝矮了,廁所門沒考慮瓷磚厚度,導致裝不進去等等…
現在回想起這件事,我的鄰居當然是沒有錯的,原因其實在於這個過程中缺少一個很重要的 東西。而這個東西,也是三年來杉岩在基於Ceph實現產品化過程中,我們和用戶同樣遇到的。
二
感悟
Ceph作為一款十年歷史的開源分散式產品,其穩定性、可用性確實得到業界的普遍認可。2014年我們基於Ceph給用戶提供的一個管理系統,到目前為止僅出現了兩次問題,其中一次是硬體問題,一次是使用方式不當的問題。作為一個開源產品,能夠有如此高的穩定性和可用性,這應該就是Ceph能夠獲得今天的成績的首要原因。
關於Ceph的優勢,這裡簡單概括如下:
對各種異常考慮的比較完善, 比如網路抖動、去中心化的心跳機制、恢復機制對複雜異常的考慮;
很少因為代碼問題導致程序coredump,也沒有出現過內存泄漏問題,說明代碼質量還是不錯的;
高級功能比較全面,支持塊、對象、文件,同時支持副本、EC、tier、scrub等高級特性;
不過,「好的產品優點相似,不好的產品缺點卻各有各的不同」,我們今天和你分享的更多的就是這些不同。隨著我們服務的企業客戶的不斷增加, Ceph真正應用於企業客戶不同場景中所遇到的各種問題也逐步開始暴露。
採用Ceph替代傳統SAN的煩惱
在2014年到2015年上半年的時候,杉岩利用Ceph主要給客戶提供一些替代IP SAN的解決方案,客戶希望利用Ceph的高擴展性、高可靠性提供一個相對規模較大,性價比較好的通用存儲池,降低一些數據量較大、低價值數據的存儲成本。這時,就遇到了各種問題:
1、不支持標準的塊介面
Ceph稱提供塊介面,但其實它的塊介面之支持Qemu-KVM,並不是一個傳統的SCSI標準塊介面,是無法直接應用於VMware、Windows和Solaris等系統的。這些系統對接的塊存儲都是類似於FC SAN或者IP SAN這種提供標準SCSI介面的設備。將Ceph推向這些傳統的企業應用是無法實現對接的。
2、運維管理手段和工具缺乏
這個問題是Ceph目前直接應用於企業客戶最大的問題,易用性和易維護性,SageWeil在今年也提出易用性是未來Ceph的重要改進方向。杉岩在應用與企業客戶中遇到各種問題,然後不斷完善產品,其中最典型的問題就是各種硬體備件的更換。
在使用傳統存儲時,當硬體部件出現問題時,企業的IT運維人員希望儘快更換配件,避免出現更加嚴重的問題,為此一些企業都有的備件庫,當硬體配件出現問題時,運維人員通過更換配置做簡單的操作就可以完成配件的更換。而如果直接使用Ceph,則可能要面臨敲一堆的命令才能完成更換的操作,這是Ceph直接作為企業產品無法接受的。
3、無法實現數據卷的安全隔離需求
傳統的企業存儲是一個公共資源,上面運行著多種業務應用,為了防止不同業務應用讀取或者破壞非自身業務應用的數據,傳統企業存儲通過LUN MASKING/CHAP 協議等,實現存儲卷的安全隔離。
而Ceph設計用於雲平台,所有的RBD對於雲平台的每個主機都是可見可操作的,從而實現虛擬機在整個集群的遷移。所以需要一套在Ceph之上實現一套類似於LUN MASKING的機制,保證不同業務只能看到和訪問分配給自己的存儲卷。
4、混合盤性能無法發揮
另外,我們發現,目前在雲數據中心,客戶更多的還是採用SSD+HDD的混合模式,有部分對性能無要求的客戶採用了純HDD的模式,採用全SSD的客戶目前還沒有實際遇到(有部分客戶做過測試)。
在SSD+HDD混合模式下,Ceph遇到的煩惱是對SSD寫帶寬消耗過大。大家都知道SSD性能很高,這是對於隨機小IO來說,但SATA SSD的順序寫MBPS其實並不高,如下圖是Intel DC S3520的順序寫性能,最大也就380MBPS。一個好一些的SAS盤,寫帶寬都可以到300MBPS,SATA盤至少也有150MBPS的性能。
一般來說客戶的一個存儲節點採用1-2個SSD作為緩存檔,對外提供的帶寬其實也就300MBPS到600MBPS,而Ceph的journal + 兩副本的方式,消耗了4倍寫帶寬,最終實際一個伺服器能提供的寫帶寬只有75MBPS~150MPBS,遠遠小於多個機械盤的順序寫能力,嚴重製約著Ceph的順序寫性能。
Intel DC S3520 固態盤性能Ceph應用在VMware超融合的煩惱
隨著應用客戶的不斷增加,我們發現, Ceph主要的應用場景是虛擬化場景,佔80%以上,其中VMware又佔到了50%以上,而且應用VMware的大部分都是超融合環境。
而此時遇到的主要問題包括:
1、對更好的iSCSI並發能力的需求
在替代IP SAN模式下,不同應用主機之間一般使用LUN比較獨立。可以通過LUN歸屬的方式,不同的LUN通過不同的單個iSCSI Target提供出來,即可實現較好的並發。
但在VMware環境下,一般只劃分很少的LUN(一般1-2個大LUN),供整個VMWare集群共享使用。如果此時依然採用LUN歸屬的方式,單個iSCSI Target將成為整個集群的瓶頸點。在這種場景下,iSCSI必須實現的是一個全Active的架構,保證LUN在所有的target上可以同時訪問,從而保證任何一個iSCSI Target不會成為性能的瓶頸點。
2、必須支持VAAI
VMWare實現VAAI介面,在虛擬機批量創建、克隆,讀寫性能上影響非常大。比如在不支持VAAI的XCOPY時,SandStone跟FC SAN的克隆性能相差10倍。企業客戶一對比,就覺得存儲性能太差。在企業私有雲環境,批量克隆虛擬機確實是一個常見的運維操作,過慢確實也影響到客戶的使用效率。
3、CPU消耗過大嚴重影響性能發揮
Ceph的CPU消耗較高是眾所周知的,當分離部署時這個問題還不明顯,一旦應用於VMware超融合場景,問題就暴露的比較明顯了。因為在超融合環境下,虛擬機需要佔用大量的CPU資源,而CPU的核心在一定範圍內價格是可控的,但超過一定核心數價格會變得非常高。下圖是E5-2600系列CPU的核心數(邏輯核)與價格的對應曲線(價格數據取自中關村在線),一般客戶主要選擇2路E5-2650 – E5-2680的CPU,最大邏輯核心也就24個,往往能分配給存儲的CPU基本只有8-12個邏輯核。
杉岩最初的優化版本必須在16個核心才能返回出兩個Intel DC 3500 SSD的能力,經過一段時間的優化,最終能夠在8-10個邏輯CPU核把兩個SSD的能力發揮出來。
三
進展
經過三年堅持不懈的研發投入以及千百次的用戶現場測試、使用、調優......杉岩正在同每一個致力於Ceph的企業和個人一道將Ceph打磨成一款可以適應於企業客戶的多種場景的企業級產品。Ceph不僅僅是一行行看上去很美麗的開源代碼。
未來,杉岩將秉承「來源社區、貢獻社區」的態度,逐步將在CEPH上取得的一些成績回饋給社區,和大家一起功能促進分散式存儲的健康發展,並為企業客戶提供更靈活、高效、穩定的存儲解決方案。
可以把很多原來很多硬體做的挪到軟體來實現
上海儲迅信息技術有限公司,專做軟體定義存儲,產品線覆蓋面廣,從NAS/IPSAN到分散式存儲,都有自己完整的解決方案。
噹噹~ 聯想超級課第二期來啦!
開課時間:11月22日 20:00
課程:《從0到1了解軟體定義存儲》
開課地點:線上微信群
並且還是免費噠!!!
最近兩三年,IT圈除了雲計算、大數據、人工智慧之外,最火的就屬「軟體定義」了。那軟體定義是啥?軟體定義存儲又是啥?大家是不是有點兒懵呢?
本次課程S姐邀請到聯想集團15年IT基礎架構資深技術專家陳中華,親授40分鐘課程,從0到1走進基於超融合的軟體定義存儲定義和實際應用。
關於講師
聯想集團高級系統專家 陳中華
聯想集團15年IT基礎架構資深技術專家
專註於超融合系統,伺服器虛擬化、桌面虛擬化等領域的架構設計
主導實施過某國有大型銀行和某重要政府單位等在內的數十個項目
課程大綱
1. 軟體定義存儲是什麼?
2. 軟體定義存儲在雲計算版圖中的位置
3. 軟體定義存儲的價值(超融合)
4. 軟體定義存儲(超融合)市場的主要格局
5. 軟體定義存儲的主要行業應用場景
6. 軟體定義存儲的方案要點
7. 軟體定義存儲的發展趨勢
講到這兒,小夥伴們肯定急迫滴想要知道如何參與此次免費課程啦~ 炒雞簡單~
掃描二維碼加課程小助手微信(小助手滴微信昵稱叫做聯想商用服務喲~),小助手拉您入課程群;加小助手時還請備註姓名單位職業進行報名呢!
http://u.wechat.com/MImm9dczDVGqguHEZNDLxu4 (二維碼自動識別)
這個話題實在太大了,建議題主首先搞清楚定義。。
推薦閱讀:
※ScyllaDB簡介
※數據倉庫Hive的使用
※【rocksdb源碼分析】使用PinnableSlice減少Get時的內存拷貝
※淺談分散式存儲系統數據分布方法
※阿里雲做存儲的盤古團隊如何?