cephadm简介

Cephadm通过manager daemon SSH连接到主机部署和管理Ceph群集,以添加,删除或更新Ceph daemon containers。它不依赖于诸如Ansible,Rook或Salt的外部配置或编排工具。

Cephadm管理Ceph集群的整个生命周期。它首先在一个节点上引导一个微小的Ceph集群(one monitor and one manager),然后自动将集群扩展到多个主机节点,并提供所有Ceph守护程序和服务。这可以通过Ceph命令行界面(CLI)或仪表板(GUI)执行。Cephadm是Octopus v15.2.0版本中的新增功能,并且不支持旧版本的Ceph。

ceph集群部署架构图 cephadm部署ceph集群_ceph集群部署架构图


ceph集群部署架构图 cephadm部署ceph集群_3d_02

官方文档:

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

节点规划:

主机名

public-ip

磁盘

角色

node1

192.168.93.70

系统盘: sda

osd盘: sdb

cephadm,monitor,mgr,rgw,mds,osd,nfs

node2

192.168.93.71

系统盘: sda

osd盘: sdb

monitor,mgr,rgw,mds,osd,nfs

node3

192.168.93.72

系统盘: sda

osd盘: sdb

monitor,mgr,rgw,mds,osd,nfs

安装说明:

  • ceph版本: 15.2.3 octopus (stable)
  • 由于octopus需要python3支持,这里直接使用centos 8.2 minimal操作系统安装
  • 集群的第一个节点也作为cephadm部署节点使用。

基础配置

没有特殊说明,以下所有操作在所有节点执行。

操作系统版本

[root@node1 ~]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)

配置centos8阿里云yum源

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo

所有节点必须配置主机名

hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3

配置hosts解析

cat >> /etc/hosts <<EOF
192.168.93.70 node1
192.168.93.71 node2
192.168.93.72 node3
EOF

关闭防火墙并同步时间

#关闭防火墙和selinux
systemctl disable --now firewalld
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

#配置时间同步
yum install -y chrony
systemctl enable --now chronyd

默认centos8 minimal未安装python,安装python3才能执行cephadm脚本

dnf install -y epel-release
dnf install -y python3

安装docker

cephadm基于容器运行所有ceph组件,所有节点需要安装docker或podman,这里以在centos8中安装最新版本docker-ce为例。

#配置阿里云yum源
dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#安装containerd.io
dnf install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm

#安装docker-ce
dnf install -y docker-ce

#配置docker镜像加速
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://uyah70su.mirror.aliyuncs.com"]
}
EOF

#启动docker服务
systemctl enable --now docker

# docker version
# docker info

安装Cephadm

无特殊说明,以下所有操作在node1节点执行。

cephadm命令可以执行以下操作:

  • 引导新集群
  • 使用有效的Ceph CLI启动容器化的Shell
  • 调试容器化的Ceph守护程序。

使用curl获取cephadm独立脚本的最新版本:

#下面的命令从github下载没成功,可能本地网络较慢,使用直接从github下载的方式
#curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm

#直接从github下载
curl https://raw.githubusercontent.com/ceph/ceph/v15.2.1/src/cephadm/cephadm -o cephadm
chmod +x cephadm

安装cephadm到当前节点

./cephadm add-repo --release octopus
./cephadm install

使用以下命令确认cephadm已经加入PATH环境变量,可能需要退出命令行界面重新登录:

[root@localhost ~]# which cephadm
/usr/sbin/cephadm

[root@node1 ~]# cephadm --help

[root@node1 ~]# cephadm version

引导新的群集

无特殊说明,以下所有操作在node1节点执行。

需要知道用于集群的第一个monitor daemon的IP地址。通常,这只是第一台主机的IP。如果存在多个网络和接口,请确保选择任何可供访问Ceph群集的主机访问的网络和接口。

要引导集群执行以下命令:

mkdir -p /etc/ceph
cephadm bootstrap --mon-ip 192.168.93.70

