[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命令

无特殊说明,以下所有操作在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
在这里插入图片描述

查看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集群监控信息
在这里插入图片描述
查看存储池监控
在这里插入图片描述
存储池详情
在这里插入图片描述

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
img

ibG9nLmNzZG4ubmV0L25ldHdvcmtlbg==,size_16,color_FFFFFF,t_70)

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-IoibTJFq-1712825749850)]
[外链图片转存中…(img-SefveyhM-1712825749850)]
[外链图片转存中…(img-k5rQY3ty-1712825749851)]
[外链图片转存中…(img-jl8dMjdo-1712825749851)]
[外链图片转存中…(img-36Uz7nCA-1712825749851)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
[外链图片转存中…(img-eJQ3UxeN-1712825749852)]

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