基於Ceph物件儲存構建實踐
儲存發展
資料儲存是人類永恆的話題和不斷探索的主題
-
繩結記事
原始社會,文字未發明之前 ,人們所使用的一種記事方法,在繩子上打結記事。
-
穿孔卡
穿孔卡片是始於20世紀的主要儲存方法,也是最早的機械化資訊儲存形式,進入20世紀60年代後,逐漸被其他儲存手段取代。目前穿孔卡片已經極少使用,除非用於讀出當年儲存的歷史資料。
-
磁鼓儲存器
20世紀50年代,磁鼓作為記憶體儲器應用於IBM 650。在後續的IBM 360/91和DEC PDP-11中,磁鼓也用作交換區儲存和頁面儲存。磁鼓的代表性產品是IBM 2301固定頭磁鼓儲存器。磁鼓是利用鋁鼓筒表面塗覆的磁性材料來儲存資料的。鼓筒旋轉速度很高,因此存取速度快。它採用飽和磁記錄,從固定式磁頭髮展到浮動式磁頭,從採用磁膠發展到採用電鍍的連續磁介質。這些都為後來的磁碟儲存器打下了基礎。
磁鼓最大的缺點是儲存容量太小。一個大圓柱體只有表面一層用於儲存,而磁碟的兩面都可用來儲存,顯然利用率要高得多。因此,當磁碟出現後,磁鼓就被淘汰了。
-
磁帶
磁帶是從1951年起被作為資料儲存裝置使用的,磁帶是所有儲存媒體中單位儲存成本最低、容量最大、標準化程度最高的常用儲存介質之一。從 20 世紀 70 年代後期到 80 年代出現了小型的盒式磁帶,長度為 90 分鐘的磁帶每一面可以記錄大約 660KB的資料。
-
軟盤
軟盤發明於1969年,直徑是8英寸,單面容量80KB。4年後,5.25英寸、容量為320KB的軟盤誕生了。軟盤的發展趨勢是碟片直徑越來越小,而容量卻越來越大,可靠性也越來越高。圖2-10是三種典型的軟盤,其中a為不同外觀尺寸的軟盤,b中3.5英寸軟盤的容量為1.44MB,曾經作為主要的移動儲存介質被廣泛使用。到了20世紀90年代後期,出現了容量為250MB的3.5英寸軟盤產品,但由於相容性、可靠性、成本等原因,並未被廣泛使用,如今已難尋蹤跡。
-
光碟
早期光碟主要用於電影行業,第一張光碟於1987年進入市場, 直徑為30cm,每一面可以記錄60分鐘的音視訊。
-
硬碟儲存器
第一款硬碟驅動器是IBM Model 350 Disk File, 於 1956 年製造,包含了 50 張 24 英寸的碟片,總容量不到5MB,機械硬碟發展至今,單盤容量已經超過16T了 。
儲存的三種方式
塊儲存
DAS
直接附加儲存(Directed Attached Storage,DAS)作為一種最簡單的外接儲存方式,通過資料線直接連線在各種伺服器或客戶端擴充套件介面上。它本身是硬體的堆疊,不帶有任何儲存作業系統,因而也不能獨立於伺服器對外提供儲存服務。DAS常見的形式是外接磁碟陣列,通常的配置就是RAID控制器+一堆磁碟。DAS安裝方便、成本較低的特性使其特別適合於對儲存容量要求不高、伺服器數量較少的中小型資料中心。
SAN
儲存區域網路(Storage Area Network,簡稱SAN),SAN預設指FC-SAN,SAN儲存有兩種結構:
-
FC-SAN
典型的SAN利用光纖通道(Fiber Channel,FC)技術連線節點,並使用光纖通道交換機(FC Switch)提供網路交換。不同於通用的資料網路,儲存區域網路中的資料傳輸基於FC協議棧。在FC協議棧之上執行的SCSI協議提供儲存訪問服務。與之相對的iSCSI儲存協議,則提供了一種低成本的替代方式,即將SCSI協議執行於TCP/IP協議棧之上。為了區別這兩種儲存區域網路,前者通常稱為FC SAN,後者稱為IP SAN。
-
IP-SAN
由於FC-SAN的高成本,人們就開始考慮構建基於乙太網技術的儲存網路,使得的iSCSI可以實現在IP網路上執行SCSI協議。但是在SAN中,傳輸的指令是 SCSI的讀寫指令,不是IP資料包。iSCSI(網際網路小型計算機系統介面)是一種在TCP/IP上進行資料塊傳輸的標準。它是由Cisco和IBM兩家發起的,並且得到了各大儲存廠商的大力支援。iSCSI可以實現在IP網路上執行SCSI協議,使其能夠在諸如高速千兆乙太網上進行快速的資料存取備份操作。為了與之前基於光纖技術的FC SAN區分開來,這種技術被稱為IP SAN。
優點
- 高效能,集中化的管理,穩定性和安全性得到保障
缺點
- 成本昂貴,磁碟陣列的相容性限制了裝置選擇空間及資源共享
NAS儲存
圖片來源:redhat官網
Network Attached Storage 網路附加儲存,採用
NFS
或
CIFS
協議訪問資料,以檔案為傳輸協議,通過
TCP/IP
實現網路化儲存,可擴充套件性好、價格便宜、使用者易管理,如目前在叢集計算中應用較多的NFS檔案系統。
優點
- 造價成本低,有一個伺服器,裝上網路檔案儲存軟體,就可以提供給其他伺服器掛載訪問。
- 檔案級的資料共享
缺點
- 讀寫速率低
物件儲存
塊儲存讀寫快、不利於資料共享,檔案儲存資料共享方便、但是讀寫慢,能否弄一個讀寫快而且可以共享資料的儲存,於是物件儲存就誕生了。塊儲存和檔案儲存是我們比較熟悉的兩種主流的儲存型別,而物件儲存(Object-based Storage)是一種新的網路儲存架構。
3個核心概念
物件
物件是物件儲存中的最小單元,比如照片就是一個物件,物件由後設資料資訊(MataData,包含Length,lastModify等),使用者資料(Data),使用者自定義的資料資訊(拍攝者、拍攝裝置等)和檔名(Key)組成。
儲存桶
作為存放物件的容器
使用者
物件儲存的使用者,儲存桶的擁有者,每個使用者使用AccessKeyId 和 SecretAccessKey對稱加密的方法來驗證某個請求的傳送者身份。
物件儲存適合存什麼
用來存海量非結構化資料的,物件儲存將資料以物件的方式儲存,而不是以傳統的檔案和資料塊的形式儲存,每個物件都要儲存資料、後設資料和一個唯一的識別符號。
- 圖片
- 視訊
- 音訊
- 文件
- 程式碼js/html
缺點
應用程式碼需要改動,無法修改物件,需要一次性完整寫入
優點
無限擴容
基於Ceph的物件儲存構建實踐
什麼是Ceph
加州大學 Santa Cruz 分校的 Sage Weil(DreamHost 的聯合創始人)博士論文設計的新一代自由軟體分散式檔案系統。軟體定義儲存(Software Defined Storage, SDS)。統一的儲存解決方案。 提供了三種儲存方式:塊儲存、檔案儲存、物件儲存。Ceph的架構如下:
圖片來源:Ceph官網
Ceph元件
Ceph Monitor(監視器,簡稱Mon)
Mon通過儲存一份叢集狀態對映來的維護整個叢集的健康狀態。它分別為每個元件維護對映資訊。所有叢集節點都向Mon節點彙報狀態資訊
RADOS
(Reliable Autonomix Distributed Object Store),是儲存叢集的基礎。在Ceph中所有的資料都是以物件的形式儲存,RADOS就負責存這些資料,不考慮它們的型別。
Ceph物件儲存裝置OSD
Ceph 分散式物件儲存系統的物件儲存守護程式。它負責把物件儲存到本地檔案系統,並使之通過網路可訪問。
RADOS閘道器(RGW)
提供了相容Amazon S3和OpenStack物件儲存API(Swift)的restful API介面。支援多租戶和OpenStack Keystone身份驗證。
MDS(Ceph後設資料伺服器)
為CephFS跟蹤檔案層次結構和儲存後設資料。
librados
librados庫為PHP,Ruby,Java,Python,C和C++這些程式語言提供了方便地訪問RADOS介面的方式。
RBD(RADOS塊裝置)
Ceph塊裝置,原名是 RADOS 塊裝置,提供可靠的分散式和高效能塊儲存磁碟給客戶端,將塊資料以順序條帶化的形式分散儲存在的多個 OSD 上,支援自動精簡配置、動態調整大小、完整和增量快照、寫實複製克隆等企業級特性,而且RBD服務已經被封裝成了基於 librados 的一個原生介面。
CephFS(Ceph Filesystem)
Ceph 檔案系統提供了一個使用Ceph儲存叢集儲存使用者資料的與POSIX相容的檔案系統。和RBD、RGW一樣,基於librados封裝了原生介面。
Ceph的特點
-
高效能
摒棄了傳統的集中式儲存後設資料定址的方案,採用CRUSH演算法,資料分佈均衡,並行度高。
-
高可用性
資料強一致性,多種故障場景自愈
-
高擴充套件性
去中心化、靈活擴充套件
-
特性豐富
支援三種儲存介面:塊儲存、物件儲存、檔案儲存
支援多種語言(Python、C++、Java、PHP、Ruby等)驅動,自定義介面
基於Ceph的物件儲存實踐
客戶端通過 4,7 層負載均衡,基於HTTP協議,將請求轉發至物件儲存閘道器(Rados GateWay), 物件儲存閘道器通過Sockets與叢集通訊,至此,完成了整個資料的傳輸。
使用者認證
- 應用在傳送請求前,使用使用者私有祕鑰(secret key)、請求內容等,採用與RGW閘道器約定好的演算法計算出數字簽名後,將數字簽名以及使用者訪問祕鑰access_key封裝在請求中傳送給RGW閘道器
- RGW閘道器接受到請求後,使用使用者訪問祕鑰作為索引送RADOS叢集中讀取使用者資訊,並從使用者資訊中獲取到使用者私有祕鑰。
- 使用使用者私有祕鑰、請求內容等,採用與應用約定好的演算法計算數字簽名。
- 判斷RGW生成的數字簽名和請求的簽名是否匹配,如果匹配,則認為請求是真實的,使用者認證通過,如果匹配返回 S3 error: 403 (SignatureDoesNotMatch)
物件儲存IO路徑分析
應用通過http協議將請求傳送至物件儲存閘道器,閘道器收到 I/O 請求後,從http語義中解析出S3或Swift資料並進行一系列檢查,檢查通過後,根據不同API操作請求執行不同的資料處理邏輯,通過 librados 介面從 RADOS Cluster中 GET 或者 PUT 資料,完成整個I/O過程。
作者:張健偉
來源:宜信技術學院
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69918724/viewspace-2693236/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 分散式儲存ceph 物件儲存配置zone同步分散式物件
- CEPH-4:ceph RadowGW物件儲存功能詳解物件
- CEPH分散式儲存搭建(物件、塊、檔案三大儲存)分散式物件
- Ceph儲存池管理
- 基於開源軟體構建儲存解決方案的思考
- Yocto實踐(1): 基於Dunfell 構建Yocto專案
- 滴滴基於Clickhouse構建新一代日誌儲存系統
- 雲知聲: 基於 JuiceFS 的超算平臺儲存實踐UI
- Elasticsearch 基於物件儲存使用快照資料遷移Elasticsearch物件
- 面向不同需求的物件儲存系統對比:Ceph與Swift物件Swift
- 最佳實踐|放棄 Ceph,Salesforce 使用 Apache BookKeeper 在雲中實現最強儲存SalesforceApache
- 配置Kubernetes共享使用Ceph儲存
- 快手基於 Flink 構建實時數倉場景化實踐
- 儲存—物件儲存_Minio物件
- 大資料儲存平臺之異構儲存實踐深度解讀大資料
- Ceph Reef(18.2.X)之Swift操作物件儲存閘道器Swift物件
- Ceph Reef(18.2.X)之python操作物件儲存閘道器Python物件
- Ceph儲存後端ObjectStore架構和技術演進後端Object架構
- 多利熊基於分散式架構實踐穩定性建設分散式架構
- Uber基於Apache Hudi構建PB級資料湖實踐Apache
- 塊儲存 檔案儲存 物件儲存物件
- 免費版物件儲存【minIO】CentOS部署實踐記錄 2021物件CentOS
- ceph儲存的monitor選舉流程
- 物件儲存物件
- 分散式日誌儲存架構程式碼實踐分散式架構
- 《Greenplum構建實時資料倉儲實踐》簡介
- 構建與定製:唯品會PaaS基於Kubernetes的實踐
- 基於 Nebula Graph 構建百億關係知識圖譜實踐
- 基於MFS高可用的分散式儲存架構分散式架構
- 基於Kafka和Elasticsearch構建實時站內搜尋功能的實踐KafkaElasticsearch
- TiKV 在京東雲物件儲存後設資料管理的實踐物件
- kubernetes配置後端儲存 rook-ceph後端
- Ceph分散式儲存技術解讀分散式
- 雲端計算儲存之Ceph架構是怎麼樣的?架構
- 銀行基於雲原生架構的 DevOps 建設實踐經驗架構dev
- 如何構建通用儲存中間層
- k8s使用ceph實現動態持久化儲存K8S持久化
- 基於 JuiceFS 構建高校 AI 儲存方案:高併發、系統穩定、運維簡單UIAI運維