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

CentOS8安装与配置Ceph Octopus版


1. Ceph介绍

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

1.1 为什么要用Ceph

Ceph是当前非常流行的开源分布式存储系统,具有高扩展性、高性能、高可靠性等优点,同时提供块存储服务(rbd)、对象存储服务(rgw)以及文件系统存储服务(cephfs),Ceph在存储的时候充分利用存储节点的计算能力,在存储每一个数据时都会通过计算得出该数据的位置,尽量的分布均衡。。目前也是OpenStack的主流后端存储,随着OpenStack在云计算领域的广泛使用,ceph也变得更加炙手可热。国内目前使用ceph搭建分布式存储系统较为成功的企业有x-sky,深圳元核云,上海UCloud等三家企业。

分布式存储 Ceph GFS HDFS Swift Lustre
平台属性 开源 闭源 开源 开源 开源
系统架构 去中心化架构 中心化架构 中心化架构 去中心化架构 中心化架构
数据存储方式 块、文件对象 文件 文件 对象 文件
元数据节点数量 多个 1个 1个(主备) 多个 1个
数据冗余 多副本/纠删码 多副本/纠删码 多副本/纠删码 多副本/纠删码
数据一致性 强一致性 最终一致性 过程一致性 弱一致性
分块大小 4MB 64MB 128MB 视对象大小 1MB
适用场景 频繁读写场景/IaaS 大文件连续读写 大数据场景 云的对象存储 大型集群/超算

1.2 Ceph架构介绍

Ceph使用RADOS提供对象存储,通过librados封装库提供多种存储方式的文件和对象转换。外层通过RGW(Object,有原生的API,而且也兼容Swift和S3的API,适合单客户端使用)、RBD(Block,支持精简配置、快照、克隆,适合多客户端有目录结构)、CephFS(File,Posix接口,支持快照,社会和更新变动少的数据,没有目录结构不能直接打开)将数据写入存储。

  • 高性能
    a. 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高
    b.考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等
    c. 能够支持上千个存储节点的规模,支持TB到PB级的数据
  • 高可扩展性
    a. 去中心化
    b. 扩展灵活
    c. 随着节点增加而线性增长
  • 特性丰富
    a. 支持三种存储接口:块存储、文件存储、对象存储
    b. 支持自定义接口,支持多种语言驱动

目前来说,ceph在开源社区还是比较热门的,但是更多的是应用于云计算的后端存储。官方推荐使用ceph的对象式存储,速度和效率都比较高,而cephfs官方并不推荐直接在生产中使用。以上介绍的只是ceph的沧海一粟,ceph远比上面介绍的要复杂,而且支持很多特性,比如使用纠删码就行寻址,所以大多数在生产环境中使用ceph的公司都会有专门的团队对ceph进行二次开发,ceph的运维难度也比较大。但是经过合理的优化之后,ceph的性能和稳定性都是值得期待的。

1.3 Ceph核心概念

==RADOS==

全称Reliable Autonomic Distributed Object Store,即可靠的、自动化的、分布式对象存储系统。RADOS是Ceph集群的精华,用户实现数据分配、Failover等集群操作。

==Librados==

Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。

==Crush==

Crush算法是Ceph的两大创新之一,通过Crush算法的寻址操作,Ceph得以摒弃了传统的集中式存储元数据寻址方案。而Crush算法在一致性哈希基础上很好的考虑了容灾域的隔离,使得Ceph能够实现各类负载的副本放置规则,例如跨机房、机架感知等。同时,Crush算法有相当强大的扩展性,理论上可以支持数千个存储节点,这为Ceph在大规模云环境中的应用提供了先天的便利。

==Pool==

Pool是存储对象的逻辑分区,它规定了数据冗余的类型和对应的副本分布策略,默认存储3份副本;支持两种类型:副本(replicated)和 纠删码( Erasure Code);

==PG==

PG( placement group)是一个放置策略组,它是对象的集合,该集合里的所有对象都具有相同的放置策略,简单点说就是相同PG内的对象都会放到相同的硬盘上,PG是 ceph的逻辑概念,服务端数据均衡和恢复的最小粒度就是PG,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据;

==Object==

