我正在使用docker和映像'ceph / daemon:v3.1.0-stable-3.1-luminous-centos-7'建立一个ceph集群。但是,在设置群集后,ceph status
永远不会显示HEALTH_OK。这是我的集群的信息。它有足够的磁盘空间,并且网络还可以。
我的问题是:
非常感谢您!
➜ ~ ceph -s
cluster:
id: 483a61c4-d3c7-424d-b96b-311d2c6eb69b
health: HEALTH_WARN
Degraded data redundancy: 3 pgs undersized
services:
mon: 3 daemons, quorum pc-10-10-0-13,pc-10-10-0-89,pc-10-10-0-160
mgr: pc-10-10-0-89(active), standbys: pc-10-10-0-13, pc-10-10-0-160
mds: cephfs-1/1/1 up {0=pc-10-10-0-160=up:active}, 2 up:standby
osd: 5 osds: 5 up, 5 in
rbd-mirror: 3 daemons active
rgw: 3 daemons active
data:
pools: 6 pools, 68 pgs
objects: 212 objects, 5.27KiB
usage: 5.02GiB used, 12.7TiB / 12.7TiB avail
pgs: 65 active+clean
3 active+undersized
➜ ~ ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 12.73497 root default
-5 0.90959 host pc-10-10-0-13
3 hdd 0.90959 osd.3 up 1.00000 1.00000
-7 0.90959 host pc-10-10-0-160
4 hdd 0.90959 osd.4 up 1.00000 1.00000
-3 10.91579 host pc-10-10-0-89
0 hdd 3.63860 osd.0 up 1.00000 1.00000
1 hdd 3.63860 osd.1 up 1.00000 1.00000
2 hdd 3.63860 osd.2 up 1.00000 1.00000
➜ ~ ceph osd pool ls detail
pool 1 'cephfs_data' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 8 pgp_num 8 last_change 24 flags hashpspool stripe_width 0 application cephfs
pool 2 'cephfs_metadata' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 8 pgp_num 8 last_change 24 flags hashpspool stripe_width 0 application cephfs
pool 3 '.rgw.root' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 13 pgp_num 13 last_change 27 flags hashpspool stripe_width 0 application rgw
pool 4 'default.rgw.control' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 13 pgp_num 13 last_change 30 flags hashpspool stripe_width 0 application rgw
pool 5 'default.rgw.meta' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 13 pgp_num 13 last_change 32 owner 18446744073709551615 flags hashpspool stripe_width 0 application rgw
pool 6 'default.rgw.log' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 13 pgp_num 13 last_change 34 flags hashpspool stripe_width 0 application rgw
答案 0 :(得分:1)
似乎您创建了一个具有不同osd配置和大小的三节点群集。标准的暗恋规则告诉ceph在不同主机上拥有3个PG副本。如果没有足够的空间将PG分布在这三台主机上,那么您的集群将永远无法正常运行。
从一组大小相同的主机(RAM,CPU,OSD)开始总是一个好主意。
更新以讨论大小为2到3的群集
不要使用2个副本。继续。3。Ceph开始时的默认大小为2。但是在Ceph 0.82(Firefly版本)中将其更改为3。
为什么?因为如果一个驱动器发生故障,则只剩下一个包含数据的驱动器。如果在恢复运行时该驱动器也发生故障,那么您的数据就永远消失了。
请参见this thread on the ceph user mailing list
2个副本并不安全,无论群集大小如何。用 恢复时间更长的磁盘将增长。在那个窗口中 想在单个副本上运行。
答案 1 :(得分:1)
创建一个大小为2和最小大小为1的新池。
对于pg-num,请使用Ceph PG计算器https://ceph.com/pgcalc/
答案 2 :(得分:1)
@itsafire这不是解决方案。他是在寻求解决方案,而不是在寻求硬件建议。
我正在运行8个节点和5个节点的多个CEPH集群。我总是使用2个具有多个压缩映射的副本(用于SSD,SAS和72k驱动器)
如果使用资源有限的小型群集,为什么需要3个副本。
能否请您解释为什么我的解决方案是灾难食谱?您的声誉很好,我不确定您是如何获得它们的。也许只是回复建议而不是解决方案。