偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Ceph :一個 PB 規(guī)模的 Linux 分布式文件系統(tǒng)

系統(tǒng) 分布式
Linux文件系統(tǒng)最近新增了一個引人注目的選擇 —— Ceph,一個維持 POSIX 兼容的同時還集成了復(fù)制、容錯的分布式文件系統(tǒng)。本文探討了 Ceph 的架構(gòu),及其成為可擴展分布式存儲的誘人選擇的獨到之處。

Linux 持續(xù)進軍可伸縮計算領(lǐng)域,尤其是可擴展存儲領(lǐng)域。 Linux 文件系統(tǒng)最近新增了一個引人注目的選擇 —— Ceph,一個維持 POSIX 兼容的同時還集成了復(fù)制、容錯的分布式文件系統(tǒng)。探討 Ceph 的架構(gòu),可以知道它是如何提供容錯性,及如何簡化大量數(shù)據(jù)的管理的。

作為存儲行業(yè)的架構(gòu)師,我對文件系統(tǒng)情有獨鐘。這些系統(tǒng)是存儲系統(tǒng)的用戶接口,盡管它們都傾向于提供相似的特性集,它們還是會提供引人注目的不同點。Ceph 也如此,它提供了一些你會在文件系統(tǒng)中找到的最有趣的特性。

Ceph 始于加州大學(xué)圣克魯茲分校的 Sage Weil 的博士學(xué)位課題。但從 2010 年 3 月下旬起,你可以 Linux 主流內(nèi)核中找到 Ceph (從 2.6.34 內(nèi)核起)。

盡管 Ceph 可能還未對生產(chǎn)環(huán)境做好準備,但它依然有助于評估目的。本文探討了 Ceph 文件系統(tǒng),及其成為可擴展分布式存儲的誘人選擇的獨到之處。

Ceph 目標

開發(fā)文件系統(tǒng)是一種復(fù)雜的投入,但是如果能準確的解決問題的話,則擁有著不可估量的價值。Ceph 的目標可以簡單的定義為:

  • 容易擴展到 PB 量級

不同負荷下的高性能 (每秒輸入輸出操作數(shù) [IPOS]、帶寬)

  • 可靠性高

不幸的,這些目標彼此間矛盾(例如,可擴展性會減少或阻礙性能,或影響可靠性)。Ceph 開發(fā)了一些有趣的概念(例如動態(tài)元數(shù)據(jù)分區(qū)、數(shù)據(jù)分布、復(fù)制),本文會簡單探討。Ceph 的設(shè)計也集成了容錯特性來防止單點故障,并假定,大規(guī)模(PB 級的存貯)的存儲故障是一種常態(tài),而非異常。最后,它的設(shè)計沒有假定特定的工作負荷,而是包含了可變的分布式工作負荷的適應(yīng)能力,從而提供最佳的性能。它以 POSIX 兼容為目標完成這些工作,允許它透明的部署于那些依賴于 POSIX 語義的現(xiàn)存應(yīng)用(通過 Ceph 增強功能)。最后,Ceph 是開源分布式存儲和 Linux 主流內(nèi)核的一部分(2.6.34)。

Ceph 架構(gòu)

現(xiàn)在,讓我們先在上層探討 Ceph 架構(gòu)及其核心元素。之后深入到其它層次,來辨析 Ceph 的一些主要方面,從而進行更詳細的分析。

Ceph 生態(tài)系統(tǒng)可以大致劃分為四部分(見圖1):客戶端(數(shù)據(jù)使用者)、元數(shù)據(jù)服務(wù)器(緩沖及同步分布的元數(shù)據(jù))、對象存儲集群(以對象方式存儲數(shù)據(jù)與元數(shù)據(jù),實現(xiàn)其它主要職責(zé)),及集群監(jiān)控(實現(xiàn)監(jiān)控功能)。

圖 1. Ceph 生態(tài)系統(tǒng)的概念架構(gòu)