简单来说块存储读写快,不利于共享,文件存储读写慢,利于共享。能否弄一个读写快,利于共享的出来呢。于是就有了对象存储。最底层的存储单元,包含元数据和原始数据。

1.4 Ceph核心组件

OSD

是负责物理存储的进程,一般配置成和磁盘一一对应,一块磁盘启动一个OSD进程。主要功能是存储数据、复制数据、平衡数据、恢复数据,以及与其它OSD间进行心跳检查,负责响应客户端请求返回具体数据的进程等;

Pool、PG和OSD的关系:

  • 一个Pool里有很多PG;
  • 一个PG里包含一堆对象,一个对象只能属于一个PG;
  • PG有主从之分,一个PG分布在不同的OSD上(针对三副本类型);

Monitor

一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。负责监视整个Ceph集群运行的Map视图(如OSD Map、Monitor Map、PG Map和CRUSH Map),维护集群的健康状态,维护展示集群状态的各种图表,管理集群客户端认证与授权;生产中建议最少要用3个Monitor,基数个的Monitor组成组件来做高可用。

MDS

MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。负责保存文件系统的元数据,管理目录结构。对象存储和块设备存储不需要元数据服务;

Mgr

ceph 官方开发了 ceph-mgr,主要目标实现 ceph 集群的管理,为外界提供统一的入口。例如cephmetrics、zabbix、calamari、promethus

RGW

RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。

Admin

Ceph常用管理接口通常都是命令行工具,如rados、ceph、rbd等命令,另外Ceph还有可以有一个专用的管理节点,在此节点上面部署专用的管理工具来实现近乎集群的一些管理工作,如集群部署,集群组件管理等。

1.5 Ceph三种存储类型

块存储(RBD)

优点:

  • 通过Raid与LVM等手段,对数据提供了保护;
  • 多块廉价的硬盘组合起来,提高容量;
  • 多块磁盘组合出来的逻辑盘,提升读写效率;

缺点:

  • 采用SAN架构组网时,光纤交换机,造价成本高;
  • 主机之间无法共享数据;

使用场景

  • docker容器、虚拟机磁盘存储分配;
  • 日志存储;
  • 文件存储;

如果满足以下所有条件,则认为存储设备可用

  • 硬盘设备必须没有分区。
  • 设备不得具有任何LVM状态。
  • 不得安装设备。
  • 该设备不得包含文件系统。
  • 该设备不得包含Ceph BlueStore OSD。
  • 设备必须大于5 GB。

注意:Ceph拒绝在不可用的设备上配置OSD;也就是说配置OSD时,要保证挂载的硬盘设备是没有分区过的空盘

文件存储(CephFS)

优点:

  • 造价低,随便一台机器就可以了;
  • 方便文件共享;

缺点:

  • 读写速率低;
  • 传输速率慢;

使用场景

  • 日志存储;
  • FTP、NFS;
  • 其它有目录结构的文件存储

对象存储(Object)

适合更新变动较少的数据

优点:

  • 具备块存储的读写高速;
  • 具备文件存储的共享等特性;

使用场景

  • 图片存储;
  • 视频存储;

2. 安装与配置

2.1 环境介绍

