⑨ OpenStack高可用集群部署方案(train版)—CentOS8安裝與配置Ceph集群

CentOS8安裝與配置Ceph Octopus版


1. Ceph介紹

https://www.cnblogs.com/kevingrace/p/8387999.html

1.1 為什么要用Ceph

Ceph是當(dāng)前非常流行的開(kāi)源分布式存儲(chǔ)系統(tǒng),具有高擴(kuò)展性、高性能珍坊、高可靠性等優(yōu)點(diǎn)预侯,同時(shí)提供塊存儲(chǔ)服務(wù)(rbd)虹蒋、對(duì)象存儲(chǔ)服務(wù)(rgw)以及文件系統(tǒng)存儲(chǔ)服務(wù)(cephfs)徐绑,Ceph在存儲(chǔ)的時(shí)候充分利用存儲(chǔ)節(jié)點(diǎn)的計(jì)算能力,在存儲(chǔ)每一個(gè)數(shù)據(jù)時(shí)都會(huì)通過(guò)計(jì)算得出該數(shù)據(jù)的位置草巡,盡量的分布均衡郁竟。。目前也是OpenStack的主流后端存儲(chǔ),隨著OpenStack在云計(jì)算領(lǐng)域的廣泛使用低零,ceph也變得更加炙手可熱雄妥。國(guó)內(nèi)目前使用ceph搭建分布式存儲(chǔ)系統(tǒng)較為成功的企業(yè)有x-sky,深圳元核云,上海UCloud等三家企業(yè)淀弹。

分布式存儲(chǔ) Ceph GFS HDFS Swift Lustre
平臺(tái)屬性 開(kāi)源 閉源 開(kāi)源 開(kāi)源 開(kāi)源
系統(tǒng)架構(gòu) 去中心化架構(gòu) 中心化架構(gòu) 中心化架構(gòu) 去中心化架構(gòu) 中心化架構(gòu)
數(shù)據(jù)存儲(chǔ)方式 塊琉用、文件對(duì)象 文件 文件 對(duì)象 文件
元數(shù)據(jù)節(jié)點(diǎn)數(shù)量 多個(gè) 1個(gè) 1個(gè)(主備) 多個(gè) 1個(gè)
數(shù)據(jù)冗余 多副本/糾刪碼 多副本/糾刪碼 多副本/糾刪碼 多副本/糾刪碼 無(wú)
數(shù)據(jù)一致性 強(qiáng)一致性 最終一致性 過(guò)程一致性 弱一致性 無(wú)
分塊大小 4MB 64MB 128MB 視對(duì)象大小 1MB
適用場(chǎng)景 頻繁讀寫場(chǎng)景/IaaS 大文件連續(xù)讀寫 大數(shù)據(jù)場(chǎng)景 云的對(duì)象存儲(chǔ) 大型集群/超算

1.2 Ceph架構(gòu)介紹

Ceph使用RADOS提供對(duì)象存儲(chǔ),通過(guò)librados封裝庫(kù)提供多種存儲(chǔ)方式的文件和對(duì)象轉(zhuǎn)換铜靶。外層通過(guò)RGW(Object,有原生的API蹬碧,而且也兼容Swift和S3的API飒筑,適合單客戶端使用)片吊、RBD(Block,支持精簡(jiǎn)配置协屡、快照俏脊、克隆,適合多客戶端有目錄結(jié)構(gòu))肤晓、CephFS(File爷贫,Posix接口,支持快照补憾,社會(huì)和更新變動(dòng)少的數(shù)據(jù)漫萄,沒(méi)有目錄結(jié)構(gòu)不能直接打開(kāi))將數(shù)據(jù)寫入存儲(chǔ)。

  • 高性能
    a. 摒棄了傳統(tǒng)的集中式存儲(chǔ)元數(shù)據(jù)尋址的方案盈匾,采用CRUSH算法腾务,數(shù)據(jù)分布均衡,并行度高
    b.考慮了容災(zāi)域的隔離削饵,能夠?qū)崿F(xiàn)各類負(fù)載的副本放置規(guī)則岩瘦,例如跨機(jī)房未巫、機(jī)架感知等
    c. 能夠支持上千個(gè)存儲(chǔ)節(jié)點(diǎn)的規(guī)模,支持TB到PB級(jí)的數(shù)據(jù)
  • 高可擴(kuò)展性
    a. 去中心化
    b. 擴(kuò)展靈活
    c. 隨著節(jié)點(diǎn)增加而線性增長(zhǎng)
  • 特性豐富
    a. 支持三種存儲(chǔ)接口:塊存儲(chǔ)启昧、文件存儲(chǔ)叙凡、對(duì)象存儲(chǔ)
    b. 支持自定義接口,支持多種語(yǔ)言驅(qū)動(dòng)

