Ceph入门到精通- stderr raise RuntimeError(‘Unable to create a new OSD id‘)

/bin/podman: stderr raise RuntimeError('Unable to create a new OSD id')

podman ps |grep osd.0

podman stop osd.0 容器id

重新添加osd.0

   集群目录
   cd /var/lib/ceph/e8cde810-e4b8-11ed-9ba8-98039b976596/
 1109  ls
 1110  rm -rf osd.0
 1111  ceph orch daemon add osd --method raw ceph02:/dev/sdb
 1112  ls
 1113  dd if=/dev/zero of=/dev/sdb count=2048 bs=1M
 1114  ceph orch daemon add osd --method raw ceph02:/dev/sdb

/bin/podman: stderr RuntimeError: Unable to create a new OSD id

1932490 – [cephadm] 5.0 - New OSD device to the cluster is not getting the OSD IDs - Unable to allocate new IDs to the new OSD device

[root@ceph02 e8cde810-e4b8-11ed-9ba8-98039b976596]# ceph orch daemon add osd --method raw ceph02:/dev/sdb
Error EINVAL: Traceback (most recent call last):
  File "/usr/share/ceph/mgr/mgr_module.py", line 1446, in _handle_command
    return self.handle_command(inbuf, cmd)
  File "/usr/share/ceph/mgr/orchestrator/_interface.py", line 171, in handle_command
    return dispatch[cmd['prefix']].call(self, cmd, inbuf)
  File "/usr/share/ceph/mgr/mgr_module.py", line 414, in call
    return self.func(mgr, **kwargs)
  File "/usr/share/ceph/mgr/orchestrator/_interface.py", line 107, in <lambda>
    wrapper_copy = lambda *l_args, **l_kwargs: wrapper(*l_args, **l_kwargs)  # noqa: E731
  File "/usr/share/ceph/mgr/orchestrator/_interface.py", line 96, in wrapper
    return func(*args, **kwargs)
  File "/usr/share/ceph/mgr/orchestrator/module.py", line 841, in _daemon_add_osd
    raise_if_exception(completion)
  File "/usr/share/ceph/mgr/orchestrator/_interface.py", line 228, in raise_if_exception
    raise e
