为什么我的新ceph群集状态从不显示“ HEALTH_OK”?

时间:2018-09-17 07:04:26

标签: ceph

我正在使用docker和映像'ceph / daemon:v3.1.0-stable-3.1-luminous-centos-7'建立一个ceph集群。但是,在设置群集后,ceph status永远不会显示HEALTH_OK。这是我的集群的信息。它有足够的磁盘空间,并且网络还可以。

我的问题是:

  1. 为什么ceph不复制“尺寸过小的”页面?
  2. 如何解决?

非常感谢您!

➜  ~ 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

3 个答案:

答案 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个副本。

能否请您解释为什么我的解决方案是灾难食谱?您的声誉很好,我不确定您是如何获得它们的。也许只是回复建议而不是解决方案。