IP地址 配置 主机名 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系统版本
[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


#网络设计:建议各网络单独分开
10.15.253.0/24 #Public Network  公共网络
172.31.253.0/24 #Cluster Network 集群网络

#每台ceph节点下除系统盘外,最少挂载两块相同的大容量硬盘,不需要进行分区
[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 是用于快速部署群集的工具;社区不再积极维护ceph-deploy。仅支持Nautilus版之前的Ceph版本上进行。它不支持RHEL8,CentOS 8或更新的操作系统。

这里的系统环境是centos8系统,所以需要使用cephadm部署工具部署octopus版的ceph

2.1.2 基础环境准备

全部Ceph节点上操作;以cephnode01节点为例;

#(1)关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld

#(2)关闭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上添加主机名:已经配置过则不需要再次添加
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)设置文件连接数最大值
echo "ulimit -SHn 102400" >> /etc/rc.local
cat >> /etc/security/limits.conf << EOF
* soft nofile 65535
* hard nofile 65535
EOF

#(6)内核参数优化
echo 'net.ipv4.ip_forward = 1' >>/etc/sysctl.conf
echo 'kernel.pid_max = 4194303' >>/etc/sysctl.conf
#内存不足时低于此值,使用交换空间
echo "vm.swappiness = 0" >>/etc/sysctl.conf 
sysctl -p

#(7)同步网络时间和修改时区;已经添加不需要配置
安装chrony时间同步 同步cephnode01节点
yum install chrony -y
vim /etc/chrony.conf 
server cephnode01 iburst
---
systemctl restart chronyd.service 
systemctl enable chronyd.service 
chronyc sources

#(8)read_ahead,通过数据预读并且记载到随机访问内存方式提高磁盘读操作
echo "8192" > /sys/block/sda/queue/read_ahead_kb

#(9) I/O Scheduler,SSD要用noop(电梯式调度程序),SATA/SAS使用deadline(截止时间调度程序)
#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
#安装基础软件
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并赋权

在cephnode01节点配置;

[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最新版本并安装

已手动配置为国内yum源,不需要按官方文档的步骤再进行添加yum源

#全部ceph节点安装
[root@cephnode01 ~]# dnf install python3 podman -y
[root@cephnode01 ~]# ./cephadm install
...
[root@cephnode01 ~]# which cephadm
/usr/sbin/cephadm

5. 创建ceph新集群

5.1 指定管理节点

创建一个可以被任何访问Ceph集群的主机访问的网络,指定mon-ip,并将生成的配置文件写进/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/,首次登陆要修改密码,进行验证

5.2 将ceph命令映射到本地

  • Cephadm不需要在主机上安装任何Ceph包。但是,建议启用对ceph命令的简单访问。
  • cephadm shell命令在安装了所有Ceph包的容器中启动一个bash shell。默认情况下,如果在主机上的/etc/ceph中找到配置和keyring文件,它们将被传递到容器环境中,这样就可以完全正常工作了。
[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)

查看状态

[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 添加新节点进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

选择需要设置mon的节点,全选

[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根据标签部署mon,这步需要等待各节点拉取images并启动容器

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

具体验证是否安装完成,其他两台节点可查看下

[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 验证部署情况

[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. 存储部署

7.1 CephFS部署

部署cephfs的mds服务,指定集群名及mds的数量

[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

创建一个领域

[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
}

创建一个zonegroup区域组

[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": []
    }
}

创建一个区域

[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"
}

为特定领域和区域部署一组radosgw守护进程,这里只指定了两个节点开启rgw

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

验证

[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开启dashborad

#创建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": []
}

设置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

设置禁用证书验证、http访问方式及使用admin账号

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的监控

官方文档

1. 安装grafana

部署到cephnode03上;生产环境建议单独分离

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.启动grafana并设为开机自启
systemctl restart grafana-server.service 
systemctl enable grafana-server.service
systemctl status grafana-server.service

4.grafana的默认端口为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、配置系统服务启动
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、加载系统服务
systemctl daemon-reload
#7、启动服务和添加开机自启动
systemctl restart prometheus
systemctl enable prometheus
systemctl status prometheus
#8、访问
curl http://10.15.253.225:9090

3. mgr、prometheus插件配置

在cephnode01上配置;

#启动prometheus模块
ceph mgr module enable prometheus
#检查端口
netstat -nltp | grep mgr 
ceph -s (mgr在cephnode01上)
#测试返回值
curl 10.15.253.225:9283/metrics  
#访问
http://10.15.253.225:9283/metrics

4. 配置prometheus

4.1 在scrape_configs:配置项下添加

#每个job_name要分开
[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服务

systemctl restart prometheus

4.3 检查prometheus服务器中是否添加成功

浏览器访问-》 http://10.15.253.225:9090 -》status -》Targets

5. 配置grafana监控ceph集群

5.1 浏览器登录 grafana 管理界面

http://10.15.253.225:3000/ 登陆admin/admin

5.2 添加Data Sources

点击configuration--》data sources

添加prometheus

设置prometheus的访问地址

5.3 添加ceph监控模板

添加dashboard,点击HOME--》find dashboard on grafana.com

搜索ceph的dashboard模板

点击HOME--》Import dashboard, 选择合适的dashboard,记录编号

检测成功

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349