雲端儲存技術體系
雲端儲存涉及的知識面很廣,既涉及雲端儲存服務端的技術,又涉及終端裝置應用開發相關的技術。本文章關注雲端儲存系統服務端技術。
雲端儲存技術體系結構分為四層:硬體層、單機儲存層、分散式儲存層、儲存訪問層,下面分別介紹。
硬體層
硬體層包括儲存、網路以及CPU。在儲存方面,除了傳統的SAS或者SATA磁碟,SSD技術發展迅猛;在網路方面,千兆網路卡已經普及,萬兆網路卡離我們越來越近,Google這樣的網際網路巨頭已經開始會試通過軟體自定義交換機;在CPU層面,IntelX86架構成為主流,低功耗逐步成為研究熱點。為了降低成本和能耗,雲端儲存服務提供商往往會定製伺服器,甚至自建資料中心,需要考慮電源、冷卻、PUE(Power Usage Eficiency,能源使用效率)等各種問題。
主機儲存層
雲端儲存系統的底層大多為定製的Linux作業系統,服務提供商需要在檔案系統、網路協議以及CPU和記憶體使用上對Linux系統進行大量的定製化工作。單機儲存系統大致分為兩類:傳統的關聯式資料庫以及NoSQL儲存系統。關聯式資料庫支援二維的關係模式,並提供關聯式資料庫查詢語言SQL,支援事務,索引等操作,使用比較方便。
NoSQL儲存系統則百花齊故,常見的NoSQL系統包括僅支援根據主鍵進行CRUD(Create,Read,Update,Delete)操作的鍵值(Key-Value)儲存系統,也有基於傳統的B樹或者LSM樹(Log-Structured Merge Tree)的儲存系統。
分散式儲存層
分散式儲存層是雲端儲存技術的核心,也是最難實現的部分。分散式儲存系統需要能夠將資料均勻地分散到多個儲存節點上,另外,為了保證高可靠性和高可用性,需要將資料複製到多個儲存節點並保證一致性。當儲存節點出現故障時,需要能夠自動檢測到節點故障並將服務遷移到其他正常工作的節點。分散式儲存層依賴一些基礎服務,常見的包括分散式鎖服務(例如Google Chubby系統),以及叢集資源管理服務(例如Google Borg系統)。另外,分散式儲存層包含分散式快取以及服務匯流排,分散式快取用於提高訪問效能,服務匯流排用於雲平臺應用邏輯解耦。雲端儲存系統既儲存無結構化資料,又儲存半結構化以及結構化資料,分別對應分散式檔案系統、分散式表格系統以及分散式數器庫,面CDN以及P2P技術將雲端儲存系統中的熱點資料快取到離使用者較近的邊緣節點或者臨近的其他使用者的客戶端,從而起到訪問加速的作用,並且節省雲端儲存服務提供商的網路頻寬成本。
儲存訪問層
雲端儲存系統通過儲存訪問層被個人使用者的終端裝置直接訪問,或者被雲端儲存平臺中託管的應用程式訪問。雲端儲存訪問層的功能包括:Web服務、負載均衡、安全服務以及計費。雲端儲存系統對外提供統一的訪問介面,常見的介面是REST或者SOAP這樣的Web服務,需要通過Apache或者Nginx這樣的Web伺服器進行協議轉化,Web伺服器端經常使用LVS(Linux Vitual Server)、HaProxy這樣的軟體或者專業的負載均衡裝置(如F5負載均衡器)進行負載均衡。儲存訪問層需要提供安全和計費服務、安全服務包括身份認證、訪問授權、綜合防護、安全審計、Ddos攻擊預防/防火牆等。
使用者的應用程式可能會託管在應用執行平臺中,應用場景大致分為三類:
- 彈性計算平臺。典型的彈性計算平臺為Amazon EC2以及Microsoft的各種虛擬機器例項,底層涉及的技術包括虛擬機器、自動伸縮。彈性計算平臺通過虛擬機器自身的機制來保證雲安全,比如虛擬機器安全隔離、虛擬機器防火牆。基於虛擬機器的彈性計算平臺的優勢在於相容性,支援各種程式語言和平臺。
- 雲引擎。典型的雲引擎為Google AppEngine,底層設計的涉及的技術主要是應用容器(比如Java Tomcat、Jetty,Python Runtime)以及應用容器自動伸縮。當應用的負載過高時,自動增加應用的執行容器數;反之,自動減少應用的執行容器數。雲引擎通過應用容器的沙箱機制來保證安全性,AppEngine的沙箱環境通過限制每個請求的執行時間來防止多租戶之間干擾,另外,限制應用程式對網路、檔案進行一些危險操作。雲引擎與雲端儲存服務提供商結合較好,但是對於每種不同的程式語言都需要定製相應的應用容器,對程式語言和平臺支援比較有限。
- 分散式計算。雲平臺往往會支援分散式計算,通過後臺的計算例項執行耗時較長的計算任務。MapReduce是最為常見的分散式計算模型,雲平臺一般都支援開源的Hadoop MapReduce計算框架。除了MapReduce之外,還有很多針對特定應用場景的計算模型,例如MPI(Message Passing Interface)、BSP(Bulk Synchronous Parallel)等。
相關文章
- 雲端儲存的技術原理
- 雲端計算儲存技術
- 不同體系分散式儲存技術的技術特性分散式
- 雲端計算導論 # 3 雲端儲存技術:概念、結構模型、關鍵技術、分散式資料儲存、常見儲存結構、應用與問題模型分散式
- 前端儲存技術前端
- openGauss儲存技術(二)——列儲存引擎和記憶體引擎儲存引擎記憶體
- IPFS分散式儲存挖礦系統開發軟體技術分散式
- openGauss儲存技術(一)——行儲存引擎儲存引擎
- Mysql技術內幕InnoDB儲存引擎讀書筆記--《一》Mysql體系結構和儲存引擎MySql儲存引擎筆記
- 可計算儲存技術全面升級CSD 3000儲存體驗
- 雲端儲存架構的技術特點與三個發展方向架構
- InnoDB儲存引擎——Checkpoint技術儲存引擎
- CUUG筆記 儲存技術筆記
- 分散式儲存技術概念分散式
- 分散式系統技術:儲存之資料庫分散式資料庫
- 使用零複製技術提高儲存系統效能
- 【Mysql技術內幕筆記--1】--Mysql體系結構和儲存引擎MySql筆記儲存引擎
- 雲端儲存架構中企業級資料流轉平臺技術方案架構
- 雲端儲存系統監控服務分析
- 雲端儲存及其分散式檔案系統分散式
- 前端儲存技術Cookie,Storage,IndexedDB前端CookieIndex
- IPFS分散式儲存挖礦技術系統開發分散式
- [技術思考]分散式儲存系統的雪崩效應分散式
- 浪潮儲存基於智慧運維技術,加速儲存自治運維
- 三層儲存技術保障雲服務的儲存安全
- hbase的儲存體系
- 玩轉雲端 | 天翼雲物件儲存ZOS高可用的關鍵技術揭秘物件
- OSS雲端儲存管理實踐(體驗有禮)
- 雲端儲存抽象層-FluentStorage抽象
- 區塊鏈技術應用資料上鍊儲存軟體系統開發區塊鏈
- ARM體系中儲存系統
- Android的3種資料儲存技術(一)File儲存Android
- Spring Boot:使用Redis儲存技術Spring BootRedis
- Ceph分散式儲存技術解讀分散式
- [Mysql技術內幕]Innodb儲存引擎MySql儲存引擎
- MongoDB技術分享:WiredTiger儲存引擎MongoDB儲存引擎
- Tair持久儲存系列技術解讀AI
- TiDB 技術內幕 - 說儲存TiDB