Difference between revisions of "Man/vzmigrate.8"

From OpenVZ Virtuozzo Containers Wiki
< Man
Jump to: navigation, search
(Automated import of articles *** existing text overwritten ***)
(Automated import of articles *** existing text overwritten ***)
 
(8 intermediate revisions by 2 users not shown)
Line 17: Line 17:
  
 
<p style="margin-top: 1em">[<b>-r</b>|<b>--remove-area&nbsp;yes</b>|<b>no</b>]
 
<p style="margin-top: 1em">[<b>-r</b>|<b>--remove-area&nbsp;yes</b>|<b>no</b>]
[<b>--ssh=</b><i>ssh_options</i>]
+
[<b>--ssh=</b><i>ssh_options</i>] [<b>--ssh-mux</b>]
 
[<b>--rsync=</b><i>rsync_options</i>] [<b>--keep-dst</b>]
 
[<b>--rsync=</b><i>rsync_options</i>] [<b>--keep-dst</b>]
[<b>--online</b>] [<b>-v</b>] <i>destination_address
+
[<b>--live</b>] [<b>-c</b>|<b>--compact</b>]
CTID</i></p> </td></tr>
+
[<b>-s</b>|<b>--snapshot</b>]
 +
[<b>--check-only</b>|<b>--dry-run</b>]
 +
[<b>-f</b>|<b>--nodeps</b>[<b>=</b><i>check</i>[<b>,</b><i>check&nbsp;</i>...]]]
 +
[<b>-t</b>|<b>--times</b>] [<b>-v</b>]
 +
<i>destination_address CTID</i></p></td></tr>
 +
<tr valign="top" align="left">
 +
<td width="11%"></td>
 +
<td width="14%">
 +
 
 +
<p><b>vzmigrate</b></p></td>
 +
<td width="1%"></td>
 +
<td width="74%">
 +
 
 +
<p><b>-h</b>|<b>--help</b>|<b>--usage</b></p></td></tr>
 
</table>
 
</table>
  
Line 31: Line 44:
 
container, simple CT private area transfer is performed
 
container, simple CT private area transfer is performed
 
(<b>rsync</b>(1) is used for file transfer). For running
 
(<b>rsync</b>(1) is used for file transfer). For running
containers, migration may be offline (default) or
+
containers, either traditional (with CT stop and start) or
online.</p>
+
live migration is possible.</p>
  
 
<p style="margin-left:11%; margin-top: 1em">This program
 
<p style="margin-left:11%; margin-top: 1em">This program
Line 53: Line 66:
 
will be passed to ssh while establishing connection to
 
will be passed to ssh while establishing connection to
 
destination HN.</p>
 
destination HN.</p>
 +
 +
<p style="margin-left:11%;"><b>--ssh-mux</b></p>
 +
 +
<p style="margin-left:22%;">Enable ssh channel
 +
multiplexing, establishing and reusing a single ssh
 +
connection to remote server. This speeds up live
 +
migration.</p>
  
 
<p style="margin-left:11%;"><b>--rsync=</b><i>options</i></p>
 
<p style="margin-left:11%;"><b>--rsync=</b><i>options</i></p>
Line 70: Line 90:
 
attempt.</p>
 
attempt.</p>
  
<p style="margin-left:11%;"><b>--online</b></p>
+
<table width="100%" border="0" rules="none" frame="void"
 +
      cellspacing="0" cellpadding="0">
 +
<tr valign="top" align="left">
 +
<td width="11%"></td>
 +
<td width="9%">
 +
 
 +
<p><b>--live</b></p></td>
 +
<td width="2%"></td>
 +
<td width="78%">
 +
 
 +
<p>Perform live migration: instead of restarting a
 +
container, checkpoint and restore are used, so there is no
 +
container downtime or service interruption. Additional steps
 +
are performed to minimize the time when a container is in
 +
suspended state. Option <b>--online</b> can be used as a
 +
backward-compatible alias.</p></td></tr>
 +
</table>
 +
 
 +
<p style="margin-left:11%;"><b>-c</b>, <b>--compact</b></p>
 +
 
 +
<p style="margin-left:22%;">Compact a container image (i.e.
 +
run <b>vzctl compact</b>) before migration. Works for ploop
 +
only, ignored otherwise.</p>
  
<p style="margin-left:22%;">Perform online (zero-downtime)
+
<p style="margin-left:11%;"><b>-s</b>,
migration: during the migration the container hangs for a
+
<b>--snapshot</b></p>
while and after the migration it continues working as though
+
 
nothing has happened.</p>
+
<p style="margin-left:22%;">Create a container snapshot
 +
(i.e. run <b>vzctl snapshot</b>) before migration. Works for
 +
ploop only, ignored otherwise.</p>
 +
 
 +
<p style="margin-left:11%;"><b>--check-only</b>,
 +
<b>--dry-run</b></p>
 +
 
 +
<p style="margin-left:22%;">Do not perform actual
 +
migration, stop after preliminary checks. This is used to
 +
check if a CT can possibly be migrated. Combine with
 +
<b>--live</b> to enable more checks for live migration
 +
