cephadm部署ceph集群_1 stray daemon(s) not managed by cephadm
不清楚要表达什么。也可以选择与默认容器不同的容器来部署Ceph。有关这方面选项的信息,请参阅Ceph容器映像。最后查看所有服务查看集群健康状态cluster:services:data:io:查看osd状态查看ceph dashboard。
[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>...]\*
例如,要在newhost1
IP地址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运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
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)]
更多推荐
所有评论(0)