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