目前來(lái)說(shuō)密末,ceph在開(kāi)源社區(qū)還是比較熱門的握爷,但是更多的是應(yīng)用于云計(jì)算的后端存儲(chǔ)。官方推薦使用ceph的對(duì)象式存儲(chǔ)严里,速度和效率都比較高新啼,而cephfs官方并不推薦直接在生產(chǎn)中使用。以上介紹的只是ceph的滄海一粟刹碾,ceph遠(yuǎn)比上面介紹的要復(fù)雜师抄,而且支持很多特性,比如使用糾刪碼就行尋址教硫,所以大多數(shù)在生產(chǎn)環(huán)境中使用ceph的公司都會(huì)有專門的團(tuán)隊(duì)對(duì)ceph進(jìn)行二次開(kāi)發(fā)叨吮,ceph的運(yùn)維難度也比較大。但是經(jīng)過(guò)合理的優(yōu)化之后瞬矩,ceph的性能和穩(wěn)定性都是值得期待的茶鉴。

1.3 Ceph核心概念

==RADOS==

全稱Reliable Autonomic Distributed Object Store,即可靠的景用、自動(dòng)化的涵叮、分布式對(duì)象存儲(chǔ)系統(tǒng)。RADOS是Ceph集群的精華伞插,用戶實(shí)現(xiàn)數(shù)據(jù)分配割粮、Failover等集群操作。

==Librados==

Rados提供庫(kù)媚污,因?yàn)镽ADOS是協(xié)議很難直接訪問(wèn)舀瓢,因此上層的RBD、RGW和CephFS都是通過(guò)librados訪問(wèn)的耗美,目前提供PHP京髓、Ruby、Java商架、Python堰怨、C和C++支持。

==Crush==

Crush算法是Ceph的兩大創(chuàng)新之一蛇摸,通過(guò)Crush算法的尋址操作备图,Ceph得以摒棄了傳統(tǒng)的集中式存儲(chǔ)元數(shù)據(jù)尋址方案。而Crush算法在一致性哈希基礎(chǔ)上很好的考慮了容災(zāi)域的隔離揽涮,使得Ceph能夠?qū)崿F(xiàn)各類負(fù)載的副本放置規(guī)則砸烦,例如跨機(jī)房、機(jī)架感知等绞吁。同時(shí),Crush算法有相當(dāng)強(qiáng)大的擴(kuò)展性唬格,理論上可以支持?jǐn)?shù)千個(gè)存儲(chǔ)節(jié)點(diǎn)家破,這為Ceph在大規(guī)模云環(huán)境中的應(yīng)用提供了先天的便利。

==Pool==

Pool是存儲(chǔ)對(duì)象的邏輯分區(qū)购岗,它規(guī)定了數(shù)據(jù)冗余的類型和對(duì)應(yīng)的副本分布策略汰聋,默認(rèn)存儲(chǔ)3份副本;支持兩種類型:副本(replicated)和 糾刪碼( Erasure Code)喊积;

==PG==

PG( placement group)是一個(gè)放置策略組烹困,它是對(duì)象的集合,該集合里的所有對(duì)象都具有相同的放置策略乾吻,簡(jiǎn)單點(diǎn)說(shuō)就是相同PG內(nèi)的對(duì)象都會(huì)放到相同的硬盤上髓梅,PG是 ceph的邏輯概念,服務(wù)端數(shù)據(jù)均衡和恢復(fù)的最小粒度就是PG绎签,一個(gè)PG包含多個(gè)OSD枯饿。引入PG這一層其實(shí)是為了更好的分配數(shù)據(jù)和定位數(shù)據(jù);

==Object==

簡(jiǎn)單來(lái)說(shuō)塊存儲(chǔ)讀寫快诡必,不利于共享奢方,文件存儲(chǔ)讀寫慢,利于共享爸舒。能否弄一個(gè)讀寫快蟋字,利于共享的出來(lái)呢。于是就有了對(duì)象存儲(chǔ)扭勉。最底層的存儲(chǔ)單元鹊奖,包含元數(shù)據(jù)和原始數(shù)據(jù)。

1.4 Ceph核心組件

OSD

是負(fù)責(zé)物理存儲(chǔ)的進(jìn)程涂炎,一般配置成和磁盤一一對(duì)應(yīng)嫉入,一塊磁盤啟動(dòng)一個(gè)OSD進(jìn)程。主要功能是存儲(chǔ)數(shù)據(jù)璧尸、復(fù)制數(shù)據(jù)咒林、平衡數(shù)據(jù)、恢復(fù)數(shù)據(jù)爷光,以及與其它OSD間進(jìn)行心跳檢查垫竞,負(fù)責(zé)響應(yīng)客戶端請(qǐng)求返回具體數(shù)據(jù)的進(jìn)程等;

Pool、PG和OSD的關(guān)系:

  • 一個(gè)Pool里有很多PG欢瞪;
  • 一個(gè)PG里包含一堆對(duì)象活烙,一個(gè)對(duì)象只能屬于一個(gè)PG;
  • PG有主從之分遣鼓,一個(gè)PG分布在不同的OSD上(針對(duì)三副本類型);

