哪些應用場景適合雲存儲?存儲虛擬化、分佈式存儲、對象存儲這幾種技術主要解決什麼問題?技術產品選型如何考慮?node
企業哪些應用場景適合藉助雲存儲來實現?算法
傳統 IT 環境中使用傳統存儲的困境有那些?那些應用場景是傳統存儲不能知足而必須藉助雲存儲來實現的?數據庫
分享一:swift
一、虛擬機存儲後端
虛擬機存儲是雲計算平臺中運行的虛擬機以及虛擬機鏡像的存儲環境,主要特色包括:api
1) 文件較大,通常爲 10G 以上;安全
2) 單個虛擬機的 IOPS 和帶寬要求低,通常在幾十之內;服務器
3) 可用性要求較高。restful
通常來講,在雲計算環境下會存在大量的虛擬機,少則上千臺,多則幾萬臺甚至幾十萬臺,雖然單臺虛擬機所需資源較少,可是量變帶來質變,總體對於存儲的性能需求極高,該場景下爲了知足全部虛擬機訪問帶來的帶寬要求,使用傳統存儲的解決方案須要購置多套 SAN 或者 NAS 存儲設備並分別部署,顯然價格較貴。數據結構
雲存儲可構建統一的資源池,並可以動態擴展資源,並有效提高存儲資源的管理和使用效率。結合虛擬機存儲的使用特色,存儲資源池可以使用 SAS 接口的磁盤甚至 SATA 接口的磁盤。
二、非結構化數據存儲
業務系統在運行過程當中,通常會生成一些非結構化的數據,包括記錄的系統運行日誌、生成的一些臨時文件等。該類型數據的特色包括:
1) 文件大小中等,通常幾十 MB 到幾百 MB 不等;
2) IOPS 和帶寬要求低,通常是連續讀寫;
3) 可用性要求較高。
該類型的應用場景相似於虛擬機存儲,差異主要在於虛擬機主要表現爲隨機訪問,非結構化數據主要表現爲連續訪問。另外,該場景下的文件數量會很是大,文件大小也差異較大,從幾 MB 到數 GB 都會有。
所以,雲存儲也可很好的知足上述要求,使用廉價 SAS 和 SATA 磁盤知足大規模非結構化數據的存儲,並提供良好的擴展性。
三、數據庫存儲
業務系統運行過程當中另一個典型的存儲應用就是關係型數據庫,基本上全部的業務系統均須要存儲用戶基本信息、參數信息、業務交易信息等內容。結合數據庫使用的不一樣場景,包括聯機業務數據庫、批量業務數據庫和參數庫,相關的主要特色以下:
1)聯機業務數據庫:面向實時交易業務處理過程當中的數據存儲和訪問,主要特色包括業務訪問併發量很高、實時性和可用性很高、天天數據量較大等,數據表內容可達到幾千萬甚至幾億條記錄;
2)批量業務數據庫:面向交易業務處理過程當中的非實時數據處理,好比說基於歷史數據的統計分析,主要特色包括業務訪問併發量不高、訪問數據量較多、實時性較高等;
3)參數庫:面向業務處理過程當中關聯的用戶信息、商戶信息、業務參數等內容,主要特色包括數據增長緩慢、業務訪問併發量不高、實時性較高等。
雲存儲結合固態硬盤 SSD 的應用,徹底能夠知足數據庫應用場景下的帶寬和 IOPS 方面的性能要求。
分享二:
首先說下傳統存儲(包括 DAS 存儲、NAS 存儲、SAN 存儲等)的困境,主要是管理不方便,容量擴展麻煩,從成本上考慮硬件成本和維護成本都很高。
若是使用雲存儲,優勢仍是很明顯的,開箱即用,擴容也比較簡單。
至於哪些場景的話,主要是多媒體,音樂,圖片,視頻監控文件,軟件,鏡像,掃描件等其餘海量文件的存儲,這些均可以使用,主要仍是易用性跟性價比。
分享三:
從架構來看,雲存儲比緊耦合設計的傳統存儲有更好的橫向擴展性,這樣在容量和性能上有更大的彈性,另外雲存儲採用的糾刪碼技術也能夠提供較之於傳統 RAID 更高的可靠性,能夠應對多個數據節點的同時失效。再者基於 x86 架構的分佈式雲存儲較之於傳統機櫃式存儲有更靈活的部署方式。市面上的雲存儲廣泛採用低速 sata 盤,實際上,對於沒有高性能要求的非交易型系統,對於這些系統產生的海量非結構化數據,雲存儲是個不錯的選擇。另外,從對海量數據的處理性能上來看,尤爲是存儲容量在幾百 TB,甚至是 PB 級,文件數量在千萬、億量級的時候,傳統的 SAN 和 NAS 實際上已經有了瓶頸,而採用扁平化數據組織方式的對象存儲就有了很明顯的優點。
分享四:
雲存儲相對傳統存儲能解決的問題:
1.節點級的高可用;傳統存儲只解決硬盤級的故障,對設備整機損壞沒有防禦
2.總體接入性能隨容量線性增加,多節點併發讀寫的模式;傳統存儲的 IO 性能隨着擴展櫃的增長呈拋物線分佈
雲存儲的適用場景:
1.開源雲計算的後端存儲,若是上 openstack,cloudstack,一般後端會配分佈式存儲而不是 SAN 存儲。
2.海量非結構化數據存儲,對於數 PB 的數據的統一存儲,一般需藉助分佈式文件系統。
3.海量小文件數據存儲,對於文件規模上億的存儲場景,一般使用對象雲存儲,以得到更高的 IO 性能和擴展性。
分享五:
從不度的維度能夠有不少場景,幾乎上規模的容量、性能及文件數量要求的大前提下,基本上均可考慮採用雲存儲實現。從常規容量及性能維度來看,場景有海量存儲需求(如多媒體存儲)、對容量、讀寫性能有同步橫向擴展需求(超算或高性能計算)等。從數據結構類型維度來看,如非結構化數據、大型數據庫、虛擬機存儲等。
雲存儲主要技術路線有哪些?各有哪些優缺點?
分享一:
存儲虛擬化:
存儲虛擬化更可能是對傳統塊(FC SAN,IP SAN)的虛擬化。 其主要解決了企業內部傳統存儲資源沒法有效進行存儲資源整合和統一管理的難題。能夠有效的提高總體存儲資源的利用率和下降人員運維成本。
同時做爲虛擬化網關,極大的方便了異構品牌平臺存儲間的數據集中和數據遷移。
不少存儲虛擬化網關自己具備遠超傳統存儲的企業級軟件功能:好比thin,壓縮,快照,clone,數據複製等。能夠經過虛擬化網關進行統一的存儲複製交付功能。
因此存儲虛擬化的主要勇武之地仍是在傳統IT環境及私有云環境。天然面向的也是高IO負載,低讀寫延遲等重要應用業務環境,好比數據庫。是對傳統IT環境中企業存儲陣列的一個補充和昇華。
SDS軟件定義分佈式存儲:
爲何對於分佈式存儲我要在開頭加上「SDS軟件定義呢」? 由於咱們這裏討論的是雲存儲關聯的分佈式存儲。
分佈式存儲早多少年即有之了,而且不少都耳熟能詳。好比EMC 的VMAX 高端存儲陣列就是一種緊耦合的專有硬件的,硬件和軟件相集成的傳統分佈式存儲陣列。好比IBM 的XIV 高存儲陣列也是硬件和軟件相集成的高密度容量的分佈式存儲陣列。這些傳統分佈式存儲陣列具備傳統高端存儲的高IOPS,低讀寫延遲優勢,同時有具備分佈式存儲多副本,節點冗餘自恢復等特點。
再說一說SDS 軟件定義分佈式存儲,這個是雲裏面,不管是公有云仍是私有云都在炒的潮流。也是雲存儲的主流當家花旦。
通常的SDS 軟件定義分佈式存儲產品功能協議支持都比較全:
A. 塊block協議 給輕量級數據庫,VM,提供高性能塊裸設備。
B. 文件file協議提供相似NAS 的文件共享功能或是承載非IO性能密集型的應用。
C. 支持api調用存取object 對象,用來存儲海量數據文件。
針對以上三個協議我要多說幾句:
一、首先SDS分佈式存儲在block塊協議這方面相比傳統存儲在高性能低延遲、成本控制及易管理維護方面沒有任何優點。一樣的一套oracle數據庫採用傳統存儲TCO整體擁有成本方面有可能只是SDS分佈式存儲成本的1/2甚至更少,這個在之前多是誤區,可能你們都認爲開源的,或是軟件定義的本身DIY搭的東西是最便宜的,其實不少時候事實恰好相反,開源的DIY的東西反而多是最昂貴的。
對於傳統IO密集型數據庫應用來講,當前最好的存儲模式仍是採用傳統高端存儲陣列,由於這就比如存儲中的跑車法拉利,雖然價格貴,可是久經驗證,在性能和穩定性方面絕對可靠。
SDS分佈式存儲當前由於三副本等緣由容量成本在超大規模如下場景成本優點不明顯,甚至是劣勢。性能方面仍是隻能適用於opentask、VM、輕量級數據庫場景。塊協議廣泛存在IO輸出不穩定、延遲高等缺點。另一個缺點就是在企業級存儲軟件功能方面,好比快照、clone,複製等技術方面相較傳統存儲還不是十分紅熟,沒法在生產環境中應用。
可是SDS 軟件定義分佈式存儲是將來的大方向,也是在逐漸成熟中,將來一統天下也未可知。
2.SDS 分佈式存儲在file文件協議這一塊PK的對手也慢多的,像傳統的NAS存儲,愈來愈火的分佈式或是集羣文件系統,好比GlusterFS、GPFS 等,我的感受這一塊SDS分佈式存儲會搶佔不少傳統NAS的市場份額,畢竟不少使用NAS的應用在IO性能和延遲方面要求低不少, 使用分佈式存儲的file協議,能夠解決NAS 產品scale-out橫向擴展不足的缺點。NAS 能應用的不少場景,一款優秀的SDS分佈存儲file協議應該也能夠知足。
3.對象協議。
這個放在下文對象存儲中一塊兒討論。畢竟多數SDS 分佈式存儲的底層就是調用對象來存儲和讀取數據的。塊block協議功能和file協議功能都是間接調用基於的對象來實現的。
對象存儲:
其實這個沒有什麼好說的。對象存儲的出現就是爲解決了互聯網上存儲海量大數據的問題。好比存儲萬億的視頻、圖片,照片等。好比進行海量的數據歸檔,數據備份等。如今很流行的用法就就是用對象存儲存儲海量非結構化數據,而後進行大數據分析。
優勢:對象存儲其採用key-volume的扁平化存儲架構設計,使用簡單,調用API就能進行數據存儲和讀取。能夠存儲海量數據,這點傳統存儲和NAS就沒轍。在海量數據場景中你只能選擇對象存儲。若是傳統SAN存儲是跑車,NAS是貨車,那麼對象存儲就是萬億噸海上集裝箱大油輪。對對象存儲來講,單個客戶端的訪問效率不高,延遲也很高。可是你架不住他海量併發呀,互聯網上海量客戶端併發訪問,這個帶寬和整體性能一下就上去了。
缺點:單個客戶端訪問效率低,延遲高。應用功能和場景受限。對象存儲不支持隨機讀寫操做,只能全讀全寫,其面向的是一次寫入,屢次讀取的非結構化數據存儲的需求場景。
企業在分佈式存儲技術上主要是解決那些問題?而且技術產品選型上應該如何考慮?
分享一:
SDS 軟件定義分佈式存儲支持三種協議方式:
A. 塊 block 協議 給輕量級數據庫,VM,提供高性能塊裸設備
B. 文件 file 協議提供相似 NAS 的文件共享功能或是承載非 IO 性能密集型的應用
C. 支持 api 調用存取 object 對象,用來存儲海量數據文件
雖然 SDS 分佈式存儲有不少中,可是仔細分析會發現不一樣廠商的分佈式存儲都會有其清晰的市場定位和優點場景:
好比 solidfire 其主要定位就在塊 block 協議,不提供 file 和 object 對象功能。其主要定位就是 7 成用來雲 opentask,VM,2 成用在輕量級數據庫好比 mongoDB,PG,1 成用來 IOPS 2W 左右的物理機。而且其核心設計裏理念就是雲裏面保證 qos,單個 host 提供有限的 IO,其架構不適用於高帶寬應用。 但其優點就是用豐富的 API,和雲集成比較好。不能知足也不適合傳統高性能數據庫應用。
好比華爲 Fusionstorage block 存儲其定位也是在塊 block ,主要提供高性能塊存儲,能夠適用於通常的高性能數據庫。可是也不支持 file 和 object 協議。其支持應用主機經過兩種模式 SCSI 和 iSCSI 模式訪問存儲集羣。
仔細分析其架構和 IO 傳輸路徑會發現:單個主機在 iSCSI 訪問模式下只能訪問部分的存儲節點,沒法作到整個集羣的 IO 併發響應。單個主機的 IO 路徑和 IO 性能被限制在固定的幾個存儲節點,此模式下沒法發揮出分佈式存儲的架構優點,整體使用方式相似傳統 SAN 存儲(這樣還不如用傳統存儲來的高效和方便)。其餘的分佈式 IP SAN 存儲只要使用 iSCSI 協議也都存在這樣架構劣勢。
Fusionstorage 採用 SCSI 模式訪問存儲集羣時,才真正意義上作到對單個應用主機的 IO 處理的分佈式併發處理響應。
因此說在玩分佈式 IP SAN 存儲時,對同一個存儲產品,其支持的那種存儲訪問協議和模式的很重要。這甚至決定了你是把一套分佈式存儲當作傳統存儲在用,仍是在真正意義上當作分佈式存儲在用。
好比 WOS 其定位就是 objec 對象海量文件使用場景,其在塊 bolck 場景應用上就不行了。
還有 ceph 其 塊,file,object 協議都能提供,可是整體上地位比較尷尬。 塊協議方面比不上專業廠商的分佈式存儲,file 功能還不成熟。 object 也比不上專業作 object 的廠商。 但好在其是開源的。
因此首先要明白你的業務類型和存儲適用場景。針對你的需求來選擇不一樣的分佈式存儲來知足應用業務需求。
傳統存儲陣列分佈式架構和 SDS 軟件定義分佈式存儲架構的相同點和不一樣點?各自定位有何不一樣?
分享一:
二者都是分佈式存儲,主要是適用場景有所不一樣。
差別分三個層面說,
1.硬件形態:部分高端的傳統分佈式陣列仍是控制器架構,然後者基本是直接跑在 x86 服務器上和計算融合在一塊兒使用
2.冗餘實現:有所不一樣,前者更多用糾刪碼;後者更可能是作副本,也有先作 RAID 再作副本,糾刪碼比較少
3.產品的商業模式:前者屬於一個完整的產品,一般來自傳統存儲公司或硬件設備廠商,例如 EMC 的Isilon,
後者主要給虛擬化提供支持,不多做爲獨立產品出現,更多來自軟件廠商,例如如今 openstack 的各類後端存儲,ceph,gluster,swift
前者優點是性能和可靠性,更適合專業的細分應用,好比廣電行業的視頻編輯應用、IO 密集型的數據庫應用等;
後者的優點是彈性擴展、接口豐富、開源,主要是軟件廠商在使用和維護
分享二:
這二者的第一個差別點是通用硬件和專有硬件。
SDS 明肯定義是基於通用硬件,大部分狀況下「通用硬件」是指 X86 服務器。若是用車子打比方那就是量產車,上 4S 店就能買到的豐田大衆寶馬奔馳。
而傳統陣列一般是專有的控制器架構,常見都是雙控或多控,所謂控制器是一個爲存儲產品的使命專門設計製造的專有設備,有時候你也能夠理解爲嵌入式的軟硬件一體設備,爲存儲這種特殊用途定製。一樣用汽車類比那就是特殊用途車,越野暴改車。
分佈式架構都是基於多個硬件節點,利用軟件和其內涵的分佈式算法有機地揉和成一個系統,向外提供高可靠高併發的服務。和傳統存儲相比,兩種的「基底」硬件明顯是不一樣的。SDS 的硬件節點是通用型,天然硬件可靠性也比較通常。所以須要在軟件和算法層面更多的考慮到硬件故障,上規模的產品一般在設計時就把設備節點故障當中常態處理,並不視爲異常。而傳統存儲這邊的硬件在可靠性上明顯更強,對數據強一致性等指標更爲重視。
從系統架構上看,SDS 有不少是對稱式架構,全部節點配置都相同,標準化的硬件節點,像樂高積木同樣自由增長,性能容量同步橫向擴展。傳統存儲陣列作分佈式仍是非對稱式多,構建系統有多種規格和角色設定的節點,甚至是異構的。這種系統通常必須有一個控制/管理節點,所謂「機頭」或者「存儲網關」,下面再掛接「後端存儲」,即各種陣列,異構兼容。
因爲固態存儲的普遍應用,基於通用 X86 服務器的 SDS 也能經過多節點聚合獲得很好的性能表現,所以傳統存儲在性能上的優點再也不,二者都能提供給應用系統足夠的性能。SDS 一般把原來依附於傳統高端存儲的企業級高級功能如快照克隆遠程複製都提煉出來放到軟件裏,在某種程度上也提供了這些高級功能,但總體架構的變化,(SDS+計算虛擬化,二者再深度結合就變成 HCI 超融合架構),致使一些容災備份實現機制有別於傳統,提供了新的可能性,是否繼續沿用舊機制值得關注。
從定位上來講,我認爲傳統存儲陣列的分佈式仍是屬於漸進式創新,在原來的傳統 IT 環境基礎上作的小步調整,和原有應用和系統配合度比較高,改動不大。擴展規模上相對來講小一點。若是有系統改造的需求,這類架構是能夠考慮的。
而 SDS 仍是有較大的變化,有點顛覆性創新的意思,架構變化較大,系統移植過去可以得到更好的擴展性,可以適應更大的系統規模,可是原來的舊系統不少沒法利用。勉強連上也只能保證連通性,性能和高級功能就顧不上了,因此整體來講可能更適合新建的系統。
企業在存儲虛擬化技術上主要是解決那些問題?而且技術產品選型上應該如何考慮?
分享一:
主要是解決:
1. 異構存儲的集中管理
2. 存儲資源的池化
3. 爲存儲自動化建設蓄力
4. 爲雲環境準備存儲資源
5. 提升存儲使用和運營效率
6. 數據的備份和分層
……
因此啊,主要考慮:
1. 兼容性
2. 易用性
3. 對於性能的提高
4. 附加功可以不夠知足二期建設要求
5. 安全性
6. 價格。。。土豪無視
分享二:
補充一點。豐富的軟件功能性能也是一個重要的考慮點。
就拿 svc 和 vplex 來對比。svc 在軟件功能:thin,快照,clone,壓縮,數據複製等軟件功能方面全面而且強大。最新版本的 svc 甚至直接支持將自身數據和快照經過 s3 接口直接上傳到雲和對象存儲,進行復制和備份。
而這些偏偏是 vplex 的短板。vplex 缺少當今企業級存儲必要的軟件功能,甚至在這方面遠落後於通常的存儲陣列。如數據保護,壓縮,分層,thin 等。最爲奇葩的是居然不支持在 vplex 上作快照,clone 和複製。
這讓 vplex 僅僅只是一個虛擬化網關功能。沒法作到在虛擬化層面,對存儲軟件功能進行整合和在虛擬化層對外提供一致存儲軟件功能。可是就是由於功能少,複雜度下降,在穩定性和性能方面比 svc 有優點。而且 svc 集羣不是真整意義上的分佈式架構,而是分多個 iog 組每一個組內的兩個節點是相似中端存儲的主被模式。
總之若是你在存儲虛擬化層不須要一些基本的軟件功能,好比 thin,快照,clone 等,那你能夠選擇vplex 也能夠選擇 svc。
若是你想要一個完整的存儲虛擬化解決方案。那麼你沒得選,只能選擇 svc。
企業在應用對象存儲技術主要是解決那些問題?而且技術產品選型上應該如何考慮?
分享一:
文件 NAS 存儲的缺點:
讀寫速率低,傳輸速率慢:以太網,上傳下載速度較慢,讀寫延遲比傳統 SAN 存儲高不少。
雖然說也能夠存儲海量文件,可是由於 inode,目錄層級的限制,單個目錄深度和存儲文件數量是有上限的,分層文件結構的命名空間有限,沒法在真正意義上作到存儲海量數據。
塊或 SAN 存儲的缺點:
1.採用 SAN 架構組網時,須要額外爲主機購買光纖通道卡,還要買光纖交換機,造價成本高。
二、主機之間的數據沒法共享,在服務器不作集羣的狀況下,塊存儲裸盤映射給主機,再格式化使用後,對於主機來講至關於本地盤,那麼主機 A 的本地盤根本不能給主機 B 去使用,共享數據受到不少限制。
三、通常都是集中使用方式,一個主機分好多的盤。擴展性方面是硬傷。單個應用容量及其容易到達單臺存儲容量上限的限制。
對象存儲綜合了 NAS 和 SAN 的優勢,同時具備 SAN 的高速直接訪問和 NAS 的數據共享等優點,提供了高可靠性、跨平臺性以及安全的數據共享的存儲體系結構。最最重要的是其接近無限擴展能力的,能夠在真正意義實現非結構話數據的海量存儲。其扁平化的存入和讀取數據對象方式,使其使用方式簡單,應用經過標準 API 接口進行調用,十分契合互聯網大數據的存儲。
對象存儲典型使用場景:
對比傳統存儲解決方案的優點:
分享二:
對象存儲天生具有分佈式的架構優點,擴展方便;另外它沒有多層樹級文件目錄,採用查表式訪問操做,小IO性能好,適用於海量小文件的應用模式。若是業務收益能夠支撐 IT 投入,又有必定的研發維護能力,能夠用開源對象存儲方案本身搭建。
分享三:
1.解決跨地域多點協同數據訪問
2.解決海量文件持續一次寫入屢次訪問的問題
選型上考慮數據保護的等級和成本以及初期落地的量級等因素。
另外運維的管理能力和售後支持團隊也須要作爲考慮範圍。
儘可能選擇通過經久考驗的廠商品牌。
分佈式存儲和對象存儲應用場景有哪些不一樣?
分享一:
一般,分佈式存儲和對象存儲是包含關係,
分佈式存儲是一種存儲節點的物理組織形態,
分佈式存儲能夠提供塊存儲、文件存儲和對象存儲服務;
是相對傳統單機集中存儲的概念。
對象存儲是一種邏輯上的存儲訪問接口,
是指採用 restful 框架進行數據訪問的模式,本質上也是一種輕元數據、功能簡化的文件存儲,對象存儲在物理上一般是分佈式的形態。
看一下上圖你就知道
傳統存儲的局是否是愈來愈小了?
分享一:
我說一下我我的的經驗。
sds 軟件定義存儲,分佈式存儲和對象存儲是將來大的趨勢這個必定是對的。
傳統存儲在近幾年還會是主流存儲。
爲何?我只說快 block 這個方面。就拿我測試過得多家 sds 分佈式塊存儲來講吧。國產 ceph,華爲fusionstorage,solidfire,hedvig 等。他們有個共同的特色就是不夠成熟。展現 PPT 的時候一個比一個能吹,讓你以爲牛逼到爆。實際測試後基本見光死。
性能方面仍是比傳統存儲有差距,io 穩定性方面也較差,當前階段只能用在 io 性能要求不高的輕量型應用上面,生產先不要想,先在測試上用用,而且是 io 要求較低的測試應用。
還有一個缺陷就是存儲軟件功能方面很是不成熟,快照 clone,複製徹底就是不能用,大多不支持一致性快照組。這些在傳統存上平日常常的功能方案,你和 sds 軟件的研發人員聊他們壓根沒有一致性快照組,對快照,clone 卷 overwrite 刷新這些概念。
分享二:
首先,若是定義爲傳統存儲,而且固守原來的架構方式,甚至缺陷和不符合新型應用需求的特色,那麼毫無疑問,它註定就是要被顛覆的,新技術打破傳統,是歷史的必然。
另外一方面,傳統存儲有它自己優勢,結合自身的優勢,有它命脈的傳承,好比閃存,存儲存儲化產品,其實某種程度上是在傳統存儲領域的拓展,是傳統存儲的進步和突破,是具有沿襲的
特徵的。
IT 架構就是經過不斷改變,迭代,從而進步的。
原文地址:http://stor.51cto.com/art/201808/580810.htm