如何解决单节点群集minikube上的菜鸟ceph警告1 pg尺寸过小的健康状况
我正在将rook-ceph部署到minikube集群中。一切似乎都正常。我将3个未格式化的磁盘添加到了vm及其连接中。我遇到的问题是,当我以ceph状态运行时,收到一条健康提示,告诉我“尺寸不足1 pg”。我该如何解决?
文档(https://docs.ceph.com/docs/mimic/rados/troubleshooting/troubleshooting-pg/)指出“ 如果您试图在单个节点上创建集群,则必须将osd美式choiceleaf类型设置的默认值更改为1(表示主机或节点)创建监视器和OSD之前,请在Ceph配置文件中将其设置为0(表示osd)。“我不知道在哪里进行此配置,但是如果有其他方法可以解决此问题,请知道让我知道。谢谢!
解决方法
正如您在问题中提到的,您应该将粉碎失败域类型更改为OSD,这意味着它将在OSD而非主机之间复制数据。默认情况下,它是主机,而当您只有一个主机时,它就没有其他主机可以复制您的数据,因此您的pg总是大小不足。
在创建监视器和OSD之前,应在osd crush chooseleaf type = 0
中设置ceph.conf
。
这将在OSD之间而不是主机之间复制数据。
,我在使用具有多个 OSD 的单个数据承载主机的 rook (v1.5.7) 安装 ceph 时遇到了这个问题。
安装附带默认的 CRUSH rule replicated_rule
,其中 host
作为默认故障域:
$ ceph osd crush rule dump replicated_rule
{
"rule_id": 0,"rule_name": "replicated_rule","ruleset": 0,"type": 1,"min_size": 1,"max_size": 10,"steps": [
{
"op": "take","item": -1,"item_name": "default"
},{
"op": "chooseleaf_firstn","num": 0,"type": "host"
},{
"op": "emit"
}
]
}
我必须找出与 pg 1 关联的池名称“过小”,幸运的是在默认的 rook-ceph 安装中,只有一个:
$ ceph osd pool ls
device_health_metrics
$ ceph pg ls-by-pool device_health_metrics
PG OBJECTS DEGRADED ... STATE
1.0 0 0 ... active+undersized+remapped
并确认 pg 使用的是默认规则:
$ ceph osd pool get device_health_metrics crush_rule
crush_rule: replicated_rule
我没有修改默认的 CRUSH 规则,而是选择了 create a new replicated rule,但这次指定了 osd
(又名 device
)type({{3 }}),也假设默认的 CRUSH 根为 default
:
# osd crush rule create-replicated <name> <root> <type> [<class>]
$ ceph osd crush rule create-replicated replicated_rule_osd default osd
$ ceph osd crush rule dump replicated_rule_osd
{
"rule_id": 1,"rule_name": "replicated_rule_osd","ruleset": 1,{
"op": "choose_firstn","type": "osd"
},{
"op": "emit"
}
]
}
然后将新规则分配给现有池:
$ ceph osd pool set device_health_metrics crush_rule replicated_rule_osd
set pool 1 crush_rule to replicated_rule_osd
$ ceph osd pool get device_health_metrics crush_rule
crush_rule: replicated_rule_osd
最终确认 pg 状态:
$ ceph pg ls-by-pool device_health_metrics
PG OBJECTS DEGRADED ... STATE
1.0 0 0 ... active+clean
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。