RuntimeError: cephadm exited with an error code: 1, stderr:Inferring config /var/lib/ceph/e8cde810-e4b8-11ed-9ba8-9
8039b976596/mon.ceph02/config
Non-zero exit code 1 from /bin/podman run --rm --ipc=host --stop-signal=SIGTERM --net=host --entrypoint /usr/sbin/c
eph-volume --privileged --group-add=disk --init -e CONTAINER_IMAGE=quay.io/ceph/ceph@sha256:0109babaa3be5e63fa5cd9d
d9a6bbc13e9651278b037d22261a25a70abb27a94 -e NODE_NAME=ceph02 -e CEPH_USE_RANDOM_NONCE=1 -e CEPH_VOLUME_OSDSPEC_AFF
INITY=None -e CEPH_VOLUME_SKIP_RESTORECON=yes -e CEPH_VOLUME_DEBUG=1 -v /var/run/ceph/e8cde810-e4b8-11ed-9ba8-98039
b976596:/var/run/ceph:z -v /var/log/ceph/e8cde810-e4b8-11ed-9ba8-98039b976596:/var/log/ceph:z -v /var/lib/ceph/e8cd
e810-e4b8-11ed-9ba8-98039b976596/crash:/var/lib/ceph/crash:z -v /dev:/dev -v /run/udev:/run/udev -v /sys:/sys -v /r
un/lvm:/run/lvm -v /run/lock/lvm:/run/lock/lvm -v /:/rootfs -v /tmp/ceph-tmp879n_fbx:/etc/ceph/ceph.conf:z -v /tmp/
ceph-tmp16g0ry_3:/var/lib/ceph/bootstrap-osd/ceph.keyring:z quay.io/ceph/ceph@sha256:0109babaa3be5e63fa5cd9dd9a6bbc
13e9651278b037d22261a25a70abb27a94 raw prepare --bluestore --data /dev/sdb
/bin/podman: stderr Running command: /usr/bin/ceph-authtool --gen-print-key
/bin/podman: stderr Running command: /usr/bin/ceph --cluster ceph --name client.bootstrap-osd --keyring /var/lib/ce
ph/bootstrap-osd/ceph.keyring -i - osd new 1ef9800e-ff66-4bb1-bc11-a33dff9c0a59
/bin/podman: stderr  stderr: Error EEXIST: entity osd.0 exists but key does not match
/bin/podman: stderr Traceback (most recent call last):
/bin/podman: stderr   File "/usr/sbin/ceph-volume", line 11, in <module>
/bin/podman: stderr     load_entry_point('ceph-volume==1.0.0', 'console_scripts', 'ceph-volume')()
/bin/podman: stderr   File "/usr/lib/python3.6/site-packages/ceph_volume/main.py", line 41, in __init__
/bin/podman: stderr     self.main(self.argv)
/bin/podman: stderr   File "/usr/lib/python3.6/site-packages/ceph_volume/decorators.py", line 59, in newfunc
/bin/podman: stderr     return f(*a, **kw)
/bin/podman: stderr   File "/usr/lib/python3.6/site-packages/ceph_volume/main.py", line 153, in main
/bin/podman: stderr     terminal.dispatch(self.mapper, subcommand_args)
/bin/podman: stderr   File "/usr/lib/python3.6/site-packages/ceph_volume/terminal.py", line 194, in dispatch
/bin/podman: stderr     instance.main()
/bin/podman: stderr   File "/usr/lib/python3.6/site-packages/ceph_volume/devices/raw/main.py", line 32, in main
/bin/podman: stderr     terminal.dispatch(self.mapper, self.argv)
/bin/podman: stderr   File "/usr/lib/python3.6/site-packages/ceph_volume/terminal.py", line 194, in dispatch
/bin/podman: stderr     instance.main()
/bin/podman: stderr   File "/usr/lib/python3.6/site-packages/ceph_volume/devices/raw/prepare.py", line 169, in main
/bin/podman: stderr     self.safe_prepare(self.args)
/bin/podman: stderr   File "/usr/lib/python3.6/site-packages/ceph_volume/devices/raw/prepare.py", line 91, in safe_
prepare
/bin/podman: stderr     self.prepare()
/bin/podman: stderr   File "/usr/lib/python3.6/site-packages/ceph_volume/decorators.py", line 16, in is_root
/bin/podman: stderr     return func(*a, **kw)
/bin/podman: stderr   File "/usr/lib/python3.6/site-packages/ceph_volume/devices/raw/prepare.py", line 125, in prep
are
/bin/podman: stderr     osd_fsid, json.dumps(secrets))
/bin/podman: stderr   File "/usr/lib/python3.6/site-packages/ceph_volume/util/prepare.py", line 176, in create_id
/bin/podman: stderr     raise RuntimeError('Unable to create a new OSD id')
/bin/podman: stderr RuntimeError: Unable to create a new OSD id
Traceback (most recent call last):
  File "/var/lib/ceph/e8cde810-e4b8-11ed-9ba8-98039b976596/cephadm.0317efb4d3a353d5a77e82f4a4f52582f06970d6aba66473
daecf92e26ee3a51", line 9309, in <module>
    main()
  File "/var/lib/ceph/e8cde810-e4b8-11ed-9ba8-98039b976596/cephadm.0317efb4d3a353d5a77e82f4a4f52582f06970d6aba66473
daecf92e26ee3a51", line 9297, in main
    r = ctx.func(ctx)
  File "/var/lib/ceph/e8cde810-e4b8-11ed-9ba8-98039b976596/cephadm.0317efb4d3a353d5a77e82f4a4f52582f06970d6aba66473