case.</p>
 +
 
 +
<p style="margin-left:11%;"><b>-f</b>|<b>--nodeps</b>[<b>=</b><i>check</i>[<b>,</b><i>check&nbsp;</i>...]]</p>
 +
 
 +
<p style="margin-left:22%;">Continue migration, ignoring
 +
some or all preliminary check failures. Particular checks
 +
can be ignored by providing an argument to <b>--nodeps</b>
 +
option. The following options can be used (comma-separated):
 +
<br>
 +
&bull; <b>cpu</b> &minus; ignore cpu capabilities check;
 +
<br>
 +
&bull; <b>ipv6</b> &minus; ignore ipv6 module check.</p>
 +
 
 +
<p style="margin-left:11%;"><b>-t</b>, <b>--times</b></p>
 +
 
 +
<p style="margin-left:22%;">At the end of live migration,
 +
output various timings for migration stages that affect
 +
total suspended CT time. Note that it only makes sense with
 +
<b>--live</b>.</p>
  
 
<table width="100%" border="0" rules="none" frame="void"
 
<table width="100%" border="0" rules="none" frame="void"
Line 88: Line 159:
  
 
<p>Verbose mode. Causes <b>vzmigrate</b> to print debugging
 
<p>Verbose mode. Causes <b>vzmigrate</b> to print debugging
messages about its progress. Multiple <b>-v</b> options
+
messages about its progress. Note that <b>-v</b>
increase the verbosity. The maximum is 3.</p></td></tr>
+
automatically implies <b>-t</b>. Multiple <b>-v</b> options
 +
increase the verbosity.</p></td></tr>
 
</table>
 
</table>
 +
 +
<p style="margin-left:11%;"><b>-h</b>|<b>--help</b>|<b>--usage</b></p>
 +
 +
<p style="margin-left:22%;">Print usage info and exit.</p>
  
 
== EXAMPLES ==
 
== EXAMPLES ==
  
 
<p style="margin-left:11%; margin-top: 1em">Migration of CT
 
<p style="margin-left:11%; margin-top: 1em">Migration of CT
#101 to <b>192.168.1.130</b> with downtime:</p>
+
101 to <b>192.168.1.130</b> with downtime:</p>
  
 
<pre style="margin-left:11%; margin-top: 1em">  vzmigrate 192.168.1.130 101</pre>
 
<pre style="margin-left:11%; margin-top: 1em">  vzmigrate 192.168.1.130 101</pre>
  
 
<p style="margin-left:11%; margin-top: 1em">Online
 
<p style="margin-left:11%; margin-top: 1em">Online
migration of CT #102 to <b>192.168.1.130</b>:</p>
+
migration of CT 102 to <b>192.168.1.130</b>:</p>
  
<pre style="margin-left:11%; margin-top: 1em">  vzmigrate --online 192.168.1.130 102</pre>
+
<pre style="margin-left:11%; margin-top: 1em">  vzmigrate --live 192.168.1.130 102</pre>
  
 
== EXIT STATUS ==
 
== EXIT STATUS ==
Line 160: Line 236:
 
<p style="margin-left:22%;">Operation with CT quota
 
<p style="margin-left:22%;">Operation with CT quota
 
failed.</p>
 
failed.</p>
 +
 +
<p style="margin-left:11%;"><b>14
 +
EXIT_OVZ_NOT_RUNNING</b></p>
 +
 +
<p style="margin-left:22%;">OpenVZ is not running, or some
 +
required kernel modules are not loaded.</p>
 +
 +
<p style="margin-left:11%;"><b>15 EXIT_APPLY_CONFIG</b></p>
 +
 +
<p style="margin-left:22%;">Unable to set CT name on
 +
destination node.</p>
 +
 +
<p style="margin-left:11%;"><b>16 EXIT_PLOOP_UNSUP</b></p>
 +
 +
<p style="margin-left:22%;">Ploop is not supported by
 +
destination node.</p>
 +
 +
<p style="margin-left:11%;"><b>17
 +
EXIT_UNSUP_CPT_VER</b></p>
 +
 +
<p style="margin-left:22%;">CPT version incompatibility
 +
with the destination node.</p>
 +
 +
<p style="margin-left:11%;"><b>18 EXIT_UNSUP_CPU</b></p>
 +
 +
<p style="margin-left:22%;">Destination node CPU
 +
incompatibility.</p>
 +
 +
<p style="margin-left:11%;"><b>19
 +
EXIT_CANT_READ_REMOTE_CONFIG</b></p>
 +
 +
<p style="margin-left:22%;">Unable to read remote
 +
vz.conf.</p>
 +
 +
<p style="margin-left:11%;"><b>20 EXIT_LOCKED</b></p>
 +
 +
<p style="margin-left:22%;">Can&rsquo;t lock container
 +
(already locked).</p>
  
 
== SEE ALSO ==
 
== SEE ALSO ==
  
<p style="margin-left:11%; margin-top: 1em"><b>rsync</b>(1).</p>
+
<p style="margin-left:11%; margin-top: 1em"><b>rsync</b>(1),
 +
