自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

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

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

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

Ceph 目標(biāo)

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

  • 容易擴(kuò)展到 PB 量級(jí)

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

  • 可靠性高

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

Ceph 架構(gòu)

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

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

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

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

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

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

Ceph 組件

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

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

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

Ceph 客戶端

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

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

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

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

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

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

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

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

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

Ceph 監(jiān)控

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

Ceph 對(duì)象存儲(chǔ)

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

其它有趣的特性

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

Ceph 現(xiàn)狀與未來(lái)

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

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

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

展望

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

 

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

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

2017-10-17 08:33:31

存儲(chǔ)系統(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云存儲(chǔ)開(kāi)源

2018-03-08 11:10:33

分布式存儲(chǔ)Ceph

2012-05-10 15:23:53

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

2010-06-04 18:45:43

Hadoop分布式文件

2012-09-19 13:43:13

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

2012-09-19 15:05:24

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

2010-11-15 13:24:07

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

2013-01-07 10:29:31

大數(shù)據(jù)

2012-08-31 16:04:11

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

2013-06-18 14:00:59

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

2017-10-27 08:40:44

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

2013-01-09 10:16:09

HDFS

2018-03-01 16:26:30

HDFSHadoop系統(tǒng)

2012-07-20 14:40:22

2022-09-13 07:51:08

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

2011-07-15 17:48:27

Platform
點(diǎn)贊
收藏

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