daecf92e26ee3a51", line 1941, in _infer_config
    return func(ctx)
  File "/var/lib/ceph/e8cde810-e4b8-11ed-9ba8-98039b976596/cephadm.0317efb4d3a353d5a77e82f4a4f52582f06970d6aba66473
daecf92e26ee3a51", line 1872, in _infer_fsid
    return func(ctx)
  File "/var/lib/ceph/e8cde810-e4b8-11ed-9ba8-98039b976596/cephadm.0317efb4d3a353d5a77e82f4a4f52582f06970d6aba66473
daecf92e26ee3a51", line 1969, in _infer_image
    return func(ctx)
  File "/var/lib/ceph/e8cde810-e4b8-11ed-9ba8-98039b976596/cephadm.0317efb4d3a353d5a77e82f4a4f52582f06970d6aba66473
daecf92e26ee3a51", line 1859, in _validate_fsid
    return func(ctx)
  File "/var/lib/ceph/e8cde810-e4b8-11ed-9ba8-98039b976596/cephadm.0317efb4d3a353d5a77e82f4a4f52582f06970d6aba66473
daecf92e26ee3a51", line 5366, in command_ceph_volume
    out, err, code = call_throws(ctx, c.run_cmd())
  File "/var/lib/ceph/e8cde810-e4b8-11ed-9ba8-98039b976596/cephadm.0317efb4d3a353d5a77e82f4a4f52582f06970d6aba66473
daecf92e26ee3a51", line 1661, in call_throws
    raise RuntimeError('Failed command: %s' % ' '.join(command))
RuntimeError: Failed command: /bin/podman run --rm --ipc=host --stop-signal=SIGTERM --net=host --entrypoint /usr/sb
in/ceph-volume --privileged --group-add=disk --init -e CONTAINER_IMAGE=quay.io/ceph/ceph@sha256:0109babaa3be5e63fa5
cd9dd9a6bbc13e9651278b037d22261a25a70abb27a94 -e NODE_NAME=ceph02 -e CEPH_USE_RANDOM_NONCE=1 -e CEPH_VOLUME_OSDSPEC
_AFFINITY=None -e CEPH_VOLUME_SKIP_RESTORECON=yes -e CEPH_VOLUME_DEBUG=1 -v /var/run/ceph/e8cde810-e4b8-11ed-9ba8-9
8039b976596:/var/run/ceph:z -v /var/log/ceph/e8cde810-e4b8-11ed-9ba8-98039b976596:/var/log/ceph:z -v /var/lib/ceph/
e8cde810-e4b8-11ed-9ba8-98039b976596/crash:/var/lib/ceph/crash:z -v /dev:/dev -v /run/udev:/run/udev -v /sys:/sys -
v /run/lvm:/run/lvm -v /run/lock/lvm:/run/lock/lvm -v /:/rootfs -v /tmp/ceph-tmp879n_fbx:/etc/ceph/ceph.conf:z -v /
tmp/ceph-tmp16g0ry_3:/var/lib/ceph/bootstrap-osd/ceph.keyring:z quay.io/ceph/ceph@sha256:0109babaa3be5e63fa5cd9dd9a
6bbc13e9651278b037d22261a25a70abb27a94 raw prepare --bluestore --data /dev/sdb

多节点同时创建osd踩坑纪要 | 奋斗的松鼠 - blog (strugglesquirrel.com)

