【问题标题】:Why my new Ceph cluster status never shows 'HEALTH_OK'?为什么我的新 Ceph 集群状态从不显示“HEALTH_OK”?
【发布时间】:2018-09-17 07:04:25
【问题描述】:

我正在使用 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

【问题讨论】:

  • 能否也显示ceph osd df 的输出?

标签: ceph


【解决方案1】:

@itsafire 这不是解决方案。他要求解决方案而不是要求硬件推荐。

我正在运行 8 个节点和 5 个节点的多个 CEPH 集群。我总是使用 2 个副本和多个粉碎图(用于 SSD、SAS 和 72k 驱动器)

如果您使用资源有限的小型集群,为什么需要 3 个副本。

您能解释一下为什么我的解决方案是灾难的秘诀吗?你有很好的声誉,我不知道你是怎么得到它们的。也许只是回复建议而不是解决方案。

【讨论】:

  • 如果您只有 2 个副本并且一个驱动器出现故障,那么您的宝贵数据只剩下一个驱动器。如果该驱动器在恢复过程中出现故障,那么您就完蛋了。进行恢复时驱动器故障是导致数据丢失的常见事件。
【解决方案2】:

创建一个大小为 2 和最小大小为 1 的新池。
对于 pg-num 使用 Ceph PG 计算器https://ceph.com/pgcalc/

【讨论】:

  • 灾难的秘诀。
  • 您能解释一下为什么我的解决方案是灾难的秘诀吗?
  • 因为如果一个驱动器发生故障并且您只剩下一份数据副本,那么随后发生故障的驱动器可能会带来失去工作的成本。 CERN 甚至提出 3 个副本是不够的,而是使用 4 个副本。
  • 如果和如果不是解决方案。如果三个驱动器发生故障,那么您也将失去工作,因为您的工作仅在 3 个副本上进行中继。我的好处是我不会因为拥有 3 个数据中心而失业。 CEPH 正在为客户的存储和 NAS 运行,我们用于 DR 的备份本地和远程位置。我不是在与您争论 2 对 3 副本。您的评论“灾难食谱”是不可接受的。 CEPH 使用默认 2。此外,现在每天有多少百分比的服务器仍在使用 RAID 5?不要只考虑如果、如果和如果。
【解决方案3】:

您似乎创建了一个具有不同 osd 配置和大小的三节点集群。标准粉碎规则告诉 ceph 在不同的主机上拥有 3 个 PG 副本。如果没有足够的空间将 PG 分散到三个主机上,那么您的集群将永远不会健康。

从一组大小相同的主机(RAM、CPU、OSD)开始总是一个好主意。

关于集群大小为 2 vs 3 的讨论更新

不要使用 2 个副本。选择 3。Ceph 开始时默认大小为 2。但在 Ceph 0.82(Firefly 版本)中改为 3。

为什么?因为如果一个驱动器发生故障,您将只剩下一个包含数据的驱动器。如果此驱动器在恢复运行时也出现故障,那么您的数据将永远消失。

this thread on the ceph user mailing list

无论集群有多大或多小,2 个副本都是不安全的。和 磁盘变大恢复时间会增加。在那个窗口你不 想要在单个副本上运行。

【讨论】:

    猜你喜欢
    • 2020-11-12
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    相关资源
    最近更新 更多