如圖一所示,客戶端通過元數(shù)據(jù)服務(wù)器來執(zhí)行元數(shù)據(jù)操作(以識別數(shù)據(jù)位置)。元數(shù)據(jù)服務(wù)器管理數(shù)據(jù)的位置及新數(shù)據(jù)的存儲位置。注意,元數(shù)據(jù)存儲在存儲集群中(如 "Metadata I/O" 所示)。真正的文件 I/O 發(fā)生在客戶端和對象存儲集群之間。以這種方式,較高級的 POSIX 功能(如 open、close、rename)由元數(shù)據(jù)服務(wù)器管理,與此同時,POSIX 功能(如 read、write)直接由對象存儲集群管理。

圖2 提供了架構(gòu)的另一視角圖。一組服務(wù)器通過客戶端接口訪問 Ceph 生態(tài)系統(tǒng),接口理解元數(shù)據(jù)服務(wù)器和對象級存儲的關(guān)系。這種分布式存儲系統(tǒng)可被看作為幾層,包括存儲設(shè)備的格式(擴展的和基于 B-樹 的對象文件系統(tǒng)[ebofs],或者其它備選),為管理數(shù)據(jù)復(fù)制、故障檢測、恢復(fù)、后續(xù)數(shù)據(jù)遷移(稱之為可靠的自發(fā)分布式對象存儲,RADOS)等所設(shè)計的至關(guān)重要的管理層。最后,監(jiān)控用于鑒定組件故障,包括后續(xù)通知。

圖2. Ceph 生態(tài)系統(tǒng)的簡化分層視圖

Ceph 組件

了解了 Ceph 的概念構(gòu)圖之后,你可以繼續(xù)深入了解 Ceph 生態(tài)系統(tǒng)內(nèi)實現(xiàn)的主要組件。Ceph 和傳統(tǒng)文件系統(tǒng)一個關(guān)鍵的不同是,智能并非集中于文件系統(tǒng)本身,而是分布在生態(tài)系統(tǒng)各處。

圖 3 展示了一個簡單的 Ceph 生態(tài)系統(tǒng)。Ceph 客戶端是 Ceph 文件系統(tǒng)的使用者。Ceph 元數(shù)據(jù)后臺服務(wù)程序提供了元數(shù)據(jù)服務(wù),而 Ceph 對象存儲后臺服務(wù)程序提供了實際的存儲(數(shù)據(jù)及元數(shù)據(jù))。最后, Ceph 監(jiān)控提供了集群的管理。注意可以存在多個 Ceph 客戶端,多個對象存儲端點,許多元數(shù)據(jù)服務(wù)器(取決于文件系統(tǒng)的能力),和至少一對冗余監(jiān)控。這樣的話,這個文件系統(tǒng)是怎樣實現(xiàn)分布的呢?

圖 3. 簡單的 Ceph 生態(tài)系統(tǒng)

Ceph 客戶端

因為 Linux 為文件系統(tǒng)提供了一個通用接口(通過虛擬文件系統(tǒng)交換器 [VFS]),Ceph 的用戶視角是透明的??紤]到多個服務(wù)器組成存儲系統(tǒng)的可能性(詳見關(guān)于創(chuàng)建 Ceph 集群的 資源 一節(jié)),管理員視角當然會不同。從使用者的視角看,他們可以使用海量存儲系統(tǒng),并不知曉下層的元數(shù)據(jù)服務(wù)器、監(jiān)控、聚合成大規(guī)模存儲池的各個對象存儲設(shè)備。使用者僅僅看到一個掛載點,從那里執(zhí)行標準的文件 I/O 操作。

Ceph 文件系統(tǒng) — 或者至少是客戶端接口 — 在 Linux 內(nèi)核中實現(xiàn)。注意絕大多數(shù)文件系統(tǒng),所有的控制和智能都實現(xiàn)在內(nèi)核的文件系統(tǒng)源代碼本身中。但對 Ceph 而言,文件系統(tǒng)的智能分布在各節(jié)點上,它簡化了客戶端接口,但也同時提供給 Ceph 應(yīng)對大規(guī)模(甚至動態(tài)的)數(shù)據(jù)的能力。

