Skip to main content

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