]> git.proxmox.com Git - mirror_ovs.git/blob - ovsdb/ovsdb-server.1.in
stream: Allow timeout configuration for open_block.
[mirror_ovs.git] / ovsdb / ovsdb-server.1.in
1 .\" -*- nroff -*-
2 .so lib/ovs.tmac
3 .TH ovsdb\-server 1 "@VERSION@" "Open vSwitch" "Open vSwitch Manual"
4 .\" This program's name:
5 .ds PN ovsdb\-server
6 .
7 .SH NAME
8 ovsdb\-server \- Open vSwitch database server
9 .
10 .SH SYNOPSIS
11 \fBovsdb\-server\fR
12 [\fIdatabase\fR]\&...
13 [\fB\-\-remote=\fIremote\fR]\&...
14 [\fB\-\-run=\fIcommand\fR]
15 .so lib/daemon-syn.man
16 .so lib/service-syn.man
17 .so lib/vlog-syn.man
18 .IP "Active-backup options:"
19 [\fB\-\-sync\-from=\fIserver\fR]
20 [\fB\-\-sync\-exclude-tables=\fIdb\fB:\fItable\fR[\fB,\fIdb\fB:\fItable\fR]...\fR]
21 [\fB\-\-active\fR]
22 .so lib/ssl-syn.man
23 .so lib/ssl-bootstrap-syn.man
24 .so lib/ssl-peer-ca-cert-syn.man
25 .so lib/ssl-connect-syn.man
26 .so lib/unixctl-syn.man
27 .so lib/common-syn.man
28 .
29 .SH DESCRIPTION
30 The \fBovsdb\-server\fR program provides RPC interfaces to one or more
31 Open vSwitch databases (OVSDBs). It supports JSON-RPC client
32 connections over active or passive TCP/IP or Unix domain sockets.
33 For an introduction to OVSDB and its implementation in Open vSwitch,
34 see \fBovsdb\fR(7).
35 .PP
36 Each OVSDB file may be specified on the command line as \fIdatabase\fR.
37 If none is specified, the default is \fB@DBDIR@/conf.db\fR. The database
38 files must already have been created and initialized using, for
39 example, \fBovsdb\-tool\fR's \fBcreate\fR, \fBcreate\-cluster\fR, or
40 \fBjoin\-cluster\fR command.
41 .PP
42 This OVSDB implementation supports standalone, active-backup, and
43 clustered database service models, as well as database replication.
44 See the Service Models section of \fBovsdb\fR(7) for more information.
45 .PP
46 For clustered databases, when the \fB\-\-detach\fR option is used,
47 \fBovsdb\-server\fR detaches without waiting for the server to
48 successfully join a cluster (if the database file is freshly created
49 with \fBovsdb\-tool join\-cluster\fR) or connect to a cluster that it
50 has already joined. Use \fBovsdb\-client wait\fR (see
51 \fBovsdb\-client\fR(1)) to wait until the server has successfully
52 joined and connected to a cluster.
53 .PP
54 In addition to user-specified databases, \fBovsdb\-server\fR version
55 2.9 and later also always hosts a built-in database named
56 \fB_Server\fR. Please see \fBovsdb\-server\fR(5) for documentation on
57 this database's schema.
58 .
59 .SH OPTIONS
60 .
61 .IP "\fB\-\-remote=\fIremote\fR"
62 Adds \fIremote\fR as a connection method used by \fBovsdb\-server\fR.
63 The \fIremote\fR may be an OVSDB active or passive connection method,
64 e.g. \fBpssl:6640\fR, as described in \fBovsdb\fR(7). The following
65 additional form is also supported:
66 .
67 .RS
68 .IP "\fBdb:\fIdb\fB,\fItable\fB,\fIcolumn\fR"
69 Reads additional connection methods from \fIcolumn\fR in all of the
70 rows in \fItable\fR within \fIdb\fR. As the contents of \fIcolumn\fR changes,
71 \fBovsdb\-server\fR also adds and drops connection methods accordingly.
72 .IP
73 If \fIcolumn\fR's type is string or set of strings, then the
74 connection methods are taken directly from the column. The connection
75 methods in the column must have one of the forms described above.
76 .IP
77 If \fIcolumn\fR's type is UUID or set of UUIDs and references a table,
78 then each UUID is looked up in the referenced table to obtain a row.
79 The following columns in the row, if present and of the correct type,
80 configure a connection method. Any additional columns are ignored.
81 .RS
82 .IP "\fBtarget\fR (string)"
83 Connection method, in one of the forms described above. This column
84 is mandatory: if it is missing or empty then no connection method can
85 be configured.
86 .IP "\fBmax_backoff\fR (integer)"
87 Maximum number of milliseconds to wait between connection attempts.
88 .IP "\fBinactivity_probe\fR (integer)"
89 Maximum number of milliseconds of idle time on connection to
90 client before sending an inactivity probe message.
91 .IP "\fBread_only\fR (boolean)"
92 If true, only read-only transactions are allowed on this connection.
93 .RE
94 .IP
95 It is an error for \fIcolumn\fR to have another type.
96 .RE
97 .
98 .IP
99 To connect or listen on multiple connection methods, use multiple
100 \fB\-\-remote\fR options.
101 .
102 .IP "\fB\-\-run=\fIcommand\fR]"
103 Ordinarily \fBovsdb\-server\fR runs forever, or until it is told to
104 exit (see \fBRUNTIME MANAGEMENT COMMANDS\fR below). With this option,
105 \fBovsdb\-server\fR instead starts a shell subprocess running
106 \fIcommand\fR. When the subprocess terminates, \fBovsdb\-server\fR
107 also exits gracefully. If the subprocess exits normally with exit
108 code 0, then \fBovsdb\-server\fR exits with exit code 0 also;
109 otherwise, it exits with exit code 1.
110 .IP
111 This option can be useful where a database server is needed only to
112 run a single command, e.g.:
113 .B "ovsdb\-server \-\-remote=punix:socket \-\-run='ovsdb\-client dump unix:socket Open_vSwitch'"
114 .IP
115 This option is not supported on Windows platform.
116 .SS "Daemon Options"
117 .ds DD \
118 \fBovsdb\-server\fR detaches only after it starts listening on all \
119 configured remotes. At this point, all standalone and active-backup \
120 databases are ready for use. Clustered databases only become ready \
121 for use after they finish joining their clusters (which could have \
122 already happened in previous runs of \fBovsdb\-server\fR).
123 .so lib/daemon.man
124 .SS "Service Options"
125 .so lib/service.man
126 .SS "Logging Options"
127 .so lib/vlog.man
128 .SS "Active-Backup Options"
129 These options support the \fBovsdb\-server\fR active-backup service
130 model and database replication. These options apply only to databases
131 in the format used for standalone and active-backup databases, which
132 is the database format created by \fBovsdb\-tool create\fR. By
133 default, when it serves a database in this format, \fBovsdb\-server\fR
134 runs as a standalone server. These options can configure it for
135 active-backup use:
136 .IP \(bu
137 Use \fB\-\-sync\-from=\fIserver\fR to start the server in the backup
138 role, replicating data from \fIserver\fR. When \fBovsdb\-server\fR is
139 running as a backup server, it rejects all transactions that can
140 modify the database content, including lock commands. The same form
141 can be used to configure the local database as a replica of
142 \fIserver\fR.
143 .IP \(bu
144 Use \fB\-\-sync\-from=\fIserver\fB \-\-active\fR to start the server
145 in the active role, but prepared to switch to the backup role in which
146 it would replicate data from \fIserver\fR. When \fBovsdb\-server\fR
147 runs in active mode, it allows all transactions, including those that
148 modify the database.
149 .PP
150 At runtime, management commands can change a server's role and otherwise
151 manage active-backup features. See \fBActive-Backup Commands\fR, below,
152 for more information.
153 .TP
154 \fB\-\-sync\-from=\fIserver\fR
155 Sets up \fBovsdb\-server\fR to synchronize its databases with the
156 databases in \fIserver\fR, which must be an active connection method
157 in one of the forms documented in \fBovsdb\-client\fR(1). Every
158 transaction committed by \fIserver\fR will be replicated to
159 \fBovsdb\-server\fR. This option makes \fBovsdb\-server\fR start
160 as a backup server; add \fB\-\-active\fR to make it start as an
161 active server.
162 .TP
163 \fB\-\-sync\-exclude-tables=\fIdb\fB:\fItable\fR[\fB,\fIdb\fB:\fItable\fR]...\fR
164 Causes the specified tables to be excluded from replication.
165 .TP
166 \fB\-\-active\fR
167 By default, \fB\-\-sync\-from\fR makes \fBovsdb\-server\fR start up as
168 a backup for \fIserver\fR. With \fB\-\-active\fR, however,
169 \fBovsdb\-server\fR starts as an active server. Use this option to
170 allow the syncing options to be specified using command line options,
171 yet start the server, as the default, active server. To switch the
172 running server to backup mode, use \fBovs-appctl(1)\fR to execute the
173 \fBovsdb\-server/connect\-active\-ovsdb\-server\fR command.
174 .SS "Public Key Infrastructure Options"
175 The options described below for configuring the SSL public key
176 infrastructure accept a special syntax for obtaining their
177 configuration from the database. If any of these options is given
178 \fBdb:\fIdb\fB,\fItable\fB,\fIcolumn\fR as its argument, then the
179 actual file name is read from the specified \fIcolumn\fR in \fItable\fR
180 within the \fIdb\fR database. The \fIcolumn\fR must have type
181 string or set of strings. The first nonempty string in the table is taken
182 as the file name. (This means that ordinarily there should be at most
183 one row in \fItable\fR.)
184 .so lib/ssl.man
185 .so lib/ssl-bootstrap.man
186 .so lib/ssl-peer-ca-cert.man
187 .SS "SSL Connection Options"
188 .so lib/ssl-connect.man
189 .SS "Other Options"
190 .so lib/unixctl.man
191 .so lib/common.man
192 .SH "RUNTIME MANAGEMENT COMMANDS"
193 \fBovs\-appctl\fR(8) can send commands to a running
194 \fBovsdb\-server\fR process. The currently supported commands are
195 described below.
196 .SS "\fBovsdb\-server\fR Commands"
197 These commands are specific to \fBovsdb\-server\fR.
198 .IP "\fBexit\fR"
199 Causes \fBovsdb\-server\fR to gracefully terminate.
200 .IP "\fBovsdb\-server/compact\fR [\fIdb\fR]"
201 Compacts database \fIdb\fR in-place. If \fIdb\fR is not
202 specified, compacts every database in-place. A database is also
203 compacted automatically when a transaction is logged if it is over 2
204 times as large as its previous compacted size (and at least 10 MB),
205 but not before 100 commits have been added or 10 minutes have elapsed
206 since the last compaction. It will also be compacted automatically
207 after 24 hours since the last compaction if 100 commits were added
208 regardless of its size.
209 .
210 .IP "\fBovsdb\-server/reconnect\fR"
211 Makes \fBovsdb\-server\fR drop all of the JSON\-RPC
212 connections to database clients and reconnect.
213 .IP
214 This command might be useful for debugging issues with database
215 clients.
216 .
217 .IP "\fBovsdb\-server/add\-remote \fIremote\fR"
218 Adds a remote, as if \fB\-\-remote=\fIremote\fR had been specified on
219 the \fBovsdb\-server\fR command line. (If \fIremote\fR is already a
220 remote, this command succeeds without changing the configuration.)
221 .
222 .IP "\fBovsdb\-server/remove\-remote \fIremote\fR"
223 Removes the specified \fIremote\fR from the configuration, failing
224 with an error if \fIremote\fR is not configured as a remote. This
225 command only works with remotes that were named on \fB\-\-remote\fR or
226 \fBovsdb\-server/add\-remote\fR, that is, it will not remove remotes
227 added indirectly because they were read from the database by
228 configuring a \fBdb:\fIdb\fB,\fItable\fB,\fIcolumn\fR remote.
229 (You can remove a database source with \fBovsdb\-server/remove\-remote
230 \fBdb:\fIdb\fB,\fItable\fB,\fIcolumn\fR, but not individual
231 remotes found indirectly through the database.)
232 .
233 .IP "\fBovsdb\-server/list\-remotes"
234 Outputs a list of the currently configured remotes named on
235 \fB\-\-remote\fR or \fBovsdb\-server/add\-remote\fR, that is, it does
236 not list remotes added indirectly because they were read from the
237 database by configuring a
238 \fBdb:\fIdb\fB,\fItable\fB,\fIcolumn\fR remote.
239 .
240 .IP "\fBovsdb\-server/add\-db \fIdatabase\fR"
241 Adds the \fIdatabase\fR to the running \fBovsdb\-server\fR. The database
242 file must already have been created and initialized using, for example,
243 \fBovsdb\-tool create\fR.
244 .
245 .IP "\fBovsdb\-server/remove\-db \fIdatabase\fR"
246 Removes \fIdatabase\fR from the running \fBovsdb\-server\fR. \fIdatabase\fR
247 must be a database name as listed by \fBovsdb-server/list\-dbs\fR.
248 .IP
249 If a remote has been configured that points to the specified
250 \fIdatabase\fR (e.g. \fB\-\-remote=db:\fIdatabase\fB,\fR... on the
251 command line), then it will be disabled until another database with
252 the same name is added again (with \fBovsdb\-server/add\-db\fR).
253 .IP
254 Any public key infrastructure options specified through this database
255 (e.g. \fB\-\-private\-key=db:\fIdatabase,\fR... on the command line)
256 will be disabled until another database with the same name is added
257 again (with \fBovsdb\-server/add\-db\fR).
258 .
259 .IP "\fBovsdb\-server/list\-dbs"
260 Outputs a list of the currently configured databases added either through
261 the command line or through the \fBovsdb\-server/add\-db\fR command.
262 .
263 .SS "Active-Backup Commands"
264 .PP
265 These commands query and update the role of \fBovsdb\-server\fR within
266 an active-backup pair of servers. See \fBActive-Backup Options\fR,
267 above, and \fBActive-Backup Database Service Model\fR in
268 \fBovsdb\fR(7) for more information.
269 .
270 .IP "\fBovsdb\-server/set\-active\-ovsdb\-server \fIserver"
271 Sets the active \fIserver\fR from which \fBovsdb\-server\fR connects through
272 \fBovsdb\-server/connect\-active\-ovsdb\-server\fR.
273 This overrides the \fB\-\-sync\-from\fR command-line option.
274 .
275 .IP "\fBovsdb\-server/get\-active\-ovsdb\-server"
276 Gets the active server from which \fBovsdb\-server\fR is currently synchronizing
277 its databases.
278 .
279 .IP "\fBovsdb\-server/connect\-active\-ovsdb\-server"
280 Switches the server to a backup role. The server starts synchronizing
281 its databases with the active server specified by
282 \fBovsdb\-server/set\-active\-ovsdb\-server\fR (or the
283 \fB\-\-sync\-from\fR command-line option) and closes all existing
284 client connections, which requires clients to reconnect.
285 .
286 .IP "\fBovsdb\-server/disconnect\-active\-ovsdb\-server"
287 Switches the server to an active role. The server stops synchronizing
288 its databases with an active server and closes all existing client
289 connections, which requires clients to reconnect.
290 .
291 .IP "\fBovsdb\-server/set\-sync\-exclude\-tables \fIdb\fB:\fItable\fR[\fB,\fIdb\fB:\fItable\fR]..."
292 Sets the \fItable\fR within \fIdb\fR that will be excluded from synchronization.
293 This overrides the \fB\-\-sync\-exclude-tables\fR command-line option.
294 .
295 .IP "\fBovsdb\-server/get\-sync\-exclude\-tables"
296 Gets the tables that are currently excluded from synchronization.
297 .
298 .IP "\fBovsdb\-server/sync\-status"
299 Prints a summary of replication run time information. The \fBstate\fR
300 information is always provided, indicating whether the server is running
301 in the \fIactive\fR or the \fIbackup\fR mode.
302 When running in backup mode, replication connection status, which
303 can be either \fIconnecting\fR, \fIreplicating\fR or \fIerror\fR, are shown.
304 When the connection is in \fIreplicating\fR state, further output shows
305 the list of databases currently replicating, and the tables that are
306 excluded.
307 .
308 .SS "Cluster Commands"
309 These commands support the \fBovsdb\-server\fR clustered service model.
310 They apply only to databases in the format used for clustered databases,
311 which is the database format created by \fBovsdb\-tool create\-cluster\fR
312 and \fBovsdb\-tool join\-cluster\fR.
313 .
314 .IP "\fBcluster/cid \fIdb\fR"
315 Prints the cluster ID for \fIdb\fR, which is a UUID that identifies
316 the cluster. If \fIdb\fR is a database newly created by
317 \fBovsdb\-tool cluster\-join\fR that has not yet successfully joined
318 its cluster, and \fB\-\-cid\fR was not specified on the
319 \fBcluster\-join\fR command line, then this command will report an
320 error because the cluster ID is not yet known.
321 .
322 .IP "\fBcluster/sid \fIdb\fR"
323 Prints the server ID for \fIdb\fR, which is a UUID that identifies
324 this server within the cluster.
325 .
326 .IP "\fBcluster/status \fIdb\fR"
327 Prints this server's status within the cluster and the status of its
328 connections to other servers in the cluster.
329 .
330 .IP "\fBcluster/leave \fIdb\fR"
331 This command starts the server gracefully
332 removing itself from its cluster. At least one server must remain,
333 and the cluster must be healthy, that is, over half of the cluster's
334 servers must be up.
335 .IP
336 When the server successfully leaves the cluster, it stops serving
337 \fIdb\fR, as if \fBovsdb\-server/remove\-db \fIdb\fR had been
338 executed.
339 .IP
340 Use \fBovsdb\-client wait\fR (see \fBovsdb\-client\fR(1)) to wait
341 until the server has left the cluster.
342 .IP
343 Once a server leaves a cluster, it may never rejoin it. Instead,
344 create a new server and join it to the cluster.
345 .
346 .IP "\fBcluster/kick \fIdb server\fR"
347 Start graceful removal of \fIserver\fR from \fIdb\fR's cluster, like
348 \fBcluster/leave\fR (without \fB\-\-force\fR) except that it can
349 remove any server, not just this one.
350 .IP
351 \fIserver\fR may be a server ID, as printed by \fBcluster/sid\fR, or
352 the server's local network address as passed to \fBovsdb-tool\fR's
353 \fBcreate\-cluster\fR or \fBjoin\-cluster\fR command. Use
354 \fBcluster/status\fR to see a list of cluster members.
355 .
356 .so lib/vlog-unixctl.man
357 .so lib/memory-unixctl.man
358 .so lib/coverage-unixctl.man
359 .SH "BUGS"
360 .
361 In Open vSwitch before version 2.4, when \fBovsdb\-server\fR sent
362 JSON-RPC error responses to some requests, it incorrectly formulated
363 them with the \fBresult\fR and \fBerror\fR swapped, so that the
364 response appeared to indicate success (with a nonsensical result)
365 rather than an error. The requests that suffered from this problem
366 were:
367 .
368 .IP \fBtransact\fR
369 .IQ \fBget_schema\fR
370 Only if the request names a nonexistent database.
371 .IP \fBmonitor\fR
372 .IQ \fBlock\fR
373 .IQ \fBunlock\fR
374 In all error cases.
375 .
376 .PP
377 Of these cases, the only error that a well-written application is
378 likely to encounter in practice is \fBmonitor\fR of tables or columns
379 that do not exist, in an situation where the application has been
380 upgraded but the old database schema is still temporarily in use. To
381 handle this situation gracefully, we recommend that clients should
382 treat a \fBmonitor\fR response with a \fBresult\fR that contains an
383 \fBerror\fR key-value pair as an error (assuming that the database
384 being monitored does not contain a table named \fBerror\fR).
385 .
386 .SH "SEE ALSO"
387 \fBovsdb\fR(7),
388 \fBovsdb\-tool\fR(1),
389 \fBovsdb\-server\fR(5),
390 \fBovsdb\-server\fR(7).