该命令执行以下操作:

  • 在本地主机上为新集群创建monitor 和 manager daemon守护程序。
  • 为Ceph集群生成一个新的SSH密钥,并将其添加到root用户的/root/.ssh/authorized_keys文件中。
  • 将与新群集进行通信所需的最小配置文件保存到/etc/ceph/ceph.conf。
  • 向/etc/ceph/ceph.client.admin.keyring写入client.admin管理(特权!)secret key的副本。
  • 将public key的副本写入/etc/ceph/ceph.pub。

查看当前配置文件变化:

[root@node1 ~]# ll /etc/ceph/
total 12
-rw------- 1 root root  63 Jun 20 08:05 ceph.client.admin.keyring
-rw-r--r-- 1 root root 177 Jun 20 08:05 ceph.conf
-rw-r--r-- 1 root root 595 Jun 20 08:05 ceph.pub

[root@node1 ~]# cat /etc/ceph/ceph.conf 
# minimal ceph.conf for 93565df4-b289-11ea-8332-000c2993d00b
[global]
        fsid = 93565df4-b289-11ea-8332-000c2993d00b
        mon_host = [v2:192.168.93.70:3300/0,v1:192.168.93.70:6789/0]

查看拉取的镜像和启动的容器

[root@node1 ~]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
prom/prometheus      latest              396dc3b4e717        31 hours ago        142MB
prom/alertmanager    latest              c876f5897d7b        2 days ago          55.5MB
prom/node-exporter   latest              0e0218889c33        3 days ago          26.4MB
ceph/ceph            v15                 d72755c420bc        3 weeks ago         1.11GB
ceph/ceph-grafana    latest              87a51ecf0b1c        3 months ago        509MB

[root@node1 ~]# docker ps -a
CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS              PORTS               NAMES
006668afcc4f        ceph/ceph-grafana:latest   "/bin/sh -c 'grafana…"   9 minutes ago       Up 9 minutes                            ceph-55e5485a-b292-11ea-8087-000c2993d00b-grafana.node1
df3cbb6bbd92        ceph/ceph:v15              "/usr/bin/ceph-crash…"   9 minutes ago       Up 9 minutes                            ceph-55e5485a-b292-11ea-8087-000c2993d00b-crash.node1
ef94d5f70850        ceph/ceph:v15              "/usr/bin/ceph-mon -…"   9 minutes ago       Up 9 minutes                            ceph-55e5485a-b292-11ea-8087-000c2993d00b-mon.node1
6fa59b593fd5        prom/alertmanager          "/bin/alertmanager -…"   9 minutes ago       Up 9 minutes                            ceph-55e5485a-b292-11ea-8087-000c2993d00b-alertmanager.node1
090a3ad5eaf2        ceph/ceph:v15              "/usr/bin/ceph-mgr -…"   9 minutes ago       Up 9 minutes                            ceph-55e5485a-b292-11ea-8087-000c2993d00b-mgr.node1.dzrkgj
dec9ae2c2d21        prom/node-exporter         "/bin/node_exporter …"   9 minutes ago       Up 9 minutes                            ceph-55e5485a-b292-11ea-8087-000c2993d00b-node-exporter.node1
78f3e297aa77        prom/prometheus:latest     "/bin/prometheus --c…"   9 minutes ago       Up 9 minutes                            ceph-55e5485a-b292-11ea-8087-000c2993d00b-prometheus.node1

此时已经运行了以下组件

  • ceph-mgr ceph管理程序
  • ceph-monitor ceph监视器
  • ceph-crash 崩溃数据收集模块
  • prometheus prometheus监控组件
  • grafana 监控数据展示dashboard
  • alertmanager prometheus告警组件
  • node_exporter prometheus节点数据收集组件

请参阅下面的一些对某些用户可能有用的选项,或者运行cephadm bootstrap -h命令查看所有可用选项:

  • 为了方便起见,Bootstrap会将访问新集群所需的文件写入/etc/ceph,以便主机上安装的任何Ceph软件包(例如,访问命令行界面)都可以轻松找到它们。
  • 但是使用cephadm部署的daemon容器根本不需要/etc/ceph。避免与同一主机上的现有Ceph配置(cephadm或其他方式)存在潜在冲突,可以使用–output-dir 选项将它们放置在不同的目录中。
  • 可以使用–config选项将任何初始Ceph配置选项传递到新集群,方法是将它们放在标准ini样式的配置文件中。

