ceph 部署步驟和原理理解

2022-03-02 20:55:02 字數 3176 閱讀 4315

1.ceph的官方源在國外,網速比較慢,此處新增ceph源為阿里源(每個節點上均執行)

vim /etc/yum.repos.d/ceph.repo

[ceph] name=ceph packages for $basearch

baseurl=

enabled=1

gpgcheck=1

type=rpm-md

gpgkey=

[ceph-noarch]

name=ceph noarch packages

baseurl=

enabled=1

gpgcheck=1

type=rpm-md

gpgkey=

[ceph-source]

name=ceph source packages

baseurl=

enabled=1

gpgcheck=1

type=rpm-md

gpgkey=

2.需要在每乙個節點為 ceph 建立使用者, 並設定 sudo 許可權, 雖然可以擁有不同的使用者名稱,但是這裡為了省事都叫uceph

useradd -d /home/uceph -m uceph

passwd uceph

echo "uceph all = (root) nopasswd:all" | sudo tee /etc/sudoers.d/uceph

chmod 0440 /etc/sudoers.d/uceph

ssh-keygen

ssh-copy-id uceph@

sudo yum install yum-plugin-priorities

其他步驟可以參考官網或者

ceph 安裝記錄

概念:ceph是乙個支援大量小檔案和隨機讀寫的分布式檔案系統,在維護 posix 相容性的同時加入了複製和容錯功能。

生產環境主要的兩種應用:

雲平台架構。

ceph架構圖如下:

基礎儲存系統rados     ------->   可靠的自主的分布式物件儲存

這一層本身就是乙個完整的物件儲存系統,所有儲存在ceph系統中的使用者資料事實上最終都是由這一層來儲存的。rados由大量的儲存裝置節點組成,每個節點擁有自己的硬體資源(cpu、記憶體、硬碟、網路),並執行著作業系統和檔案系統。

基礎庫librados

這一層的功能是對rados進行抽象和封裝,並向上層提供api,以便直接基於rados(而不是ceph)進行應用開發。物理上libradios和基於其上開發的應用位於同一臺機器,因此也被成為本地api。應用呼叫本機上的libradios api,再由後者通過socket與radios集群中的節點通訊完成各種操作。

高層應用介面

這一層包括了三個部分:rados gw(rados gateway)、rbd(reliable block device)、ceph fs(ceph file system),其作用時在librados庫的基礎上提供抽象層次更高、更便於應用或客戶端使用的上層介面。

rbd則提供了乙個標準的塊裝置介面,常用於在虛擬化的場景下建立volume。

rados的邏輯結構圖如下:

rados集群主要由兩種節點組成。一種是為數眾多的、負責完成資料儲存和維護功能的osd(object storage device),另一種則是若干個負責完成系統狀態監測和維護的monitor。

osd和monitor之間互相傳輸節點狀態資訊,共同得出系統的總體工作狀態,並形成乙個全域性系統狀態記錄資料結構,即cluster map。這個資料結構與rados提供的特定演算法相配合,以便實現了ceph」無須查表,算算就好」的核心機制以及若干優秀特性。

ceph中的定址至少要經歷以下三次對映:

file -> object對映:其對映十分簡單,本質上就是按照object的最大size對file進行切分,相當於raid中的條帶化過程。

object -> pg對映:在file被對映為乙個或多個object之後,就需要將每個object獨立地對映到乙個pg中去。

pg -> osd對映:將作為object的邏輯組織單元的pg  ----> 對映到資料的實際儲存單元osd。

注意:對映過程中使用cluster map中的placement group map,osdmap。

3.openstack和ceph結合

1.openstack cinder、glance 和 nova 分別會將卷、映象和虛機映象儲存到 ceph 分布式塊裝置(rbd)中 nova 將虛機的映象檔案放在本地磁碟或者cinder 卷上。 為了與 ceph 整合,nova 中新增了新的**來將映象檔案儲存在 ceph 中。

2.openstack cinder 元件和 ceph rbd 整合的目的是將 cinder 卷(volume)儲存在 ceph rbd 中。當使用 ceph rbd 作為 cinder 的後端儲存時,不需要單獨的乙個 cinder-volume 節點.

openstack 和 ceph 之間還有其它的整合點:

使用 ceph 替代 swift 作為物件儲存

cephfs 作為 manila 的後端(backend)

keystone 和 ceph object gateway 的整合

1.osd磁碟的格式:btrfs:與使用xfs和ext4檔案系統的osd相比,使用btrfs檔案系統的osd能夠提供更佳的效能。btrfs目前還不具備應用於生產系統的條件。

CSS 原理理解

網頁製作最初,html規定了 normal document stream 標準文件流 來規範元素在網頁中的顯示法則 標準文件流中元素分兩種 塊內元素,行內元素。行內元素的特點 span標籤 豎直margin中的塌陷現象,上下緊密排列的元素的外邊距並不是兩個元素外邊距之和,而是選取那個最大的外邊距作...

Spring IOC原理理解

ioc,inversion of control,控制倒轉。這是spring的核心,貫穿始終。所謂ioc,對於spring框架來說,就是由spring來負責控制物件的生命週期和物件間的關係。di,dependency injection,依賴注入。在系統執行中,動態的向某個物件提供它所需要的其他物件...

ROI Align 原理理解

對背景問題的理解 之前一直在想乙個問題 乙個label在原圖上標記出乙個包含目標的區域。這個框在特徵提取後,大小被縮小到了什麼程度?如果這個label框本身就不大,那麼經過幾層池化之後,是不是在最後的feature map上都沒有乙個位置,能夠對應到這個區域?目標在特徵提取過程中,由於這種深度結構導...