并非是依賴于分配鏈(用來映射磁盤塊到指定文件的元數(shù)據(jù)),Ceph 使用了一個有趣的選擇。一個文件從 Linux 的角度看,被賦予了一個來自元數(shù)據(jù)服務(wù)器的 inode 號(INO),它是文件的唯一識別符。之后這個文件被刻進到多個對象中(基于文件大小)。使用 INO 和 對象號 (ONO),每個對象被賦予了一個對象 ID(OID)。通過使用 OID 上的一個簡單哈希,每個對象被分配到 一個放置組中。這個放置組(通過 PGID 來識別)是對象的概念上的容器。最后,放置組到對象存儲設(shè)備的映射是一種使用了稱為可擴展哈希受控復(fù)制(CRUSH)算法的偽隨機映射。以這種方式,放置組(及副本)映射到存儲設(shè)備不依賴于任何元數(shù)據(jù),而是依賴于偽隨機映射函數(shù)。這種行為是理想的,因為它最小化了存儲的負荷,以及簡化了數(shù)據(jù)的分布和查詢。

最后一個分配組件是集群映射。集群映射是代表著存儲集群的設(shè)備的有效表示。通過 PGID 和 集群映射,你可以定位任何對象。

Ceph 元數(shù)據(jù)服務(wù)器

元數(shù)據(jù)服務(wù)器的任務(wù) (命令) 是管理文件系統(tǒng)的命名空間。盡管不管是數(shù)據(jù)還是元數(shù)據(jù)都存儲在對象存儲集群中,它們都被分別管理,以支持可擴展性。事實上,元數(shù)據(jù)在元數(shù)據(jù)服務(wù)器的集群間進一步的分割,這些元數(shù)據(jù)服務(wù)器能夠自適應(yīng)的復(fù)制和散布命名空間,從而避免熱點。如圖 4所示,元數(shù)據(jù)服務(wù)器管理部分命名空間,并能部分重疊(出于冗余及性能的考慮)。從元數(shù)據(jù)服務(wù)器到命名空間的映射,在 Ceph 中通過動態(tài)子樹分區(qū)的方式來執(zhí)行,它允許 Ceph 在保留本地性能的同時可以適應(yīng)變化的工作負荷(在元數(shù)據(jù)服務(wù)器間遷移命名空間)。

圖 4. Ceph 元數(shù)據(jù)服務(wù)器命名空間的分區(qū)

但因為每個元數(shù)據(jù)服務(wù)器就客戶端的個數(shù)而言只簡單的管理命名空間,它主要的應(yīng)用程序是智能元數(shù)據(jù)緩沖(因為實際的元數(shù)據(jù)最終存儲在對象存儲集群中)。寫入的元數(shù)據(jù)被緩沖在短期的日志中,它最終會被推送到物理存儲里。這種行為允許元數(shù)據(jù)服務(wù)器可以立即對客戶端提供最新的元數(shù)據(jù)服務(wù)(這在元數(shù)據(jù)操作中很常見)。日志對故障恢復(fù)也很有用:如果元數(shù)據(jù)服務(wù)器失效,它的日志能被重播,以確保元數(shù)據(jù)安全的保存到磁盤上。

元數(shù)據(jù)服務(wù)器管理 inode 空間,進行文件名到元數(shù)據(jù)的轉(zhuǎn)換。元數(shù)據(jù)服務(wù)器轉(zhuǎn)換文件名到 inode 節(jié)點,文件大小,以及分割 Ceph 客戶端用于文件 I/O 的數(shù)據(jù)(布局)。

Ceph 監(jiān)控

Ceph 包括了實現(xiàn)集群映射管理功能的監(jiān)控,但一些容錯管理的要素實現(xiàn)于對象存儲本身。當對象存儲設(shè)備失效,或者新的設(shè)備被添加,監(jiān)控檢測并維持一個有效的集群映射。這個功能以分布式的方式執(zhí)行,在這里,更新映射會與當前的流量狀況進行溝通。Ceph 使用了 Paxos,它是分布式一致性的一系列算法。

Ceph 對象存儲