查看所有组件运行状态

[root@node1 ~]# ceph orch ps

查看某个组件运行状态

[root@node1 ~]# ceph orch ps --daemon-type mds
NAME                     HOST   STATUS         REFRESHED  AGE  VERSION  IMAGE NAME               IMAGE ID      CONTAINER ID
mds.cephfs.node1.qahxbq  node1  running (27m)  42s ago    27m  15.2.3   docker.io/ceph/ceph:v15  d72755c420bc  5aa9e4f2f3f7
mds.cephfs.node2.djktgx  node2  running (27m)  40s ago    27m  15.2.3   docker.io/ceph/ceph:v15  d72755c420bc  064fc7ff6873
mds.cephfs.node3.vmcgpb  node3  running (27m)  39s ago    27m  15.2.3   docker.io/ceph/ceph:v15  d72755c420bc  ef24629708c0

[root@node1 ~]# ceph orch ps --daemon-type mgr
NAME              HOST   STATUS         REFRESHED  AGE  VERSION  IMAGE NAME               IMAGE ID      CONTAINER ID
mgr.node1.dzrkgj  node1  running (54m)  50s ago    89m  15.2.3   docker.io/ceph/ceph:v15  d72755c420bc  551cd88bb48a
mgr.node2.dygsih  node2  running (54m)  48s ago    59m  15.2.3   docker.io/ceph/ceph:v15  d72755c420bc  1f146b9e8b33

根据初始化完成的提示使用浏览器访问dashboard

...
INFO:cephadm:Creating initial admin user...
INFO:cephadm:Fetching dashboard port number...
INFO:cephadm:Ceph Dashboard is now available at:

             URL: https://node1:8443/
            User: admin
        Password: nfyee637l9

INFO:cephadm:You can access the Ceph CLI with:

        sudo /usr/sbin/cephadm shell --fsid 55e5485a-b292-11ea-8087-000c2993d00b -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring

INFO:cephadm:Please consider enabling telemetry to help improve Ceph:

        ceph telemetry on

For more information see:

        https://docs.ceph.com/docs/master/mgr/telemetry/

INFO:cephadm:Bootstrap complete.

修改密码后登录到ceph dashboard

ceph集群部署架构图 cephadm部署ceph集群_3d_03

启用CEPH命令

无特殊说明,以下所有操作在node1节点执行。

cephadm shell命令在安装了所有Ceph包的容器中启动bash shell。默认情况下,如果在主机上的/etc/ceph中找到配置和keyring文件,则会将它们传递到容器环境中,以便shell完全正常工作。注意,在MON主机上执行时,cephadm shell将从MON容器推断配置,而不是使用默认配置。如果给定–mount (文件或目录)将显示在容器中的/mnt下:

[root@node1 ceph]# cephadm shell
INFO:cephadm:Inferring fsid 55e5485a-b292-11ea-8087-000c2993d00b
INFO:cephadm:Using recent ceph image ceph/ceph:v15

[ceph: root@node1 /]# ceph status
  cluster:
    id:     55e5485a-b292-11ea-8087-000c2993d00b
    health: HEALTH_WARN
            Reduced data availability: 1 pg inactive
            OSD count 0 < osd_pool_default_size 3

  services:
    mon: 1 daemons, quorum node1 (age 2m)
    mgr: node1.dzrkgj(active, since 2m)
    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

创建别名可能会有所帮助(省略):

# alias ceph='cephadm shell -- ceph'

可以安装ceph-common包,里面包含了所有的ceph命令,其中包括ceph,rbd,mount.ceph(用于安装CephFS文件系统)等:

cephadm add-repo --release octopus
cephadm install ceph-common

如果安装较慢,可以尝试使用阿里云ceph源

cp /etc/yum.repos.d/ceph.repo{,.bak}

cat > ceph.repo << 'EOF'
[Ceph]
name=Ceph $basearch
baseurl=http://mirrors.aliyun.com/ceph/rpm-octopus/el8/$basearch
enabled=1
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/ceph/keys/release.asc

