/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
[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