I’m a big fan of Ceph and IPv6, so I always try to deploy Ceph over IPv6 when possible. Ceph is the future, just like IPv6 is. Why implement legacy?
Recently I did a deployment of Ceph with a public and cluster network running over IPv6. It has a small catch, so I let me explain the cluster and public network first.
This image comes from the Ceph documentation and shows the two types of network:
- Public network for clients and monitors
- Cluster network for inter-OSD communication (Replication and recovery)
If you want to run your Ceph cluster over IPv6 you have a couple of settings to make:
[global] ms_bind_ipv6 = true mon_host = [2a00:f10:XX:XX::XX]:6789, [2a00:f10:XX:XX::XY]:6789, [2a00:f10:XX:XX::YY]:6789
As you can see, you have to write the IPv6 address enclosed by [ and ]
When configuring the cluster and/or public network in the ceph.conf you should however not use them:
[global] public_network = 2a00:f10:XX:XX:XX::/64 cluster_network = 2a00:f10:XX:XX:XY::/64
When that is set correctly it should all be working fine and your Ceph cluster will be running over IPv6 with different networks!