[[Man/vzcptcheck.8|<b>vzcptcheck</b>(8)]].</p>
  
 
== COPYRIGHT ==
 
== COPYRIGHT ==
  
 
<p style="margin-left:11%; margin-top: 1em">Copyright (C)
 
<p style="margin-left:11%; margin-top: 1em">Copyright (C)
2001-2010, Parallels, Inc. Licensed under GNU GPL.</p>
+
2001-2013, Parallels, Inc. Licensed under GNU GPL.</p>

Latest revision as of 18:23, 23 April 2015

NAME[edit]

vzmigrate − migrate a container between two OpenVZ servers

SYNOPSIS[edit]

vzmigrate

[-r|--remove-area yes|no] [--ssh=ssh_options] [--ssh-mux] [--rsync=rsync_options] [--keep-dst] [--live] [-c|--compact] [-s|--snapshot] [--check-only|--dry-run] [-f|--nodeps[=check[,check ...]]] [-t|--times] [-v] destination_address CTID

vzmigrate

-h|--help|--usage

DESCRIPTION[edit]

This utility is used to migrate a container from one (source) Hardware Node (HN) to another (destination) HN. The utility can migrate either stopped or running container. For a stopped container, simple CT private area transfer is performed (rsync(1) is used for file transfer). For running containers, either traditional (with CT stop and start) or live migration is possible.

This program uses ssh as a transport layer. You will need to put ssh public key to destination node and be able to connect to node without entering password.

OPTIONS[edit]

-r, --remove-area yes | no

Whether to remove a container area on source HN for the successfully migrated container. Default is yes.

--ssh=options

Additional options that will be passed to ssh while establishing connection to destination HN.

--ssh-mux

Enable ssh channel multiplexing, establishing and reusing a single ssh connection to remote server. This speeds up live migration.

--rsync=options

Additional options that will be passed to rsync(8). You may add options like -z to enable data compression if you are migrating over a slow link.

--keep-dst

Do not clean synced destination container private area in case of some error. It makes sense to use this option on big container migration to avoid syncing container private area again in case some error (on container stop for example) occurs during first migration attempt.

--live

Perform live migration: instead of restarting a container, checkpoint and restore are used, so there is no container downtime or service interruption. Additional steps are performed to minimize the time when a container is in suspended state. Option --online can be used as a backward-compatible alias.

-c, --compact

Compact a container image (i.e. run vzctl compact) before migration. Works for ploop only, ignored otherwise.

-s, --snapshot

Create a container snapshot (i.e. run vzctl snapshot) before migration. Works for ploop only, ignored otherwise.

--check-only, --dry-run

Do not perform actual migration, stop after preliminary checks. This is used to check if a CT can possibly be migrated. Combine with --live to enable more checks for live migration case.

-f|--nodeps[=check[,check ...]]

Continue migration, ignoring some or all preliminary check failures. Particular checks can be ignored by providing an argument to --nodeps option. The following options can be used (comma-separated):
cpu − ignore cpu capabilities check;
ipv6 − ignore ipv6 module check.

-t, --times

At the end of live migration, output various timings for migration stages that affect total suspended CT time. Note that it only makes sense with --live.

-v

Verbose mode. Causes vzmigrate to print debugging messages about its progress. Note that -v automatically implies -t. Multiple -v options increase the verbosity.

-h|--help|--usage

Print usage info and exit.

EXAMPLES[edit]

Migration of CT 101 to 192.168.1.130 with downtime:

   vzmigrate 192.168.1.130 101

Online migration of CT 102 to 192.168.1.130:

   vzmigrate --live 192.168.1.130 102

EXIT STATUS[edit]

0 EXIT_OK

Command completed successfully.

1 EXIT_USAGE

Bad command line options.

2 EXIT_VE_STOPPED

Container is stopped.

4 EXIT_CONNECT

Can’t connect to destination (source) HN.

6 EXIT_COPY

Container private area copying/moving failed.

7 EXIT_VE_START

Can’t start or restore destination CT.

8 EXIT_VE_STOP

Can’t stop or checkpoint source CT.

9 EXIT_EXISTS

Container already exists on destination HN.

10 EXIT_NOTEXIST

Container does not exists on source HN.

12 EXIT_IP_INUSE

You attempt to migrate CT which IP address(es) are already in use on the destination node.

13 EXIT_QUOTA

Operation with CT quota failed.

14 EXIT_OVZ_NOT_RUNNING

OpenVZ is not running, or some required kernel modules are not loaded.

15 EXIT_APPLY_CONFIG

Unable to set CT name on destination node.

16 EXIT_PLOOP_UNSUP

Ploop is not supported by destination node.

17 EXIT_UNSUP_CPT_VER

CPT version incompatibility with the destination node.

18 EXIT_UNSUP_CPU

Destination node CPU incompatibility.

19 EXIT_CANT_READ_REMOTE_CONFIG

Unable to read remote vz.conf.

20 EXIT_LOCKED

Can’t lock container (already locked).

SEE ALSO[edit]

rsync(1), vzcptcheck(8).

COPYRIGHT[edit]

Copyright (C) 2001-2013, Parallels, Inc. Licensed under GNU GPL.