與傳統(tǒng)對象存儲相似,Ceph 存儲節(jié)點不僅包含了存儲,也包含了智能。傳統(tǒng)的驅(qū)動器是的簡單目標端,僅僅響應(yīng)發(fā)起端的命令。而對象存儲設(shè)備是智能設(shè)備,既可以作為目標端,也可以作為發(fā)起端,從而支持通訊以及其它對象存儲設(shè)備的協(xié)同。

其它有趣的特性

似乎是文件系統(tǒng)的動態(tài)自適應(yīng)的天性不足,Ceph 也實現(xiàn)了一些對使用者可見的有趣特性。例如,用戶可以在 Ceph 的任何子目錄下(包括其全部內(nèi)容),創(chuàng)建快照。也可以在任何子目錄級進行文件和容量記賬,它可以報告存儲大小和任何指定子目錄的文件數(shù)(及其所有的嵌套內(nèi)容)。

Ceph 現(xiàn)狀與未來

盡管 Ceph 現(xiàn)在集成到 Linux 主流內(nèi)核中,它被準確的描述為實驗性的。這種狀態(tài)的文件系統(tǒng)有助于評估,但還沒有為生產(chǎn)環(huán)境做好準備。但考慮到 Ceph 被 Linux 內(nèi)核所采用,以及發(fā)起人持續(xù)開發(fā)的動力,它應(yīng)該在不久后就可以用于解決你的大規(guī)模存儲的需要。

其它分布式文件系統(tǒng)

Ceph 在分布式文件系統(tǒng)領(lǐng)域并不是獨一無二的,但它在管理大規(guī)模存儲的生態(tài)系統(tǒng)的方式上是獨特的。其它的分布式文件系統(tǒng),如包括 Google 文件系統(tǒng)(GFS),通用并行文件系統(tǒng)(GPFS),和 Lustre,僅舉幾例。隨著海量級別存儲的獨特挑戰(zhàn)的引入,Ceph 背后的理念看起來像是為分布式文件系統(tǒng)提供了一種有趣的未來。

展望

Ceph 不僅僅是文件系統(tǒng),更是一個帶有企業(yè)級特性的對象存儲的生態(tài)系統(tǒng)。在 資源 一節(jié)中,你會發(fā)現(xiàn)關(guān)于如何建立一個簡單的 Ceph 集群(包括元數(shù)據(jù)服務(wù)器、對象服務(wù)器、監(jiān)控)的信息。Ceph 在分布式存儲方面填補了空白,看到這個開源軟件在未來如何演進也將是很有趣的。

 

英文原文:Ceph: A Linux petabyte-scale distributed file system

責(zé)任編輯:黃丹 來源: oschina
相關(guān)推薦

2017-10-17 08:33:31

存儲系統(tǒng)分布式

2020-01-03 08:33:57

Ceph硬件系統(tǒng)

2010-11-01 05:50:46

分布式文件系統(tǒng)

2013-05-27 14:46:06

文件系統(tǒng)分布式文件系統(tǒng)

2015-05-29 12:47:53

Ceph云存儲開源

2012-05-10 15:23:53

分布式文件系統(tǒng)測試

2012-08-31 16:04:11

HDFS分布式文件系統(tǒng)

2013-06-18 14:00:59

HDFS分布式文件系統(tǒng)

2010-11-15 13:24:07

分布式文件系統(tǒng)

2013-01-07 10:29:31

大數(shù)據(jù)

2012-09-19 15:05:24

MogileFS分布式文件系統(tǒng)

2010-06-04 18:45:43

Hadoop分布式文件

2012-09-19 13:43:13

OpenAFS分布式文件系統(tǒng)

2018-03-08 11:10:33

分布式存儲Ceph

2017-10-27 08:40:44

分布式存儲剪枝系統(tǒng)

2012-10-09 16:43:47

FastDFS分布式文件系統(tǒng)

2012-05-10 14:04:07

分布式文件系統(tǒng)架構(gòu)

2011-07-15 17:48:27

Platform

2023-05-05 08:16:56

SeaweedFS分布式文件

2011-03-16 14:23:38

分布式文件
點贊
收藏

51CTO技術(shù)棧公眾號