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