From 6343018faca842b0c4c1805f9d2345f6e20fda60 Mon Sep 17 00:00:00 2001 From: Wido den Hollander Date: Wed, 6 Jan 2016 11:36:39 +0100 Subject: [PATCH] rbd: Do not append Ceph monitor port number 6789 if not provided If no port number was provided for a storage pool libvirt defaults to port 6789; however, librbd/librados already default to 6789 when no port number is provided. In the future Ceph will switch to a new port for the Ceph monitors since port 6789 is already assigned to a different application by IANA. Port 6789 is assigned to SMC-HTTPS and Ceph now has port 3300 assigned as the 'Ceph monitor' port. In this case it is the best solution to not hardcode any port number into libvirt and let librados handle the connection. Only if a user specifies a different port number we pass it down to librados, otherwise we leave it blank. Signed-off-by: Wido den Hollander merge --- docs/formatdomain.html.in | 2 +- docs/storage.html.in | 8 +++++--- src/storage/storage_backend_rbd.c | 2 +- src/util/virstoragefile.c | 3 --- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index ce46f061d8..889e721b9c 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -2151,7 +2151,7 @@ rbd monitor servers of RBD one or more - 6789 + librados default sheepdog diff --git a/docs/storage.html.in b/docs/storage.html.in index 6c8222abe8..1f01330356 100644 --- a/docs/storage.html.in +++ b/docs/storage.html.in @@ -550,7 +550,9 @@ backend supports cephx authentication for communication with the Ceph cluster. Storing the cephx authentication key is done with the libvirt secret mechanism. The UUID in the example pool input - refers to the UUID of the stored secret. + refers to the UUID of the stored secret.
+ The port attribute for a Ceph monitor does not have to be provided. + If not provided librados will use the default Ceph monitor port. Since 0.9.13

@@ -560,8 +562,8 @@ <name>myrbdpool</name> <source> <name>rbdpool</name> - <host name='1.2.3.4' port='6789'/> - <host name='my.ceph.monitor' port='6789'/> + <host name='1.2.3.4'/> + <host name='my.ceph.monitor'/> <host name='third.ceph.monitor' port='6789'/> <auth username='admin' type='ceph'> <secret uuid='2ec115d7-3a88-3ceb-bc12-0ac909a6fd87'/> diff --git a/src/storage/storage_backend_rbd.c b/src/storage/storage_backend_rbd.c index 8dcb9be899..e20a54d35d 100644 --- a/src/storage/storage_backend_rbd.c +++ b/src/storage/storage_backend_rbd.c @@ -173,7 +173,7 @@ static int virStorageBackendRBDOpenRADOSConn(virStorageBackendRBDStatePtr ptr, for (i = 0; i < source->nhost; i++) { if (source->hosts[i].name != NULL && !source->hosts[i].port) { - virBufferAsprintf(&mon_host, "%s:6789,", + virBufferAsprintf(&mon_host, "%s,", source->hosts[i].name); } else if (source->hosts[i].name != NULL && source->hosts[i].port) { diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index 2aa1d90d65..101070f95a 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -2245,9 +2245,6 @@ virStorageSourceRBDAddHost(virStorageSourcePtr src, port += skip; if (VIR_STRDUP(src->hosts[src->nhosts - 1].port, port) < 0) goto error; - } else { - if (VIR_STRDUP(src->hosts[src->nhosts - 1].port, "6789") < 0) - goto error; } parts = virStringSplit(hostport, "\\:", 0);