事象
起動しようとするとこうなる。
root@pve4:~# systemctl start ceph-osd@3.service
Job for ceph-osd@3.service failed.
See "systemctl status ceph-osd@3.service" and "journalctl -xe" for details.
ステータス見るとこんな状態。
root@pve4:~# systemctl status ceph-osd@3.service
● ceph-osd@3.service - Ceph object storage daemon osd.3
Loaded: loaded (/lib/systemd/system/ceph-osd@.service; enabled-runtime; vendor preset: enabled)
Drop-In: /usr/lib/systemd/system/ceph-osd@.service.d
└─ceph-after-pve-cluster.conf
Active: inactive (dead) since Sun 2023-12-17 00:08:14 JST; 11min ago
Process: 2774783 ExecStartPre=/usr/libexec/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id 3 (code=exited, status=0/SUCCESS)
Process: 2774787 ExecStart=/usr/bin/ceph-osd -f --cluster ${CLUSTER} --id 3 --setuser ceph --setgroup ceph (code=exited, status=0/SUCCESS)
Main PID: 2774787 (code=exited, status=0/SUCCESS)
CPU: 2.953s
Dec 17 00:11:26 pve4 systemd[1]: Failed to start Ceph object storage daemon osd.3.
Dec 17 00:11:38 pve4 systemd[1]: ceph-osd@3.service: Start request repeated too quickly.
Dec 17 00:11:38 pve4 systemd[1]: ceph-osd@3.service: Failed with result 'start-limit-hit'.
Dec 17 00:11:38 pve4 systemd[1]: Failed to start Ceph object storage daemon osd.3.
Dec 17 00:13:05 pve4 systemd[1]: ceph-osd@3.service: Start request repeated too quickly.
Dec 17 00:13:05 pve4 systemd[1]: ceph-osd@3.service: Failed with result 'start-limit-hit'.
Dec 17 00:13:05 pve4 systemd[1]: Failed to start Ceph object storage daemon osd.3.
Dec 17 00:16:18 pve4 systemd[1]: ceph-osd@3.service: Start request repeated too quickly.
Dec 17 00:16:18 pve4 systemd[1]: ceph-osd@3.service: Failed with result 'start-limit-hit'.
Dec 17 00:16:18 pve4 systemd[1]: Failed to start Ceph object storage daemon osd.3.
対応
Cephではないがここで似たような話があり、systemctl reset-failed servicename.service
で解決できるかも?
root@pve4:~# systemctl reset-failed ceph-osd@3.service
root@pve4:~#
root@pve4:~# systemctl start ceph-osd@3.service
root@pve4:~#
root@pve4:~# systemctl status ceph-osd@3.service
● ceph-osd@3.service - Ceph object storage daemon osd.3
Loaded: loaded (/lib/systemd/system/ceph-osd@.service; enabled-runtime; vendor preset: enabled)
Drop-In: /usr/lib/systemd/system/ceph-osd@.service.d
└─ceph-after-pve-cluster.conf
Active: active (running) since Sun 2023-12-17 00:19:23 JST; 2s ago
Process: 2784267 ExecStartPre=/usr/libexec/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id 3 (code=exited, status=0/SUCCESS)
Main PID: 2784271 (ceph-osd)
Tasks: 29
Memory: 18.0M
CPU: 191ms
CGroup: /system.slice/system-ceph\x2dosd.slice/ceph-osd@3.service
└─2784271 /usr/bin/ceph-osd -f --cluster ceph --id 3 --setuser ceph --setgroup ceph
Dec 17 00:19:23 pve4 systemd[1]: Starting Ceph object storage daemon osd.3...
Dec 17 00:19:23 pve4 systemd[1]: Started Ceph object storage daemon osd.3.
起動できました!🙌
ここでも少し話題になっている。
頻繁に再起動を抑制する仕組みにしているっぽい。。
https://forum.proxmox.com/threads/improvement-request-ceph-osd-start-restart-does-not-work-after-an-osd-goes-down.134139/
reset-failedについてAIの解説
systemctl
は Linux システムにおける Systemd init システムとサービスマネージャーのためのコマンドラインユーティリティです。Systemd は現代の多くの Linux ディストリビューションで初期システムおよびサービスを管理するための標準的な方式となっています。
systemctl reset-failed
コマンドは、ステータスが「failed」(失敗)になっているすべてのユニットをリセットするために用いられます。ユニットとは、サービス、ソケット、デバイス、マウントポイントなど、Systemd が管理するリソースのことです。
ここで言う「リセット」とは、失敗したユニットのステータスをクリアし、それらのユニットに関連するエラー情報を Systemd のジャーナル(ログ)から除去することを指します。これを行うことで、システムの起動時に失敗したユニットによって引き起こされる問題を解消することができ、また、それによって Systemd はそのユニットを新たな起動試行で「クリーン」な状態で始めることができるようになります。
reset-failed
コマンドは以下のように使用します:
sudo systemctl reset-failed
また、特定のユニットに対してのみこの操作を行いたい場合には、そのユニット名をコマンドに付加します:
sudo systemctl reset-failed [unit]
ここで [unit]
はリセットする対象のユニット名、例えば nginx.service
や mysqld.service
などと置き換えます。
このコマンドは、失敗したサービスを多数含む大規模なシステムや、問題のトラブルシューティング後に状態をクリアしたいときに特に便利です。また、失敗したユニットによって「clogged」(詰まった)状態のシステムを整理整頓し、管理をしやすくする際にも利用されます。