Ceph架構(gòu)圖
? ? Ceph存儲系統(tǒng)的邏輯層次結(jié)構(gòu)大致劃分為4部分:
? ? ? ? ? ◎ 基礎(chǔ)存儲系統(tǒng)RADOS
? ? ? ? ? ◎ ?基于RADOS實現(xiàn)的CephFS
? ? ? ? ? ◎ ?基于RADOS的LIBRADOS層應(yīng)用接口
? ? ? ? ? ◎ ?基于LIBRADOS的應(yīng)用接口RBD、RADOSGW
? ? ? ? ? ● RADOS:RADOS具備自我修復(fù)等特性,提供了一個可靠卿操、自動聋伦、智能的分布式存儲。
? ? ? ? ? ● LIBRADOS:LIBRADOS庫允許應(yīng)用程序直接訪問累提,支持C/C++、Jave和Python等語言。
? ? ? ? ? ● RADOSGW:RADOSGW是一套基于當前流行的RESTful協(xié)議的網(wǎng)關(guān)幌羞,并且兼容S3和Swift。
? ? ? ? ? ●? RBD:RBD通過Linux內(nèi)核(Kernel)客戶端和QEMU/KVM驅(qū)動竟稳,來提供一個完全分布式的塊設(shè)備属桦。
? ? ? ? ? ● Ceph FS:Ceph FS通過Linux內(nèi)核(Kernel)客戶端結(jié)合FUSE,來提供一個兼容POSIX的文件系統(tǒng)他爸。
1. ?基礎(chǔ)存儲系統(tǒng)RADOS
? ? ? ? ?RADOS這一層本身就是一個完整的對象存儲系統(tǒng)聂宾,事實上,所有存儲在Ceph系統(tǒng)中的用戶數(shù)據(jù)都是由這一層來存儲的诊笤。Ceph的很多優(yōu)秀特性本質(zhì)上也是借由這一層設(shè)計提供系谐。理解RADOS是理解Ceph的基礎(chǔ)與關(guān)鍵。物理上讨跟,RADOS由大量的存儲設(shè)備節(jié)點組成纪他,每個節(jié)點擁有自己的硬件資源(CPU、內(nèi)存晾匠、硬盤茶袒、網(wǎng)絡(luò)),并運行著操作系統(tǒng)和文件系統(tǒng)凉馆。
2. 基礎(chǔ)庫LIBRADOS
? ? ? ? LIBRADOS層的功能是對RADOS進行抽象和封裝薪寓,并向上層提供API乾巧,以值直接基于RADOS進行應(yīng)用開發(fā)。
? ? ? ? RADOS是一個對象存儲系統(tǒng)预愤,因此沟于,LIBRADOS實現(xiàn)的API是針對對象存儲功能的。
? ? ? ? RADOS采用C++開發(fā)植康,提供的原生LIBRADOS API包括C和C++兩種旷太。
? ? ? ? 物理上,LIBRADOS和基于其上開發(fā)的應(yīng)用位于同一臺機器销睁,因而也被稱為本地API供璧。應(yīng)用調(diào)用本機上的LIBRADOS API,再由后者通過socket與RADOS集群中的節(jié)點通信并完成各種操作冻记。
3. 上層應(yīng)用接口
? ? ? ?Ceph上層應(yīng)用接口涵蓋了RADOSGW(RADOS Gateway)睡毒、RBD(Reliable Block Device)和Ceph FS(Ceph File System),其中冗栗,RADOSGW和RBD是在LIBRADOS庫的基礎(chǔ)上提供抽象層次更高演顾、更便于應(yīng)用或客戶端使用的上層接口。
4. 應(yīng)用層
? ? ? ? ?應(yīng)用層就是不同場景下對于Ceph各個應(yīng)用接口的各種應(yīng)用方式隅居,例如基于LIBRADOS直接開發(fā)的對象存儲應(yīng)用钠至,基于RADOSGW開發(fā)的對象存儲應(yīng)用,基于RBD實現(xiàn)的云主機硬盤等胎源。