How to Deploy Ceph using Cephadm with IPv6
Learn how to successfully deploy Ceph using Cephadm in IPv6 environments and resolve common configuration issues.
Problem Description
Cephadm bootstrap fails when trying to configure a Ceph cluster with IPv6 addresses, showing network configuration errors.
Common Error Messages
./cephadm bootstrap --mon-ip xxxx:xxxx:xx:xxxx:x::xx --skip-monitoring-stack -c ceph.conf
Verifying podman|docker is present...
Verifying lvm2 is present...
Verifying time synchronization is in place...
Unit chrony.service is enabled and running
Repeating the final host check...
podman (/usr/bin/podman) version 4.7.2 is present
systemctl is present
lvcreate is present
Unit chrony.service is enabled and running
Host looks OK
Cluster fsid: 19c15c1a-c125-11ee-a33d-17acafae1852
...
The public CIDR network xxxx:xxx:xx:xxxx:x::/80 (from -c conf file) is not configured locally.
ERROR: None of the public CIDR network(s) {'xxxx:xxx:xx:xxxx:x::/80'} (from -c conf file) is configured locally.
Solution
Step 1: Verify IPv6 Configuration
First, check the IPv6 address configuration of your node:
ip addr show
Example output:
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
altname enp0s3
inet6 xxxx:xxx:xx:xxxx:x::xx/128 scope global
valid_lft forever preferred_lft forever
inet6 xxx::x/xx scope link
valid_lft forever preferred_lft forever
Step 2: Bootstrap Without Monitor Network
Bootstrap the cluster while skipping monitor network configuration:
./cephadm bootstrap --mon-ip xxxx:xxx:xx:xxxx:x::xx --skip-mon-network
Step 3: Configure Monitor Network Post-Bootstrap
After successful bootstrap, configure the monitor network from the cephadm shell. The network should be in CIDR notation:
./cephadm shell -- ceph config set mon public_network xxxx:xxx:xx:xxxx:x::/80
Step 4: Deploy Additional Daemons
Add nodes and deploy other daemons following the upstream Ceph documentation.
Troubleshooting Tips
- Port accessibility: If daemons cannot join the cluster, verify that required ports are open
- Network connectivity: Ensure IPv6 connectivity between all cluster nodes
- CIDR notation: Always use proper CIDR notation for IPv6 network configuration