Monitor

一個(gè)Ceph集群需要多個(gè)Monitor組成的小集群啸盏,它們通過(guò)Paxos同步數(shù)據(jù),用來(lái)保存OSD的元數(shù)據(jù)骑祟。負(fù)責(zé)監(jiān)視整個(gè)Ceph集群運(yùn)行的Map視圖(如OSD Map回懦、Monitor Map、PG Map和CRUSH Map)次企,維護(hù)集群的健康狀態(tài)怯晕,維護(hù)展示集群狀態(tài)的各種圖表,管理集群客戶端認(rèn)證與授權(quán)缸棵;生產(chǎn)中建議最少要用3個(gè)Monitor舟茶,基數(shù)個(gè)的Monitor組成組件來(lái)做高可用。

MDS

MDS全稱Ceph Metadata Server堵第,是CephFS服務(wù)依賴的元數(shù)據(jù)服務(wù)吧凉。負(fù)責(zé)保存文件系統(tǒng)的元數(shù)據(jù),管理目錄結(jié)構(gòu)踏志。對(duì)象存儲(chǔ)和塊設(shè)備存儲(chǔ)不需要元數(shù)據(jù)服務(wù)客燕;

Mgr

ceph 官方開(kāi)發(fā)了 ceph-mgr,主要目標(biāo)實(shí)現(xiàn) ceph 集群的管理狰贯,為外界提供統(tǒng)一的入口也搓。例如cephmetrics、zabbix涵紊、calamari傍妒、promethus

RGW

RGW全稱RADOS gateway,是Ceph對(duì)外提供的對(duì)象存儲(chǔ)服務(wù)摸柄,接口與S3和Swift兼容颤练。

Admin

Ceph常用管理接口通常都是命令行工具,如rados驱负、ceph嗦玖、rbd等命令,另外Ceph還有可以有一個(gè)專用的管理節(jié)點(diǎn)跃脊,在此節(jié)點(diǎn)上面部署專用的管理工具來(lái)實(shí)現(xiàn)近乎集群的一些管理工作宇挫,如集群部署,集群組件管理等酪术。

1.5 Ceph三種存儲(chǔ)類型

塊存儲(chǔ)(RBD)

優(yōu)點(diǎn):

  • 通過(guò)Raid與LVM等手段器瘪,對(duì)數(shù)據(jù)提供了保護(hù)翠储;
  • 多塊廉價(jià)的硬盤組合起來(lái),提高容量橡疼;
  • 多塊磁盤組合出來(lái)的邏輯盤援所,提升讀寫效率;

缺點(diǎn):

  • 采用SAN架構(gòu)組網(wǎng)時(shí)欣除,光纖交換機(jī)住拭,造價(jià)成本高;
  • 主機(jī)之間無(wú)法共享數(shù)據(jù)历帚;

使用場(chǎng)景

  • docker容器滔岳、虛擬機(jī)磁盤存儲(chǔ)分配;
  • 日志存儲(chǔ)抹缕;
  • 文件存儲(chǔ);

如果滿足以下所有條件墨辛,則認(rèn)為存儲(chǔ)設(shè)備可用

  • 硬盤設(shè)備必須沒(méi)有分區(qū)卓研。
  • 設(shè)備不得具有任何LVM狀態(tài)。
  • 不得安裝設(shè)備奏赘。
  • 該設(shè)備不得包含文件系統(tǒng)。
  • 該設(shè)備不得包含Ceph BlueStore OSD太惠。
  • 設(shè)備必須大于5 GB。

注意:Ceph拒絕在不可用的設(shè)備上配置OSD堵幽;也就是說(shuō)配置OSD時(shí),要保證掛載的硬盤設(shè)備是沒(méi)有分區(qū)過(guò)的空盤

文件存儲(chǔ)(CephFS)

優(yōu)點(diǎn):

  • 造價(jià)低羔沙,隨便一臺(tái)機(jī)器就可以了碟绑;
  • 方便文件共享;

缺點(diǎn):

  • 讀寫速率低;
  • 傳輸速率慢我碟;

使用場(chǎng)景

  • 日志存儲(chǔ)放案;
  • FTP、NFS矫俺;
  • 其它有目錄結(jié)構(gòu)的文件存儲(chǔ)

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

適合更新變動(dòng)較少的數(shù)據(jù)

優(yōu)點(diǎn):

  • 具備塊存儲(chǔ)的讀寫高速吱殉;
  • 具備文件存儲(chǔ)的共享等特性掸冤;

使用場(chǎng)景

  • 圖片存儲(chǔ);
  • 視頻存儲(chǔ)友雳;

2. 安裝與配置

2.1 環(huán)境介紹

