=head1 NAME

vos_move - Moves a read/write volume to another site

=head1 SYNOPSIS

=for html
<div class="synopsis">

B<vos move> S<<< B<-id> <I<volume name or ID>> >>>
    S<<< B<-fromserver> <I<machine name on source>> >>>
    S<<< B<-frompartition> <I<partition name on source>> >>>
    S<<< B<-toserver> <I<machine name on destination>> >>>
    S<<< B<-topartition> <I<partition name on destination>> >>>
    [B<-live>] S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-localauth>]
    [B<-verbose>] [B<-encrypt>] [B<-noresolve>]
    S<<< [B<-config> <I<config directory>>] >>>
    [B<-help>]

B<vos m> S<<< B<-i> <I<volume name or ID>> >>>
    S<<< B<-froms> <I<machine name on source>> >>>
    S<<< B<-fromp> <I<partition name on source>> >>>
    S<<< B<-tos> <I<machine name on destination>> >>>
    S<<< B<-top> <I<partition name on destination>> >>>
    [B<-li>] S<<< [B<-c> <I<cell name>>] >>> [B<-noa>]
    [B<-lo>] [B<-v>] [B<-e>] [B<-nor>]
    S<<< [B<-co> <I<config directory>>] >>>
    [B<-h>]

=for html
</div>

=head1 DESCRIPTION

The B<vos move> command moves the indicated read/write volume from its
current site (specified with the B<-fromserver> and B<-frompartition>
arguments) to the destination site (specified with the B<-toserver> and
B<-topartition> arguments). This command automatically removes the backup
copy from the current site, if it exists. To create a new backup volume at
the destination site, use the B<vos backup> command.

This command works on read/write volumes only. To move a read-only volume,
use the B<vos addsite> and B<vos release> commands to define a new
read-only site and release the volume contents to it, and then use the
B<vos remove> command to remove the previous read-only volume's definition
from the Volume Location Database (VLDB) and data from the partition. To
move a backup volume, use this command to move its read/write source and
then issue the B<vos backup> command.

Before executing this command, the B<vos> command interpreter initiates a
check that the destination partition contains enough space to house the
volume being moved. If there is not enough space, the move operation is
not attempted and the following message appears:

   vos: no space on target partition <dest_part> to move volume <volume>

=head1 CAUTIONS

Unless there is a compelling reason, do not interrupt a B<vos move>
command in progress. Interrupting a move can result in one or more of the
following inconsistent states:

=over 4

=item *

There are two versions of the volume, one at the source site and one at
the destination site. (If this happens, retain the version identified by
the VLDB and use the B<vos zap> command to remove the other version.)

=item *

The backup version of the volume is stranded at the old site. (If this
happens, use the B<vos zap> command to remove it.)

=item *

The volume is off-line. (If this happens, run the B<bos salvage> command
to bring it back on line.)

=back

If the Ctrl-C interrupt signal is pressed while a vos move operation is
executing, the following message warns of the consequences and requests
confirmation of the kill signal:

   SIGINT handler: vos move operation in progress
   WARNING: may leave AFS storage and metadata in indeterminate state
   enter second control-c to exit

To confirm termination of the operation, press Ctrl-C a second time; press
any other key to continue the operation.

Currently, the maximum quota for a volume is 2 terabytes (2^41 bytes). Note
that this only affects the volume's quota; a volume may grow much larger if
the volume quota is disabled. However, volumes over 2 terabytes in size may
be impractical to move, and may have their size incorrectly reported by some
tools, such as L<fs_listquota(1)>.

=head1 OPTIONS

=over 4

=item B<-id> <I<volume name or ID>>

Specifies either the complete name or volume ID number of a read/write
volume.

=item B<-fromserver> <I<server name>>

Identifies the file server machine where the volume currently
resides. Provide the machine's IP address or its host name (either fully
qualified or using an unambiguous abbreviation). For details, see
L<vos(1)>.

=item B<-frompartition> <I<partition name>>

Names the partition where the volume currently resides. Provide the full
partition name (for, example, B</vicepa>) or one of the abbreviated forms
described in L<vos(1)>.

=item B<-toserver> <I<server name>>

Identifies the file server machine to which to move the volume.  Provide
the machine's IP address or its host name (either fully qualified or using
an unambiguous abbreviation). For details, see L<vos(1)>.

=item B<-topartition> <I<partition name>>

Names the partition to which to move the volume. Provide the full
partition name (for, example, B</vicepa>) or one of the abbreviated forms
described in L<vos(1)>.

=item B<-live>

Avoids making a temporary copy of the volume during the move. This is
useful if the partition is full, but the administrator needs to move
volumes to a another partition or server to free up disk space. The
caveat is that the volume is locked during the entire operation
instead of the short time that is needed to make the temporary clone.

=item B<-cell> <I<cell name>>

Names the cell in which to run the command. Do not combine this argument
with the B<-localauth> flag. For more details, see L<vos(1)>.

=item B<-noauth>

Assigns the unprivileged identity C<anonymous> to the issuer. Do not
combine this flag with the B<-localauth> flag. For more details, see
L<vos(1)>.

=item B<-localauth>

Constructs a server ticket using a key from the local
F</usr/afs/etc/KeyFile> file. The B<vos> command interpreter presents it
to the Volume Server and Volume Location Server during mutual
authentication. Do not combine this flag with the B<-cell> argument or
B<-noauth> flag. For more details, see L<vos(1)>.

=item B<-verbose>

Produces on the standard output stream a detailed trace of the command's
execution. If this argument is omitted, only warnings and error messages
appear.

=item B<-encrypt>

Encrypts the command so that the operation's results are not transmitted
across the network in clear text. This option is available in OpenAFS
versions 1.4.11 or later and 1.5.60 or later.

=item B<-noresolve>

Shows all servers as IP addresses instead of the DNS name. This is very
useful when the server address is registered as 127.0.0.1 or when dealing
with multi-homed servers. This option is available in OpenAFS
versions 1.4.8 or later and 1.5.35 or later.

=item B<-config> <I<configuration directory>>

Set the location of the configuration directory to be used. This defaults to
F</usr/vice/etc>, except if B<-localauth> is specified, in which case the
default is F</usr/afs/etc>. This option allows the use of alternative
configuration locations for testing purposes.

=item B<-help>

Prints the online help for this command. All other valid options are
ignored.

=back

=head1 EXAMPLES

The following example moves the volume C<user.smith> from the F</vicepb>
partition on the file server machine C<fs3.example.com> to the F</vicepg>
partition on the file server machine C<fs7.example.com>.

   % vos move -id user.smith -fromserver fs3.example.com -frompartition b \
       -toserver fs7.example.com -topartition g

=head1 PRIVILEGE REQUIRED

The issuer must be listed in the F</usr/afs/etc/UserList> file on the
machines specified with the B<-toserver> and B<-fromserver> arguments and
on each database server machine.  If the B<-localauth> flag is included,
the issuer must instead be logged on to a server machine as the local
superuser C<root>.

=head1 SEE ALSO

L<vos(1)>,
L<vos_addsite(1)>,
L<vos_backup(1)>,
L<vos_copy(1)>,
L<vos_release(1)>,
L<vos_listvol(1)>,
L<vos_remove(1)>

=head1 COPYRIGHT

IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.

This documentation is covered by the IBM Public License Version 1.0.  It was
converted from HTML to POD by software written by Chas Williams and Russ
Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