[Ceph-noarch]
name=Ceph noarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-octopus/el8/noarch
enabled=1
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/ceph/keys/release.asc

[Ceph-source]
name=Ceph SRPMS
baseurl=http://mirrors.aliyun.com/ceph/rpm-octopus/el8/SRPMS
enabled=1
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/ceph/keys/release.asc
EOF

使用以下ceph命令确认该命令是否可访问:

[root@node1 ~]# ceph -v
ceph version 15.2.3 (d289bbdec69ed7c1f516e0a093594580a76b78d0) octopus (stable)

通过以下ceph命令确认命令可以连接到集群及显示状态:

[root@node1 ~]# ceph status
  cluster:
    id:     55e5485a-b292-11ea-8087-000c2993d00b
    health: HEALTH_WARN
            Reduced data availability: 1 pg inactive
            OSD count 0 < osd_pool_default_size 3

  services:
    mon: 1 daemons, quorum node1 (age 3m)
    mgr: node1.dzrkgj(active, since 2m)
    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

将主机添加到集群中

要将新主机添加到群集,请执行两个步骤:

在新主机的根用户authorized_keys文件中安装集群的公共SSH密钥:

ssh-copy-id -f -i /etc/ceph/ceph.pub root@node2
ssh-copy-id -f -i /etc/ceph/ceph.pub root@node3

告诉Ceph,新节点是集群的一部分:

[root@node1 ~]# ceph orch host add node2
Added host 'node2'
[root@node1 ~]# ceph orch host add node3
Added host 'node3'

查看ceph纳管的所有节点

[root@node1 ~]# ceph orch host ls
HOST   ADDR   LABELS  STATUS
node1  node1
node2  node2
node3  node3

添加完成后ceph会自动扩展monitor和manager到另外2个节点,在另外2个节点查看,自动运行了以下容器

[root@node2 ~]# docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED              STATUS              PORTS               NAMES
41b9e0ab5595        prom/node-exporter   "/bin/node_exporter …"   About a minute ago   Up About a minute                       ceph-55e5485a-b292-11ea-8087-000c2993d00b-node-exporter.node2
ecca97ca8f93        ceph/ceph:v15        "/usr/bin/ceph-mon -…"   About a minute ago   Up About a minute                       ceph-55e5485a-b292-11ea-8087-000c2993d00b-mon.node2
d3ae9d560599        ceph/ceph:v15        "/usr/bin/ceph-mgr -…"   About a minute ago   Up About a minute                       ceph-55e5485a-b292-11ea-8087-000c2993d00b-mgr.node2.dygsih
e24c7ea4157a        ceph/ceph:v15        "/usr/bin/ceph-crash…"   2 minutes ago        Up 2 minutes                            ceph-55e5485a-b292-11ea-8087-000c2993d00b-crash.node2

查看ceph集群状态

[root@node1 ~]# ceph -s
  cluster:
    id:     55e5485a-b292-11ea-8087-000c2993d00b
    health: HEALTH_WARN
            Reduced data availability: 1 pg inactive
            OSD count 0 < osd_pool_default_size 3

  services:
    mon: 3 daemons, quorum node1,node2,node3 (age 2m)
    mgr: node1.dzrkgj(active, since 16m), standbys: node2.dygsih
    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

部署其他Monitors(可选)

本节以下操作可全部忽略,ceph已自动扩展mon和mgr,下面是定制扩容的操作。

一个典型的Ceph集群具有三个或五个分布在不同主机上的Monitors守护程序。如果群集中有五个或更多节点,我们建议部署五个Monitors。

当Ceph知道Monitors应该使用哪个IP子网时,它可以随着群集的增长(或收缩)自动部署和扩展Monitors。默认情况下,Ceph假定其他Monitor应使用与第一台Monitor IP相同的子网。

如果Ceph Monitor(或整个群集)位于单个子网中,则默认情况下,当向群集中添加新主机时,cephadm会自动最多添加5个监视器。无需其他步骤。

如果存在Monitors应使用的特定IP子网,则可以使用以下命令以CIDR格式(例如10.1.2.0/24)配置该IP子网:

# ceph config set mon public_network *<mon-cidr-network>*