IP地址 配置 主機(jī)名 Ceph版本
10.15.253.161 c2m8h300 cephnode01 Octopus 15.2.4
10.15.253.193 c2m8h300 cephnode02 Octopus 15.2.4
10.15.253.225 c2m8h300 cephnode03 Octopus 15.2.4
#Linux系統(tǒng)版本
[root@cephnode01 ~]# cat /etc/redhat-release 
CentOS Linux release 8.2.2004 (Core)
[root@cephnode01 ~]# uname -r
4.18.0-193.14.2.el8_2.x86_64


#網(wǎng)絡(luò)設(shè)計(jì):建議各網(wǎng)絡(luò)單獨(dú)分開(kāi)
10.15.253.0/24 #Public Network  公共網(wǎng)絡(luò)
172.31.253.0/24 #Cluster Network 集群網(wǎng)絡(luò)

#每臺(tái)ceph節(jié)點(diǎn)下除系統(tǒng)盤外稿湿,最少掛載兩塊相同的大容量硬盤,不需要進(jìn)行分區(qū)
[root@cephnode01 ~]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0  200M  0 part /boot
├─sda2   8:2    0    1G  0 part [SWAP]
└─sda3   8:3    0 18.8G  0 part /
sdb      8:16   0   20G  0 disk

2.1.1 Ceph安裝與版本選擇

https://docs.ceph.com/docs/master/install/

ceph-deploy 是用于快速部署群集的工具押赊;社區(qū)不再積極維護(hù)ceph-deploy饺藤。僅支持Nautilus版之前的Ceph版本上進(jìn)行。它不支持RHEL8流礁,CentOS 8或更新的操作系統(tǒng)涕俗。

這里的系統(tǒng)環(huán)境是centos8系統(tǒng),所以需要使用cephadm部署工具部署octopus版的ceph

2.1.2 基礎(chǔ)環(huán)境準(zhǔn)備

全部Ceph節(jié)點(diǎn)上操作神帅;以cephnode01節(jié)點(diǎn)為例再姑;

#(1)關(guān)閉防火墻:
systemctl stop firewalld
systemctl disable firewalld

#(2)關(guān)閉selinux:
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0

#(3)在cephnode01上配置免密登錄到cephnode02、cephnode03
dnf install sshpass -y
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
for ip in 161 193 225 ;do sshpass -pZxzn@2020 ssh-copy-id -o StrictHostKeyChecking=no 10.15.253.$ip ;done

#(4)在cephnode01上添加主機(jī)名:已經(jīng)配置過(guò)則不需要再次添加
cat >>/etc/hosts <<EOF
10.15.253.161 cephnode01 
10.15.253.193 cephnode02
10.15.253.225 cephnode03
EOF
for ip in 193 225 ;do scp -rp /etc/hosts root@10.15.253.$ip:/etc/hosts ;done

#(5)設(shè)置文件連接數(shù)最大值
echo "ulimit -SHn 102400" >> /etc/rc.local
cat >> /etc/security/limits.conf << EOF
* soft nofile 65535
* hard nofile 65535
EOF

#(6)內(nèi)核參數(shù)優(yōu)化
echo 'net.ipv4.ip_forward = 1' >>/etc/sysctl.conf
echo 'kernel.pid_max = 4194303' >>/etc/sysctl.conf
#內(nèi)存不足時(shí)低于此值找御,使用交換空間
echo "vm.swappiness = 0" >>/etc/sysctl.conf 
sysctl -p

#(7)同步網(wǎng)絡(luò)時(shí)間和修改時(shí)區(qū)元镀;已經(jīng)添加不需要配置
安裝chrony時(shí)間同步 同步cephnode01節(jié)點(diǎn)
yum install chrony -y
vim /etc/chrony.conf 
server cephnode01 iburst
---
systemctl restart chronyd.service 
systemctl enable chronyd.service 
chronyc sources

#(8)read_ahead,通過(guò)數(shù)據(jù)預(yù)讀并且記載到隨機(jī)訪問(wèn)內(nèi)存方式提高磁盤讀操作
echo "8192" > /sys/block/sda/queue/read_ahead_kb

#(9) I/O Scheduler,SSD要用noop(電梯式調(diào)度程序)萎坷,SATA/SAS使用deadline(截止時(shí)間調(diào)度程序)
#https://blog.csdn.net/shipeng1022/article/details/78604910
echo "deadline" >/sys/block/sda/queue/scheduler
echo "deadline" >/sys/block/sdb/queue/scheduler
#echo "noop" >/sys/block/sd[x]/queue/scheduler

3. 添加Octopus版yum源

cat >>/etc/yum.repos.d/ceph.repo <<EOF
[Ceph]
name=Ceph packages for $basearch
baseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el8/$basearch
enabled=1
gpgcheck=0
type=rpm-md

[Ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el8/noarch
enabled=1
gpgcheck=0
type=rpm-md

[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el8/SRPMS
enabled=1
gpgcheck=0
type=rpm-md
EOF

yum clean all && yum makecache
#安裝基礎(chǔ)軟件
yum install net-tools wget vim bash-completion lrzsz unzip zip -y

4. cephadm工具部署

https://docs.ceph.com/docs/master/cephadm/install/

  • 在15版本凹联,支持使用cephadm工具部署沐兰,ceph-deploy在14版本前都支持

4.1 拉取最新的cephadm并賦權(quán)

在cephnode01節(jié)點(diǎn)配置哆档;

[root@cephnode01 ~]# curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm
[root@cephnode01 ~]# chmod +x cephadm
[root@cephnode01 ~]#ll
-rwxr-xr-x. 1 root root 184653 Sep 10 12:01 cephadm

4.2 使用cephadm獲取octopus最新版本并安裝

已手動(dòng)配置為國(guó)內(nèi)yum源,不需要按官方文檔的步驟再進(jìn)行添加yum源

#全部ceph節(jié)點(diǎn)安裝
[root@cephnode01 ~]# dnf install python3 podman -y
[root@cephnode01 ~]# ./cephadm install
...
[root@cephnode01 ~]# which cephadm
/usr/sbin/cephadm

5. 創(chuàng)建ceph新集群

5.1 指定管理節(jié)點(diǎn)

創(chuàng)建一個(gè)可以被任何訪問(wèn)Ceph集群的主機(jī)訪問(wèn)的網(wǎng)絡(luò)住闯,指定mon-ip瓜浸,并將生成的配置文件寫進(jìn)/etc/ceph目錄里

[root@cephnode01 ~]# mkdir -p /etc/ceph
[root@cephnode01 ~]# cephadm bootstrap --mon-ip 10.15.253.161
...
         URL: https://cephnode01:8443/
        User: admin
    Password: 9wttzehse1
...

可登陸URL: https://cephnode01:8443/,首次登陸要修改密碼比原,進(jìn)行驗(yàn)證

5.2 將ceph命令映射到本地

  • Cephadm不需要在主機(jī)上安裝任何Ceph包插佛。但是,建議啟用對(duì)ceph命令的簡(jiǎn)單訪問(wèn)量窘。
  • cephadm shell命令在安裝了所有Ceph包的容器中啟動(dòng)一個(gè)bash shell雇寇。默認(rèn)情況下,如果在主機(jī)上的/etc/ceph中找到配置和keyring文件蚌铜,它們將被傳遞到容器環(huán)境中锨侯,這樣就可以完全正常工作了。
[root@cephnode01 ~]# cephadm shell
[root@cephnode01 ~]# alias ceph='cephadm shell -- ceph'
[root@cephnode01 ~]# exit

#安裝ceph-common包冬殃;包括ceph囚痴,rbd,mount.ceph的命令
[root@cephnode01 ~]# cephadm install ceph-common

#查看版本
[root@cephnode01 ~]# ceph -v
ceph version 15.2.4 (7447c15c6ff58d7fce91843b705a268a1917325c) octopus (stable)

查看狀態(tài)

[root@cephnode01 ~]# ceph status
  cluster:
    id:     5579576a-f41b-11ea-b2da-000c296e8d32
    health: HEALTH_WARN
            Reduced data availability: 1 pg inactive
            OSD count 0 < osd_pool_default_size 3
 
  services:
    mon: 1 daemons, quorum cephnode01 (age 11m)
    mgr: cephnode01.doawzr(active, since 10m)
    osd: 0 osds: 0 up, 0 in
 
  data:
    pools:   1 pools, 1 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:     100.000% pgs unknown
             1 unknown

5.3 添加新節(jié)點(diǎn)進(jìn)ceph集群

[root@cephnode01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@cephnode02
[root@cephnode01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@cephnode03

[root@cephnode01 ~]# ceph orch host add cephnode02
Added host 'cephnode02'
[root@cephnode01 ~]# ceph orch host add cephnode03
Added host 'cephnode03'

5.4 部署添加 monitor

選擇需要設(shè)置mon的節(jié)點(diǎn)审葬,全選

[root@cephnode01 ~]# ceph orch host label add cephnode01 mon
Added label mon to host cephnode01
[root@cephnode01 ~]# ceph orch host label add cephnode02 mon
Added label mon to host cephnode02
[root@cephnode01 ~]# ceph orch host label add cephnode03 mon
Added label mon to host cephnode03

[root@cephnode01 ~]# ceph orch host ls
HOST        ADDR        LABELS  STATUS  
cephnode01  cephnode01  mon             
cephnode02  cephnode02  mon             
cephnode03  cephnode03  mon

告訴cephadm根據(jù)標(biāo)簽部署mon深滚,這步需要等待各節(jié)點(diǎn)拉取images并啟動(dòng)容器

[root@cephnode01 ~]# ceph orch apply mon label:mon

具體驗(yàn)證是否安裝完成奕谭,其他兩臺(tái)節(jié)點(diǎn)可查看下

[root@cephnode02 ~]# podman ps -a
...

[root@cephnode02 ~]# podman images
REPOSITORY                     TAG       IMAGE ID       CREATED         SIZE
docker.io/ceph/ceph            v15       852b28cb10de   3 weeks ago     1 GB
docker.io/prom/node-exporter   v0.18.1   e5a616e4b9cf   15 months ago   24.3 MB

6. 部署OSD

6.1 查看可使用的硬盤

[root@cephnode01 ~]# ceph orch device ls
HOST    PATH      TYPE   SIZE  DEVICE  AVAIL  REJECT REASONS                         
ceph01  /dev/sda  hdd   20.0G          False  locked, Insufficient space (<5GB) on vgs, LVM detected  
ceph01  /dev/sdb  hdd   20.0G          True
ceph02  /dev/sda  hdd   20.0G          False  Insufficient space (<5GB) on vgs, LVM detected, locked  
ceph02  /dev/sdb  hdd   20.0G          True
ceph03  /dev/sda  hdd   20.0G          False  locked, Insufficient space (<5GB) on vgs, LVM detected  
ceph03  /dev/sdb  hdd   20.0G          True

6.2 使用所有可用硬盤

[root@cephnode01 ~]# ceph orch apply osd --all-available-devices

添加單塊盤的方式

[root@cephnode01 ~]# ceph orch daemon add osd cephnode02:/dev/sdc

6.3 驗(yàn)證部署情況

[root@cephnode01 ~]# ceph osd df
ID  CLASS  WEIGHT   REWEIGHT  SIZE    RAW USE  DATA     OMAP     META      AVAIL   %USE  VAR   PGS  STATUS
 0    hdd  0.01949   1.00000  20 GiB  1.0 GiB  3.8 MiB    1 KiB  1024 MiB  19 GiB  5.02  1.00    1      up
 1    hdd  0.01949   1.00000  20 GiB  1.0 GiB  3.8 MiB    1 KiB  1024 MiB  19 GiB  5.02  1.00    1      up
 2    hdd  0.01949   1.00000  20 GiB  1.0 GiB  3.8 MiB    1 KiB  1024 MiB  19 GiB  5.02  1.00    1      up
                       TOTAL  60 GiB  3.0 GiB   11 MiB  4.2 KiB   3.0 GiB  57 GiB  5.02                   
MIN/MAX VAR: 1.00/1.00  STDDEV: 0

7. 存儲(chǔ)部署

7.1 CephFS部署

部署cephfs的mds服務(wù),指定集群名及mds的數(shù)量

[root@cephnode01 ~]# ceph orch apply mds fs-cluster --placement=3
[root@cephnode01 ~]# ceph -s

  cluster:
    id:     8a4fdb4e-f31c-11ea-be33-000c29358c7a
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum cephnode01,cephnode02,cephnode03 (age 1m)
    mgr: cephnode01.oesega(active, since 49m), standbys: cephnode02.lphrtb, cephnode03.wkthtb
    mds:  3 up:standby
    osd: 3 osds: 3 up (since 51m), 3 in (since 30m)
 
  data:
    pools:   1 pools, 1 pgs
    objects: 0 objects, 0 B
    usage:   3.0 GiB used, 57 GiB / 60 GiB avail
    pgs:     1 active+clean

7.2 部署RGW

創(chuàng)建一個(gè)領(lǐng)域

[root@cephnode01 ~]# radosgw-admin realm create --rgw-realm=rgw-org --default
{
    "id": "43dc34c0-6b5b-411c-9e23-687a29c8bd00",
    "name": "rgw-org",
    "current_period": "ea3dd54c-2dfe-4180-bf11-4415be6ccafd",
    "epoch": 1
}

創(chuàng)建一個(gè)zonegroup區(qū)域組

[root@cephnode01 ~]# radosgw-admin zonegroup create --rgw-zonegroup=rgwgroup --master --default
{
    "id": "1878ecaa-216b-4c99-ad4e-b72f4fa9193f",
    "name": "rgwgroup",
    "api_name": "rgwgroup",
    "is_master": "true",
    "endpoints": [],
    "hostnames": [],
    "hostnames_s3website": [],
    "master_zone": "",
    "zones": [],
    "placement_targets": [],
    "default_placement": "",
    "realm_id": "43dc34c0-6b5b-411c-9e23-687a29c8bd00",
    "sync_policy": {
        "groups": []
    }
}

創(chuàng)建一個(gè)區(qū)域

[root@cephnode01 ~]# radosgw-admin zone create --rgw-zonegroup=rgwgroup --rgw-zone=zone-dc1 --master --default
{
    "id": "fbdc5f83-9022-4675-b98e-39738920bb57",
    "name": "zone-dc1",
    "domain_root": "zone-dc1.rgw.meta:root",
    "control_pool": "zone-dc1.rgw.control",
    "gc_pool": "zone-dc1.rgw.log:gc",
    "lc_pool": "zone-dc1.rgw.log:lc",
    "log_pool": "zone-dc1.rgw.log",
    "intent_log_pool": "zone-dc1.rgw.log:intent",
    "usage_log_pool": "zone-dc1.rgw.log:usage",
    "roles_pool": "zone-dc1.rgw.meta:roles",
    "reshard_pool": "zone-dc1.rgw.log:reshard",
    "user_keys_pool": "zone-dc1.rgw.meta:users.keys",
    "user_email_pool": "zone-dc1.rgw.meta:users.email",
    "user_swift_pool": "zone-dc1.rgw.meta:users.swift",
    "user_uid_pool": "zone-dc1.rgw.meta:users.uid",
    "otp_pool": "zone-dc1.rgw.otp",
    "system_key": {
        "access_key": "",
        "secret_key": ""
    },
    "placement_pools": [
        {
            "key": "default-placement",
            "val": {
                "index_pool": "zone-dc1.rgw.buckets.index",
                "storage_classes": {
                    "STANDARD": {
                        "data_pool": "zone-dc1.rgw.buckets.data"
                    }
                },
                "data_extra_pool": "zone-dc1.rgw.buckets.non-ec",
                "index_type": 0
            }
        }
    ],
    "realm_id": "43dc34c0-6b5b-411c-9e23-687a29c8bd00"
}

為特定領(lǐng)域和區(qū)域部署一組radosgw守護(hù)進(jìn)程痴荐,這里只指定了兩個(gè)節(jié)點(diǎn)開(kāi)啟rgw

[root@cephnode01 ~]# ceph orch apply rgw rgw-org zone-dc1 --placement="2 cephnode02 cephnode03"

驗(yàn)證

[root@cephnode01 ~]# ceph -s

  cluster:
    id:     8a4fdb4e-f31c-11ea-be33-000c29358c7a
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum cephnode01,cephnode02,cephnode03 (age 1m)
    mgr: cephnode01.oesega(active, since 49m), standbys: cephnode02.lphrtb, cephnode03.wkthtb
    mds:  3 up:standby
    osd: 3 osds: 3 up (since 51m), 3 in (since 30m)
    rgw: 2 daemons active (rgw-org.zone-dc1.cephnode02.cdgjsi, rgw-org.zone-dc1.cephnode03.nmbbsz)
  data:
    pools:   1 pools, 1 pgs
    objects: 0 objects, 0 B
    usage:   3.0 GiB used, 57 GiB / 60 GiB avail
    pgs:     1 active+clean

為RGW開(kāi)啟dashborad

#創(chuàng)建rgw的管理用戶
[root@cephnode01 ~]# radosgw-admin user create --uid=admin --display-name=admin --system
{
    "user_id": "admin",
    "display_name": "admin",
    "email": "",
    "suspended": 0,
    "max_buckets": 1000,
    "subusers": [],
    "keys": [
        {
            "user": "admin",
            "access_key": "WG9W5O9O11TGGOLU6OD2",
            "secret_key": "h2DfrWvlS4NMkdgGin4g6OB6Z50F1VNmhRCRQo3W"
        }
    ],
    "swift_keys": [],
    "caps": [],
    "op_mask": "read, write, delete",
    "system": "true",
    "default_placement": "",
    "default_storage_class": "",
    "placement_tags": [],
    "bucket_quota": {
        "enabled": false,
        "check_on_raw": false,
        "max_size": -1,
        "max_size_kb": 0,
        "max_objects": -1
    },
    "user_quota": {
        "enabled": false,
        "check_on_raw": false,
        "max_size": -1,
        "max_size_kb": 0,
        "max_objects": -1
    },
    "temp_url_keys": [],
    "type": "rgw",
    "mfa_ids": []
}

設(shè)置dashboard憑證

[root@cephnode01 ~]# ceph dashboard set-rgw-api-access-key WG9W5O9O11TGGOLU6OD2
Option RGW_API_ACCESS_KEY updated
[root@cephnode01 ~]# ceph dashboard set-rgw-api-secret-key h2DfrWvlS4NMkdgGin4g6OB6Z50F1VNmhRCRQo3W
Option RGW_API_SECRET_KEY updated

設(shè)置禁用證書驗(yàn)證血柳、http訪問(wèn)方式及使用admin賬號(hào)

ceph dashboard set-rgw-api-ssl-verify False
ceph dashboard set-rgw-api-scheme http
ceph dashboard set-rgw-api-host 10.15.253.225
ceph dashboard set-rgw-api-port 80
ceph dashboard set-rgw-api-user-id admin

重啟RGW

[root@cephnode01 ~]# ceph orch restart rgw
restart rgw.rgw-org.zone-dc1.cephnode02.ubzrtp from host 'cephnode02'
restart rgw.rgw-org.zone-dc1.cephnode03.mlcbmr from host 'cephnode03'

3. ceph的監(jiān)控

官方文檔

1. 安裝grafana

部署到cephnode03上;生產(chǎn)環(huán)境建議單獨(dú)分離

1蹬昌、清華源下載
wget https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/grafana-6.7.4-1.x86_64.rpm
2.安裝grafana
rpm -ivh grafana-6.7.4-1.x86_64.rpm
或
yum localinstall grafana-6.7.4-1.x86_64.rpm

3.啟動(dòng)grafana并設(shè)為開(kāi)機(jī)自啟
systemctl restart grafana-server.service 
systemctl enable grafana-server.service
systemctl status grafana-server.service

4.grafana的默認(rèn)端口為3000
netstat -lntup|grep 3000

2. 安裝prometheus

#1混驰、下載安裝包,下載地址
wget https://mirrors.tuna.tsinghua.edu.cn/github-release/prometheus/prometheus/LatestRelease/prometheus-2.21.0.linux-amd64.tar.gz
#2皂贩、解壓壓縮包
tar xf prometheus-2.21.0.linux-amd64.tar.gz
#3栖榨、將解壓后的目錄改名
mv prometheus-2.21.0.linux-amd64 /opt/prometheus
#4、查看prometheus版本
cd /opt/prometheus/
./prometheus --version
prometheus, version 2.21.0
#5明刷、配置系統(tǒng)服務(wù)啟動(dòng)
vim /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Monitoring System
Documentation=Prometheus Monitoring System

[Service]
ExecStart=/opt/prometheus/prometheus \
  --config.file /opt/prometheus/prometheus.yml \
  --web.listen-address=:9090

[Install]
WantedBy=multi-user.target
#6婴栽、加載系統(tǒng)服務(wù)
systemctl daemon-reload
#7、啟動(dòng)服務(wù)和添加開(kāi)機(jī)自啟動(dòng)
systemctl restart prometheus
systemctl enable prometheus
systemctl status prometheus
#8辈末、訪問(wèn)
curl http://10.15.253.225:9090

3. mgr愚争、prometheus插件配置

在cephnode01上配置;

#啟動(dòng)prometheus模塊
ceph mgr module enable prometheus
#檢查端口
netstat -nltp | grep mgr 
ceph -s (mgr在cephnode01上)
#測(cè)試返回值
curl 10.15.253.225:9283/metrics  
#訪問(wèn)
http://10.15.253.225:9283/metrics

4. 配置prometheus

4.1 在scrape_configs:配置項(xiàng)下添加

#每個(gè)job_name要分開(kāi)
[root@cephnode03 prometheus]# vim prometheus.yml
  - job_name: 'ceph_cluster'
    honor_labels: true
    scrape_interval: 5s
    static_configs:
      - targets: ['10.15.253.161:9283']
        labels:
          instance: ceph

4.2 重啟prometheus服務(wù)

systemctl restart prometheus

4.3 檢查prometheus服務(wù)器中是否添加成功

瀏覽器訪問(wèn)-》 http://10.15.253.225:9090 -》status -》Targets

5. 配置grafana監(jiān)控ceph集群

5.1 瀏覽器登錄 grafana 管理界面

http://10.15.253.225:3000/ 登陸admin/admin

5.2 添加Data Sources

點(diǎn)擊configuration--》data sources

添加prometheus

設(shè)置prometheus的訪問(wèn)地址

5.3 添加ceph監(jiān)控模板

添加dashboard挤聘,點(diǎn)擊HOME--》find dashboard on grafana.com

搜索ceph的dashboard模板

點(diǎn)擊HOME--》Import dashboard, 選擇合適的dashboard轰枝,記錄編號(hào)

檢測(cè)成功

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市组去,隨后出現(xiàn)的幾起案子鞍陨,更是在濱河造成了極大的恐慌,老刑警劉巖从隆,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诚撵,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡键闺,警方通過(guò)查閱死者的電腦和手機(jī)寿烟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)辛燥,“玉大人筛武,你說(shuō)我怎么就攤上這事】嫠” “怎么了徘六?”我有些...
    開(kāi)封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)勃蜘。 經(jīng)常有香客問(wèn)我硕噩,道長(zhǎng),這世上最難降的妖魔是什么缭贡? 我笑而不...
    開(kāi)封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任炉擅,我火速辦了婚禮辉懒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘谍失。我一直安慰自己眶俩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布快鱼。 她就那樣靜靜地躺著颠印,像睡著了一般。 火紅的嫁衣襯著肌膚如雪抹竹。 梳的紋絲不亂的頭發(fā)上线罕,一...
    開(kāi)封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音窃判,去河邊找鬼钞楼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛袄琳,可吹牛的內(nèi)容都是我干的询件。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼唆樊,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼宛琅!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起逗旁,我...
    開(kāi)封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤嘿辟,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后痢艺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仓洼,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡介陶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年堤舒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哺呜。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡舌缤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出某残,到底是詐尸還是另有隱情国撵,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布玻墅,位于F島的核電站介牙,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏澳厢。R本人自食惡果不足惜环础,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一囚似、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧线得,春花似錦饶唤、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至角雷,卻和暖如春祸穷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背勺三。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工粱哼, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人檩咱。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓揭措,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親刻蚯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子绊含,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355