# 移除osd.0 缺少
ceph auth list |grep osd.0
ceph auth del osd.0
​
# 重新添加
ceph orch daemon add osd --method raw ceph02:/dev/sdb
​
# 完整删除osd命令
​
删除 OSD(手动)
当你想减少集群的大小或更换硬件时,你可以在运行时删除一个 OSD。对于 Ceph,一个 OSD 通常是ceph-osd 主机中一个存储驱动器的一个 Ceph 守护进程。如果您的主机有多个存储驱动器,您可能需要ceph-osd为每个驱动器删除一个守护进程。通常,最好检查集群的容量以查看是否已达到其容量的上限。确保当您删除 OSD 时,您的集群未达到其比率。near full
​
警告
​
删除 OSD 时不要让您的集群到达它的位置。删除 OSD 可能会导致集群达到或超过其.full ratiofull ratio
​
将 OSD 从 CLUSTER 中取出
在您删除 OSD 之前,它通常是up和in。您需要将它从集群中取出,以便 Ceph 可以开始重新平衡并将其数据复制到其他 OSD。:
​
ceph osd out {osd-num}
观察数据迁移
一旦你拿走了out集群的 OSD,Ceph 就会开始重新平衡集群,方法是将归置组从你移除的 OSD 中迁移出来。你可以用ceph工具观察这个过程。:
​
ceph -w
您应该看到归置组状态从 变为active+clean, 最后是迁移完成时。(Control-c 退出。)active, some degraded objectsactive+clean
​
笔记
​
有时,通常在主机很少的“小型”集群中(例如小型测试集群),获取outOSD 的事实可能会产生 CRUSH 极端情况,其中一些 PG 仍然停留在该 active+remapped状态。如果您遇到这种情况,您应该将 OSD 标记in为:
​
ceph osd in {osd-num}
回到初始状态,然后不标记out OSD,而是将其权重设置为 0:
​
ceph osd crush reweight osd.{osd-num} 0
之后,您可以观察应该结束的数据迁移。out标记 OSD 和将其重新加权为 0 之间的区别在于,在第一种情况下,包含 OSD 的桶的权重不会改变,而在第二种情况下,桶的权重会更新(并减少 OSD 权重)。在“小型”集群的情况下,有时可能会喜欢 reweight 命令。
​
停止 OSD
从集群中取出 OSD 后,它可能仍在运行。也就是说,OSD 可能是up和out。在从配置中删除 OSD 之前,您必须停止它:
​
ssh {osd-host}
sudo systemctl stop ceph-osd@{osd-num}
一旦你停止你的 OSD,它就是down。
​
移除 OSD
此过程从集群映射中删除 OSD,删除其身份验证密钥,从 OSD 映射中删除 OSD,并从文件中删除 OSD ceph.conf。如果您的主机有多个驱动器,您可能需要通过重复此过程为每个驱动器删除一个 OSD。
​
让集群先忘记 OSD。此步骤从 CRUSH 映射中删除 OSD,删除其身份验证密钥。它也从 OSD 地图中删除。请注意Luminous 中引入了purge 子命令,对于旧版本,请参见以下内容:
​
ceph osd purge {id} --yes-i-really-mean-it
导航到您保存集群文件主副本的主机 ceph.conf:
​
ssh {admin-host}
cd /etc/ceph
vim ceph.conf
从文件中删除 OSD 条目ceph.conf(如果存在):
​
[osd.1]
        host = {hostname}
从保存集群文件主副本的主机ceph.conf ,将更新后的ceph.conf文件复制到/etc/ceph集群中其他主机的目录中。
​
如果你的 Ceph 集群早于 Luminous,而不是使用,你需要手动执行这一步:ceph osd purge
​
从 CRUSH 图中删除 OSD,使其不再接收数据。您还可以反编译 CRUSH 图,从设备列表中删除 OSD,将设备作为主机桶中的一项删除或删除主机桶(如果它在 CRUSH 图中并且您打算删除主机),重新编译图并设置它。有关详细信息,请参阅删除 OSD :
​
ceph osd crush remove {name}
删除 OSD 身份验证密钥:
​
ceph auth del osd.{osd-num}
路径中 cephfor的值是. 如果您的集群名称不同于,请改用您的集群名称。ceph-{osd-num}$cluster-$idceph
​
删除 OSD:
​
ceph osd rm {osd-num}
例如:
​
ceph osd rm 1

Adding/Removing OSDs — Ceph Documentation

猜你喜欢

转载自blog.csdn.net/wxb880114/article/details/130500346