例如:

# ceph config set mon public_network 10.1.2.0/24

Cephadm仅在已在配置的子网中配置了IP的主机上部署新的monitor守护程序。

如果要调整5个monitor的默认值:

# ceph orch apply mon *<number-of-monitors>*

要将monitor部署在一组特定的主机上:

# ceph orch apply mon *<host1,host2,host3,...>*

确保在此列表中包括第一台(引导)主机。

可以通过使用主机标签来控制运行monitor的主机。要将mon标签设置为适当的主机,执行以下命令:

# ceph orch host label add *<hostname>* mon

要查看当前的主机和标签:

# ceph orch host ls

例如:

# ceph orch host label add host1 mon
# ceph orch host label add host2 mon
# ceph orch host label add host3 mon

# ceph orch host ls
HOST   ADDR   LABELS  STATUS
host1         mon
host2         mon
host3         mon
host4
host5

告诉cephadm根据标签部署monitor:

# ceph orch apply mon label:mon

可以为每个monitor显式指定IP地址或CIDR网络,并控制其放置位置。要禁用自动monitor部署:

# ceph orch apply mon --unmanaged

要部署每个其他monitor:

# ceph orch daemon add mon *<host1:ip-or-network1> [<host1:ip-or-network-2>...]*

例如,要在newhost1IP地址10.1.2.123上部署第二台监视器,并newhost2在网络10.1.2.0/24中部署第三台monitor:

# ceph orch apply mon --unmanaged
# ceph orch daemon add mon newhost1:10.1.2.123
# ceph orch daemon add mon newhost2:10.1.2.0/24

部署OSD

所有群集主机上的存储设备清单可以显示为:

ceph orch device ls

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

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

Ceph拒绝在不可用的设备上配置OSD。

有几种创建新OSD的方法:

告诉Ceph使用任何可用和未使用的存储设备(可能是bug没有显示任何信息,选择手动添加osd):

# ceph orch apply osd --all-available-devices

从特定主机上的特定设备创建OSD:

[root@node1 ~]# ceph orch daemon add osd node1:/dev/sdb
Created osd(s) 0 on host 'node1'
[root@node1 ~]# ceph orch daemon add osd node2:/dev/sdb
Created osd(s) 1 on host 'node2'
[root@node1 ~]# ceph orch daemon add osd node3:/dev/sdb
Created osd(s) 2 on host 'node3'

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

查看集群状态

[root@node1 ~]# ceph -s
  cluster:
    id:     55e5485a-b292-11ea-8087-000c2993d00b
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum node1,node2,node3 (age 4m)
    mgr: node1.dzrkgj(active, since 4m), standbys: node2.dygsih
    osd: 3 osds: 3 up (since 85s), 3 in (since 85s)

  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

也可以使用OSD服务规范基于设备的属性来描述要使用的设备,例如设备类型(SSD或HDD),设备型号名称,大小或设备所在的主机:

# ceph orch apply osd -i spec.yml

部署的MDS

要使用CephFS文件系统,需要一个或多个MDS守护程序。如果使用较新的界面来创建新的文件系统,则会自动创建这些文件。有关更多信息,请参见FS卷和子卷cephfsvolume

部署元数据服务器

[root@node1 ~]# ceph osd pool create cephfs_data 64 64
pool 'cephfs_data' created

[root@node1 ~]# ceph osd pool create cephfs_metadata 64 64
pool 'cephfs_metadata' created

[root@node1 ~]# ceph fs new cephfs cephfs_metadata cephfs_data
new fs with metadata pool 3 and data pool 2

[root@node1 ~]# ceph fs ls
name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]

[root@node1 ~]# ceph orch apply mds cephfs --placement="3 node1 node2 node3"

查看节点各启动了一个mds容器

[root@node1 ~]# docker ps | grep mds
5aa9e4f2f3f7        ceph/ceph:v15              "/usr/bin/ceph-mds -…"   58 seconds ago      Up 57 seconds                           ceph-55e5485a-b292-11ea-8087-000c2993d00b-mds.cephfs.node1.qahxbq

查看集群状态

