Having a super weird issue with Ceph (squid, 19.2.4) today. The OSDs are flapping (ie not talking to each other) and I have no idea why.
I changed the PCIe network card in each node of my small 3 node Proxmox cluster to be a 10GbE network card today, which is probably what triggered this.
Each node is a HP Microserver, with 4x 3.5" drives and 3 network interfaces:
The super bizarre thing is the OSDs seem to be trying to do health checks against the public IP addresses of the other OSDs. They're not supposed to be. There's literally a cluster network defined for them, which is working, and each of the OSDs is binding to it. So why are they trying to ping/healthcheck the address on the public network?
Anyway, my ceph configuration:
Meanwhile, the logs of the various OSDs is showing heartbeat_check failures. For example:
This is making no sense at all to me. Note that I've updated the packages today (no-subscription repo), and rebooted many times after changing configuration settings, but nothing seems to get the OSDs to use the correct network for the heartbeat.
Stuff I've tried includes overrides of the cluster_addr for each of the OSDs (as per the docs) in the above ceph.conf. That didn't do anything, so I removed those entries).
Anyone have ideas?
I changed the PCIe network card in each node of my small 3 node Proxmox cluster to be a 10GbE network card today, which is probably what triggered this.
Each node is a HP Microserver, with 4x 3.5" drives and 3 network interfaces:
- 1GbE (public network) using IP address range 10.1.1.x/16
- 1GbE (corosync network) using IP address range 10.200.1.x/24
- 10GbE (storage network) using IP address range 10.199.10.x/24
The super bizarre thing is the OSDs seem to be trying to do health checks against the public IP addresses of the other OSDs. They're not supposed to be. There's literally a cluster network defined for them, which is working, and each of the OSDs is binding to it. So why are they trying to ping/healthcheck the address on the public network?
Anyway, my ceph configuration:
Code:
# cat /etc/pve/ceph.conf
[global]
auth_client_required = cephx
auth_cluster_required = cephx
auth_service_required = cephx
fsid = 05ba3e61-6d82-4207-a683-15f6521ca672
mon_allow_pool_delete = true
mon_host = 10.1.1.121
ms_bind_ipv4 = true
ms_bind_ipv6 = false
osd_pool_default_min_size = 2
osd_pool_default_size = 3
public_network = 10.1.1.0/16
cluster_network = 10.199.10.0/24
[client]
keyring = /etc/pve/priv/$cluster.$name.keyring
[client.crash]
keyring = /etc/pve/ceph/$cluster.$name.keyring
[mds]
keyring = /var/lib/ceph/mds/ceph-$id/keyring
[mon.backup1]
public_addr = 10.1.1.121
Meanwhile, the logs of the various OSDs is showing heartbeat_check failures. For example:
Code:
# journalctl -u ceph-osd@1.service -n 40 -f
Jul 05 07:56:42 backup3 ceph-osd[2487]: 2026-07-05T07:56:42.702+0000 7fd9bb00f6c0 -1 osd.1 6872 heartbeat_check: no reply from 10.1.1.121:6814 osd.6 ever on either front or back, first ping sent 2026-07-05T07:56:22.060949+0000 (oldest deadline 2026-07-05T07:56:42.060949+0000)
Jul 05 07:56:42 backup3 ceph-osd[2487]: 2026-07-05T07:56:42.702+0000 7fd9bb00f6c0 -1 osd.1 6872 heartbeat_check: no reply from 10.1.1.124:6802 osd.8 ever on either front or back, first ping sent 2026-07-05T07:56:22.060949+0000 (oldest deadline 2026-07-05T07:56:42.060949+0000)
Jul 05 07:56:42 backup3 ceph-osd[2487]: 2026-07-05T07:56:42.702+0000 7fd9bb00f6c0 -1 osd.1 6872 heartbeat_check: no reply from 10.1.1.124:6814 osd.9 ever on either front or back, first ping sent 2026-07-05T07:56:22.060949+0000 (oldest deadline 2026-07-05T07:56:42.060949+0000)
Jul 05 07:56:42 backup3 ceph-osd[2487]: 2026-07-05T07:56:42.702+0000 7fd9bb00f6c0 -1 osd.1 6872 heartbeat_check: no reply from 10.1.1.121:6810 osd.11 ever on either front or back, first ping sent 2026-07-05T07:56:22.060949+0000 (oldest deadline 2026-07-05T07:56:42.060949+0000)
This is making no sense at all to me. Note that I've updated the packages today (no-subscription repo), and rebooted many times after changing configuration settings, but nothing seems to get the OSDs to use the correct network for the heartbeat.
Stuff I've tried includes overrides of the cluster_addr for each of the OSDs (as per the docs) in the above ceph.conf. That didn't do anything, so I removed those entries).
Anyone have ideas?
Last edited: