ceph分布式存儲學(xué)習(xí)指南

ceph是模塊化和可擴(kuò)展的,并且有容錯設(shè)計。先進(jìn)的分布式存儲系統(tǒng)。
ceph憑借其高可擴(kuò)展性、高可靠性、高性能的特點,逐漸成為openstack\cloudstack、opennebula等主流開源云平臺后端存儲的首選。可靠性、自平衡、自恢復(fù)、一致性
軟件定義存儲。
可以大幅降低企業(yè)存儲基礎(chǔ)設(shè)施的成本。
分布式、可大規(guī)模擴(kuò)展,經(jīng)濟(jì)
虛擬平臺KVM、VMWARE也支持ceph
ceph存儲介紹
ceph部署實戰(zhàn)
ceph架構(gòu)和組件
ceph內(nèi)部構(gòu)建
ceph部署
ceph存儲配置
ceph操作及管理
監(jiān)控ceph集群
ceph與openstack集成
ceph性能調(diào)優(yōu)和基準(zhǔn)測試
1、ceph是什么
ceph是一個開源項目,它提供軟件定義的、統(tǒng)一的存儲解決方案。ceph可大規(guī)模擴(kuò)展、高性能并且無單點故障的分布式存儲系統(tǒng)。容量可擴(kuò)展至EB級別。1EB=1024PB


image.png

image.png

ceph以章魚作為自己的吉祥物,表達(dá)了ceph跟章魚一樣的并行行為。
inktank公司為ceph提供專業(yè)服務(wù)和技術(shù)支持。
版本歷史


image.png

image.png

image.png

塊存儲
image.png

cephFS
image.png

image.png

對象存儲
image.png

image.png

ceph與其他工具的對比
ceph-deploy工具部署
ceph架構(gòu):ceph存儲集群由幾個不同的軟件守護(hù)進(jìn)程組成,每個守護(hù)進(jìn)程負(fù)責(zé)ceph的一個獨(dú)特功能并將值添加到相應(yīng)的組件中。
image.png

RADOS:可靠、自動、分布式對象存儲(Reliable Autonomic Distributed Object Store),是ceph存儲集群的基礎(chǔ)。ceph中的一切都以對象的形式存儲,而RADOS就負(fù)責(zé)存儲這些對象,而不考慮它們的數(shù)據(jù)類型。RADOS確保數(shù)據(jù)一致性和可靠性。對于數(shù)據(jù)一致性,它執(zhí)行數(shù)據(jù)復(fù)制、故障檢測和恢復(fù),還包括數(shù)據(jù)在集群節(jié)點間的遷移和再平衡。
image.png

MON監(jiān)控健康狀態(tài):OSD,MON,PG,CRUSH。
image.png

librados提供接口
image.png

RBD塊設(shè)備:支持快照和寫時復(fù)制


image.png

RGW對象網(wǎng)關(guān):支持S3和SWIFT
image.png

cephFS,MDS
image.png

自我管理,自我修復(fù),自我計算
image.png

查看存儲池:rados lspools
查看存儲池的對象(metadata池的名字):rados -p metadata ls
查看集群空間:rados df
OSD:::
image.png

文件系統(tǒng)
image.png

image.png

日志大小常見的是10GB,一個SSD做日志最多分給4到5個OSD
每個磁盤推薦1-2GB內(nèi)存
查看單節(jié)點上的OSD:service ceph status osd
檢查OSD的ID:ceph osd ls
檢查OSD map和狀態(tài):ceph osd stat
ceph osd tree 樹形圖
ceph monitor:集群map包括monitor\osd\pg\crush\mds map
檢查mon map:ceph mon dump
檢查osd map:ceph osd dump
檢查pg map:ceph pg dump
crush map: ceph osd crush dump
ceph mds dump
image.png

image.png

image.png

image.png

檢查mon狀態(tài):service ceph status mon
ceph mon stat
ceph mon_status
ceph mon dump
librados:
一個本地的C語言庫,可以直接和RADOS通信。
RBD驅(qū)動被集成到LINUX內(nèi)核中
image.png

image.png

ceph與open'stack緊密集成:寫時復(fù)制快照、克隆和可恢復(fù)的只讀快照
image.png

cgw:是一個代理,可以將HTTP請求轉(zhuǎn)換成RADOS,也可以把RADOS請求轉(zhuǎn)換成HTTP,從而提供RESTful對象存儲。radosgw
image.png

image.png

MDS
image.png

部署MDS:ceph-deploy mds create ceph-node2
CEPH FS


image.png

image.png