[root@node1 ~]# ceph -s
  cluster:
    id:     55e5485a-b292-11ea-8087-000c2993d00b
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum node1,node2,node3 (age 30m)
    mgr: node1.dzrkgj(active, since 30m), standbys: node2.dygsih
    mds: cephfs:1 {0=cephfs.node2.djktgx=up:active} 2 up:standby
    osd: 3 osds: 3 up (since 27m), 3 in (since 27m)

  task status:
    scrub status:
        mds.cephfs.node2.djktgx: idle

  data:
    pools:   3 pools, 81 pgs
    objects: 22 objects, 2.2 KiB
    usage:   3.1 GiB used, 57 GiB / 60 GiB avail
    pgs:     81 active+clean

部署RGWS

Cephadm将radosgw部署为管理特定领域区域的守护程序的集合。(有关领域和区域的更多信息,请参见Multi-Site。)

请注意,使用cephadm时,radosgw守护程序是通过监视器配置数据库而不是通过ceph.conf或命令行来配置的。如果该配置尚未就绪(通常在本client.rgw.<realmname>.<zonename>节中),那么radosgw守护程序将使用默认设置(例如,绑定到端口80)启动。

例如,要在node1、node2和node3上部署3个服务于myorg领域和us-east-1区域的rgw守护程序:

#如果尚未创建领域,请首先创建一个领域:
radosgw-admin realm create --rgw-realm=myorg --default

#接下来创建一个新的区域组:
radosgw-admin zonegroup create --rgw-zonegroup=default --master --default

#接下来创建一个区域:
radosgw-admin zone create --rgw-zonegroup=default --rgw-zone=cn-east-1 --master --default

#为特定领域和区域部署一组radosgw守护程序:
ceph orch apply rgw myorg cn-east-1 --placement="3 node1 node2 node3"

查看服务状态

[root@node1 ~]# docker ps | grep rgw
78f9a9dfc46c        ceph/ceph:v15              "/usr/bin/radosgw -n…"   2 hours ago         Up 2 hours                              ceph-55e5485a-b292-11ea-8087-000c2993d00b-rgw.myorg.cn-east-1.node1.yjurkc

[root@node1 ~]# ceph orch ls | grep rgw
rgw.myorg.cn-east-1            3/3  6m ago     2h   count:3 node1,node2,node3  docker.io/ceph/ceph:v15   d72755c420bc

部署NFS Ganesha

Cephadm使用预定义的RADOS和可选的namespace部署NFS Ganesha

要部署NFS Ganesha网关,请执行以下操作:

例如,同一个服务ID部署NFSFOO,将使用RADOS池NFS的象头和命名空间NFS-NS,:

ceph osd pool create nfs-ganesha 64 64

ceph orch apply nfs foo nfs-ganesha nfs-ns --placement="3 node1 node2 node3"

ceph osd pool application enable nfs-ganesha cephfs

查看容器和服务

[root@node1 ~]# docker ps | grep nfs
b89fe9bb981d        ceph/ceph:v15              "/usr/bin/ganesha.nf…"   About a minute ago   Up About a minute                       ceph-55e5485a-b292-11ea-8087-000c2993d00b-nfs.foo.node1

[root@node1 ~]# ceph orch ls  | grep nfs
nfs.foo                        3/3  2m ago     2m    count:3 node1,node2,node3  docker.io/ceph/ceph:v15   d72755c420bc

部署自定义容器

不清楚要表达什么。

也可以选择与默认容器不同的容器来部署Ceph。有关这方面选项的信息,请参阅Ceph容器映像

最后查看所有服务

