@@ -79,6 +79,128 @@ address is not present and ``monitoring_networks`` is specified, an IP address
7979that matches one of the specified networks will be used. If neither condition
8080is met, the default binding will happen on all available network interfaces.
8181
82+ NFS over RDMA
83+ -------------
84+
85+ NFS over RDMA is disabled by default. To enable it, set ``enable_rdma: true `` in
86+ the NFS service spec. You can optionally set ``rdma_port `` to use a custom RDMA
87+ port, if omitted, NFS Ganesha uses its default.
88+
89+ When RDMA is enabled:
90+
91+ * New exports in the cluster default to **Transports = TCP, RDMA **
92+ * For colocation, each entry in ``colocation_ports `` must include
93+ ``rdma_port `` in addition to ``data_port `` and ``monitoring_port ``.
94+
95+ Example with RDMA enabled:
96+
97+ .. code-block :: yaml
98+
99+ service_type : nfs
100+ service_id : mynfs
101+ placement :
102+ count : 1
103+ hosts : [host1]
104+ spec :
105+ port : 2049
106+ monitoring_port : 9587
107+ enable_rdma : true
108+ rdma_port : 20049 # optional
109+
110+ .. note :: If you use a bind address (e.g. ``virtual_ip``, ``ip_addrs``, or
111+ ``networks ``) with ``enable_rdma ``, ensure the network interface for that
112+ address is RDMA-capable. On the host, run ``rdma link show `` and confirm the
113+ netdev for the interface with the bind IP is listed.
114+
115+ NFS Daemon Colocation
116+ ----------------------
117+
118+ By default, cephadm avoids placing multiple NFS daemons on the same host. However,
119+ you can enable colocation to deploy multiple NFS daemons on the same host for
120+ increased capacity or redundancy.
121+
122+ .. note ::
123+ When a host becomes unavailable, cephadm will automatically redeploy the
124+ affected NFS daemons on the remaining available hosts to maintain the desired
125+ ``count ``. This may result in multiple daemons running on the same host,
126+ even if colocation was not explicitly configured. The system ensures that
127+ the total number of running daemons matches the specified count across
128+ all available hosts.
129+
130+ Colocation with Custom Ports
131+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
132+
133+ For more control over port assignments, you can specify custom ports for colocated daemons
134+ using the ``colocation_ports `` parameter:
135+
136+ .. code-block :: yaml
137+
138+ service_type : nfs
139+ service_id : mynfs
140+ placement :
141+ count : 4
142+ hosts :
143+ - host1
144+ - host2
145+ spec :
146+ port : 2049
147+ monitoring_port : 9587
148+ colocation_ports :
149+ - data_port : 3049
150+ monitoring_port : 9588
151+ - data_port : 3050
152+ monitoring_port : 9589
153+ - data_port : 3051
154+ monitoring_port : 9590
155+
156+ In this configuration, 4 daemons total are deployed (2 per host), distributed across
157+ ``host1 `` and ``host2 ``:
158+
159+ * **host1, daemon 1 **: ``port: 2049 `` and ``monitoring_port: 9587 ``
160+ * **host1, daemon 2 **: ``data_port: 3049 `` and ``monitoring_port: 9588 ``
161+ * **host2, daemon 1 **: ``port: 2049 `` and ``monitoring_port: 9587 ``
162+ * **host2, daemon 2 **: ``data_port: 3049 `` and ``monitoring_port: 9588 ``
163+
164+ .. note ::
165+ * The ``colocation_ports `` list defines ports for **additional ** daemons only
166+ (2nd, 3rd, 4th, etc.). The first daemon always uses the base ``port `` and
167+ ``monitoring_port `` from the spec.
168+ * The number of entries in ``colocation_ports `` should be ``count - 1 ``,
169+ to cover the node down scenario (or ``count_per_host - 1 `` when using ``count_per_host ``).
170+ * Each entry must specify both ``data_port `` and ``monitoring_port ``. When
171+ ``enable_rdma `` is true, each entry must also include ``rdma_port ``.
172+ * If ``colocation_ports `` is not specified, ports will be automatically
173+ incremented for colocated daemons (e.g., 2049 → 2050 → 2051 for data ports,
174+ and 9587 → 9588 → 9589 for monitoring ports).
175+
176+ Per-Host Colocation
177+ ~~~~~~~~~~~~~~~~~~~
178+
179+ You can also use ``count_per_host `` to specify exactly how many daemons should
180+ run on each host:
181+
182+ .. code-block :: yaml
183+
184+ service_type : nfs
185+ service_id : mynfs
186+ placement :
187+ count_per_host : 3
188+ hosts :
189+ - host1
190+ - host2
191+ - host3
192+ spec :
193+ port : 2049
194+ monitoring_port : 9587
195+ colocation_ports :
196+ - data_port : 3049
197+ monitoring_port : 9588
198+ - data_port : 4049
199+ monitoring_port : 9589
200+
201+ This will deploy exactly 3 NFS daemons on each of the 3 hosts (9 daemons total),
202+ with custom ports for the 2nd and 3rd daemons on each host.
203+
82204TLS/SSL Example
83205---------------
84206
0 commit comments