Cephadm のアラート CEPHADM_FAILED_DAEMON を消す方法です。

トラブルなどで OSD を入れ替えた際、以下のようなアラートが表示されることがあります。

$ ceph health detail
HEALTH_WARN 2 failed cephadm daemon(s)
[WRN] CEPHADM_FAILED_DAEMON: 2 failed cephadm daemon(s)
    daemon osd.2 on ceph1 is in error state
    daemon osd.3 on ceph1 is in error state

cephadm ls コマンドでホスト上の Ceph デーモンの状態を見ることができます。 今回の例では、正常な OSD.7 は "state": "running" となっていますが、かつて落ちてしまって削除した OSD.3 は "state": "error" となっています。 削除したはずの OSD のデーモンが Cephadm に残ってしまっており、アラートが上がっているようです。

$ cephadm ls # 一部抜粋
[
    (snip)
    {
        "style": "cephadm:v1",
        "name": "osd.3",
        "fsid": "dc32e976-d0ea-11ec-bac3-dca6329a21a7",
        "systemd_unit": "ceph-dc32e976-d0ea-11ec-bac3-dca6329a21a7@osd.3",
        "enabled": true,
        "state": "error",
        "service_name": "osd.all-available-devices",
        "ports": [],
        "ip": null,
        "deployed_by": [
            "quay.io/ceph/ceph@sha256:00965b7e88c0cef116e6a47107051a4bfe952139e7b94c6cefd6607cf38a3f0f",
            "quay.io/ceph/ceph@sha256:ee01a411e838382524eb172059f544486f6fd257818a7798cc120649bd8cf3f6"
        ],
        "rank": null,
        "rank_generation": null,
        "memory_request": null,
        "memory_limit": null,
        "container_id": null,
        "container_image_name": "quay.io/ceph/ceph@sha256:00965b7e88c0cef116e6a47107051a4bfe952139e7b94c6cefd6607cf38a3f0f",
        "container_image_id": null,
        "container_image_digests": null,
        "version": null,
        "started": null,
        "created": "2022-05-11T12:12:12.892121Z",
        "deployed": "2022-05-11T12:12:04.322157Z",
        "configured": "2022-05-11T12:12:12.892121Z"
    },
    {
        "style": "cephadm:v1",
        "name": "osd.7",
        "fsid": "dc32e976-d0ea-11ec-bac3-dca6329a21a7",
        "systemd_unit": "ceph-dc32e976-d0ea-11ec-bac3-dca6329a21a7@osd.7",
        "enabled": true,
        "state": "running",
        "service_name": "osd.all-available-devices",
        "ports": [],
        "ip": null,
        "deployed_by": [
            "quay.io/ceph/ceph@sha256:ee01a411e838382524eb172059f544486f6fd257818a7798cc120649bd8cf3f6",
            "quay.io/ceph/ceph@sha256:00965b7e88c0cef116e6a47107051a4bfe952139e7b94c6cefd6607cf38a3f0f"
        ],
        "rank": null,
        "rank_generation": null,
        "memory_request": null,
        "memory_limit": null,
        "container_id": "9b7c4c79ff59d4c20df98547031b081e41acf97a35f8765c6ff6ff30299cdc34",
        "container_image_name": "quay.io/ceph/ceph@sha256:00965b7e88c0cef116e6a47107051a4bfe952139e7b94c6cefd6607cf38a3f0f",
        "container_image_id": "5ba92db8e60dde0c145fb093cb01b83e49c9caabf31f379390e53108f3aa90c5",
        "container_image_digests": [
            "quay.io/ceph/ceph@sha256:ee01a411e838382524eb172059f544486f6fd257818a7798cc120649bd8cf3f6",
            "quay.io/ceph/ceph@sha256:00965b7e88c0cef116e6a47107051a4bfe952139e7b94c6cefd6607cf38a3f0f"
        ],
        "memory_usage": 102613647,
        "version": "16.2.7",
        "started": "2022-05-16T04:03:15.766984Z",
        "created": "2022-05-15T20:32:59.134344Z",
        "deployed": "2022-05-15T20:32:51.824377Z",
        "configured": "2022-05-15T20:32:59.134344Z"
    }
]

このような状況であがったアラートは、Cephadm 上に残った OSD デーモンの情報を削除することで消えます。 引数には対象の FSID と OSD_NUM を設定してください。

$ cephadm rm-daemon --fsid FSID --name osd.OSD_NUM --force

ちなみに、--force オプションが無いと実行できません。

$ cephadm rm-daemon --fsid $FSID --name osd.$OSD_NUM
ERROR: must pass --force to proceed: this command may destroy precious data!

OSD デーモンを削除したら ceph health detail でアラートが解消されているか確認します。

$ ceph health detail
HEALTH_OK