[root@node1 ~]# ceph orch ls
NAME                       RUNNING  REFRESHED  AGE  PLACEMENT                  IMAGE NAME                IMAGE ID
alertmanager                   1/1  7m ago     3h   count:1                    prom/alertmanager         c876f5897d7b
crash                          3/3  7m ago     3h   *                          docker.io/ceph/ceph:v15   d72755c420bc
grafana                        1/1  7m ago     3h   count:1                    ceph/ceph-grafana:latest  87a51ecf0b1c
mds.cephfs                     3/3  7m ago     2h   count:3 node1,node2,node3  docker.io/ceph/ceph:v15   d72755c420bc
mgr                            2/2  7m ago     3h   count:2                    docker.io/ceph/ceph:v15   d72755c420bc
mon                            3/5  7m ago     3h   count:5                    docker.io/ceph/ceph:v15   d72755c420bc
nfs.foo                        3/3  7m ago     38m  count:3 node1,node2,node3  docker.io/ceph/ceph:v15   d72755c420bc
node-exporter                  3/3  7m ago     3h   *                          prom/node-exporter        0e0218889c33
osd.all-available-devices      0/3  -          -    *                          <unknown>                 <unknown>
prometheus                     1/1  7m ago     3h   count:1                    prom/prometheus:latest    396dc3b4e717
rgw.myorg.cn-east-1            3/3  7m ago     2h   count:3 node1,node2,node3  docker.io/ceph/ceph:v15   d72755c420bc
[root@node1 ~]#

查看集群健康状态

[root@node1 ~]# ceph -s
  cluster:
    id:     55e5485a-b292-11ea-8087-000c2993d00b
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum node1,node2,node3 (age 44m)
    mgr: node1.dzrkgj(active, since 44m), standbys: node2.dygsih
    mds: cephfs:1 {0=cephfs.node2.djktgx=up:active} 2 up:standby
    osd: 3 osds: 3 up (since 2h), 3 in (since 2h)
    rgw: 3 daemons active (myorg.cn-east-1.node1.yjurkc, myorg.cn-east-1.node2.yiahpt, myorg.cn-east-1.node3.delvkm)

  task status:
    scrub status:
        mds.cephfs.node2.djktgx: idle

  data:
    pools:   8 pools, 249 pgs
    objects: 258 objects, 8.4 KiB
    usage:   3.2 GiB used, 57 GiB / 60 GiB avail
    pgs:     249 active+clean

  io:
    client:   76 KiB/s rd, 0 B/s wr, 75 op/s rd, 50 op/s wr

查看osd状态

[root@node1 ~]# ceph osd tree
ID  CLASS  WEIGHT   TYPE NAME       STATUS  REWEIGHT  PRI-AFF
-1         0.05846  root default
-3         0.01949      host node1
 0    hdd  0.01949          osd.0       up   1.00000  1.00000
-5         0.01949      host node2
 1    hdd  0.01949          osd.1       up   1.00000  1.00000
-7         0.01949      host node3
 2    hdd  0.01949          osd.2       up   1.00000  1.00000

查看ceph dashboard

ceph集群部署架构图 cephadm部署ceph集群_docker_04

查看prometheus监控信息

ceph grafana登录

容器使用主机网络,查看grafana监听端口为3000

#grafana监听端口
[root@node1 ~]# ss -ntlp | grep grafana
LISTEN    0         128                      *:3000                   *:*        users:(("grafana-server",pid=1646,fd=9))

#altermanager告警模块监听端口
[root@node1 ~]# ss -ntlp | grep alert
LISTEN    0         128                      *:9093                   *:*        users:(("alertmanager",pid=1797,fd=8))
LISTEN    0         128                      *:9094                   *:*        users:(("alertmanager",pid=1797,fd=3))

#node_exporter监听端口
[root@node1 ~]# ss -ntlp | grep node
LISTEN    0         128                      *:9100                   *:*        users:(("node_exporter",pid=1702,fd=3))

#prometheus监听端口
[root@node1 ~]# ss -ntlp | grep prometh
LISTEN    0         128                      *:9095                   *:*        users:(("prometheus",pid=1745,fd=14))

访问grafana:https://192.168.93.70:3000

点击左上角选择某个dashboard,默认支持以下模块监控数据展示

ceph集群部署架构图 cephadm部署ceph集群_docker_05


查看ceph集群监控信息

ceph集群部署架构图 cephadm部署ceph集群_ceph集群部署架构图_06


查看存储池监控

ceph集群部署架构图 cephadm部署ceph集群_ceph集群部署架构图_07


存储池详情

ceph集群部署架构图 cephadm部署ceph集群_5e_08

prometheus配置的targets

ceph集群部署架构图 cephadm部署ceph集群_5e_09