ceph構(gòu)架及其核心組件、底層實現(xiàn)
對象:
一個對象用一個全局唯一的標(biāo)識符標(biāo)識,元數(shù)據(jù)和數(shù)據(jù)
image.png

ceph的池是一個用來存儲對象的邏輯分區(qū),它提供了一個有組織的存儲形式。
默認(rèn)存儲池: rbd,如果配置了MDS,則還會創(chuàng)建data/metadata
列出所有池:rados lspools
列出池中的對象名稱:rados -p metadata ls
CRUSH算法:Controlled Replication Under Scalable Hashing
image.png

客戶端使用自己的資源來執(zhí)行CRUSH查找。
一次讀寫操作
image.png

image.png

image.png

image.png

恢復(fù)和再平衡:


image.png

image.png

修改crush map:
提取:ceph osd getcrushmap -o crushmap.txt
反編譯:crushtool -d crushmap.txt -o crushmap-decompile
打開/修改: vi crushmap-decompile
重新編譯: crushtool -c crushmap-decompile -o crushmap-compiled
應(yīng)用:ceph osd setcrushmap -i crushmap-compiled

ceph osd tree :查看層級結(jié)構(gòu)
bucket:表示放設(shè)備的容器,可以包含多個設(shè)備或子類型的bucket
device:設(shè)備,最基本的存儲設(shè)備,也就是OSD,通常一個OSD對應(yīng)一個磁盤存儲設(shè)備
bucket類型:osd,host,chassis,rack,row,pdu,pod,room,datacenter,regin,root 11各等級
osd,主機(jī),底盤,機(jī)架,一排機(jī)架,?,?,機(jī)房,數(shù)據(jù)中心,區(qū)域,根
修改bucket結(jié)構(gòu),例子:


image.png

PG:一組對象的邏輯集合


image.png

image.png

建議每個OSD上放置50-100各PG

PG總數(shù)計算公式
PG 總數(shù)= (OSD 總數(shù)x 100) /最大副本數(shù)
結(jié)果必須舍入到最接近2 的N 次幕的值。比如:如果C巳ph 集群有160 個OSD 且副本數(shù)是3 ,這樣根據(jù)公式計算得到的PG 總數(shù)是5333.3 ,因此舍入這個值到最接近的2 的N 次幕的結(jié)果就是8192 個PG 。
我們還應(yīng)該計算Ceph 集群中每一個池中的PG 總數(shù)。計算公式如下:
PG 總數(shù)= ((OSD 總數(shù)x 100) /最大副本數(shù)) /池數(shù)
同樣使用前面的例子: OSD 總數(shù)是160 ,副本數(shù)是3 ,池總數(shù)是3 。根據(jù)上面這個公式,
計算得到每個池的PG 總數(shù)應(yīng)該是1777 . 7 ,最后舍入到2 的N 次幕得到結(jié)果為每個池2 048個PG 。

PGP 是為實現(xiàn)定位而設(shè)置的PG ,它的值應(yīng)該與PG 的總數(shù)(即pg_num) 保持一致。
查看數(shù)量:ceph osd pool get data pg_num
ceph osd pool get data pgp_num
檢查池的副本數(shù):ceph osd dump|grep -i size

規(guī)劃PG數(shù)量


image.png

image.png

PG的peering、up集合和acting集合


image.png

image.png

一個池,一個CRUSH規(guī)則集


image.png

創(chuàng)建池:
ceph osd pool create web-services 128 128
查看池列表:ceph osd lspools / rados lspools / ceph osd dump|grep -i pool
修改副本數(shù):ceph osd pool set web-services size 3
重命名池:ceph osd pool rename web-services frontend-services
池的快照操作


image.png

刪除池也會刪除快照
ceph osd poo1 de1ete frontend-services frontend-services --yes-i-rea11y-rea11y-mean-it

PG數(shù)據(jù)管理


image.png

image.png

image.png

image.png

image.png

ceph monitor:單核2GB內(nèi)存,硬盤可以大點存儲日志,1G/S的網(wǎng)卡
OSD:1塊物理硬盤1各OSD,1GHZCPU和2GB內(nèi)存,硬盤?,獨(dú)立日志盤,一個SSD做2-4各OSD日志盤

MDS需要4核或更高,更高RAM

糾刪碼:整個機(jī)制需要的耗OSD 節(jié)點更多的計算能力。此外,在恢復(fù)時, 解碼數(shù)據(jù)塊也需要大量的計算。
糾刪碼的概念:n=k+m


image.png

image.png

配置糾刪碼


image.png

image.png

image.png

image.png

image.png

image.png

ceph緩存層


image.png

image.png

部署緩存層


image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

基準(zhǔn)測試


image.png

image.png

image.png

image.png

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容