logo

Manual Pages


Table of Contents

NAME

na_snapmirror - volume, and qtree mirroring

SYNOPSIS

snapmirror { on | off }

snapmirror status [ options ] [ volume | qtree ... ]

snapmirror initialize [ options ] destination

snapmirror update [ options ] destination

snapmirror quiesce destination

snapmirror resume destination

snapmirror break [ options ] destination

snapmirror resync [ options ] destination

snapmirror destinations [ option ] [ source ]

snapmirror release source destination

snapmirror { store | retrieve } volume tapedevices

snapmirror use destination tapedevices

snapmirror throttle <n> destination

snapmirror abort [ options ] destination ...

snapmirror migrate [ options ] source destination

DESCRIPTION

The snapmirror command is used to control SnapMirror, a method of mirroring volumes and qtrees. It allows the user to enable and disable scheduled and manual data transfers, request information about transfers, start the initializing data transfer, start an update of a mirror, temporarily pause updates to a mirror, break mirror relationships, resynchronize broken mirrors, list destination information, release child mirrors, store volume images to tape, retrieve volume images from tape, and abort ongoing transfers.

SnapMirror can be used to replicate volumes or qtrees. The processes and behaviors involved are slightly (and sometimes subtly) different between the various kinds of data mirroring.

The SnapMirror process is destination-driven. The snapmirror initialize command starts the first transfer which primes the destination with all the data on the source. Prior to the initial transfer, the destination must be ready to be overwritten with the data from the source; destination volumes must be restricted (see na_vol(1)), and destination qtrees must not yet exist.

For asynchronous mirrors, the destination periodically requests an update from the source, accepts a transfer of data, and writes those data to disk. These update transfers only include changes made on the source since the last transfer. The SnapMirror scheduler initiates these transfers automatically according to schedules in the snapmirror.conf file.

Synchronous mirrors will initially behave asynchronously, but will transition to synchronous mode at first opportunity. These mirrors may return to asynchronous mode on error (e.g. a network partition between the mirroring filers) or at the request of the user.

The snapmirror update command can be used to initiate individual transfers apart from the scheduled ones in snapmirror.conf.

After the initial transfer, the destination is available to clients, but in a read-only state. The status of a destination will show that it is snapmirrored (see na_aggr(1), na_vol(1), or na_qtree(1) for more details on displaying the destination state).

To use the destination for writing as well as reading, which is useful when a disaster makes the source unavailable or when you wish to use the destination as a test volume/qtree, you can end the SnapMirror relationship with the snapmirror break command. This command changes the destination's status from snapmirrored to broken-off, thus making it writable. The snapmirror resync command can change a former destination's status back to snapmirrored and will resynchronize its contents with the source. (When applied to a former source, snapmirror resync can turn it into a mirror of the former destination. In this way, the roles of source and destination can be reversed.)

A filer keeps track of all destinations, either direct mirrors or mirrors of mirrors, for each of its sources. This list can be displayed via the snapmirror destinations command. The snapmirror release command can be used to tell a filer that a certain direct mirror will no longer request updates.

To save network bandwidth, tape can be used to prime a new mirror volume instead of the snapmirror initialize command. The snapmirror store command dumps an image of the source to tape. The snapmirror retrieve command restores a volume image from tape and prepares the volume for update transfers over the network. If multiple tapes are used to create a volume image, the snapmirror use command is used to instruct a waiting store or retrieve process to write output or accept input to/from a new tape device. The store and retrieve commands cannot be used with qtrees.

The snapmirror migrate command is used on an existing source and destination pair to make the destination volume a writable "mimic" of the source. The destination assumes the NFS filehandles of the source, helping the filer administrator to avoid NFS re-mounting on the client side.

The snapmirror.conf file on the destination filer's root volume controls the configuration and scheduling of SnapMirror on the destination. See na_snapmirror.conf(5) for more details on configuration and scheduling of SnapMirror.

Access to a source is controlled with the snapmirror.access option on the source filer. See na_options(1) and na_protocolaccess (8) for information on setting the option.

(If the snapmirror.access option is set to "legacy", access is controlled by the snapmirror.allow file on the source filer's root volume. See na_snapmirror.allow(5) for more details.)

SnapMirror is a licensed service, and a license must be obtained before the snapmirror command can be used. SnapMirror must be licensed on both source and destination filers. See na_license(1) for more details.

SnapMirror is supported on regular vfilers, as well as the physical filer named vfiler0. Use vfiler context or vfiler run to issue snapmirror commands on a specific vfiler. See na_vfiler(1) for details on how to issue commands on vfilers. The use of SnapMirror on vfilers requires a MultiStore license.

When used on a vfiler, a few restrictions apply. The vfiler must be rooted on a volume and SnapMirror sources and destinations cannot be qtrees in shared volumes. Tape devices and Synchronous SnapMirror are not supported on vfilers. For a qtree SnapMirror, the vfiler must own the containing volume of the Qtree.

Each vfiler has its own /etc/snapmirror.conf file in its root volume. SnapMirror can be turned on or off on a vfiler independently. SnapMirror commands issued on a vfiler can only operate on volumes or qtrees it has exclusive ownership of.

For backward compatibility, the physical filer (vfiler0) can operate on all volumes and all qtrees, even if they are owned by vfilers. It is highly recommanded, however, that all storage units (volumes and qtrees) be mirrored from either vfiler0 or the hosting vfiler, not both. When vfiler storage units are mirrored via vfiler0, leave snapmirror off on the vfiler.

USAGE

The snapmirror command has many subcommands. Nearly every command takes a destination argument. This argument takes three different forms. The form used for a particular invocation depends on whether you're specifying a volume or a qtree.

Volumes are specified by their name:

         vol1

Qtrees are specified by their fully-qualified path:

         /vol/vol1/qtree

There is a special path that can be used to SnapMirror all the data in a volume which does not reside in a qtree. This path can only be used as a SnapMirror source, never a SnapMirror destination. The path is specified as:

         /vol/vol1/-

All commands which don't say otherwise can take any of these forms as an argument.

The snapmirror subcommands are:

on

Enables SnapMirror data transfers and turns on the SnapMirror scheduler. This command must be issued before initiating any SnapMirror data transfers with the initialize, update, resync, store, or retrieve subcommands. This command also turns on the SnapMirror scheduler, which initiates update transfers when the time matches one of the schedules in the snapmirror.conf file. This command must be issued on the source side for the filer to respond to update requests from destinations.

off

Aborts all active SnapMirror data transfers and disables the commands which initiate new transfers (initialize, update, resync, store, and retrieve), and turns the SnapMirror scheduler off.

The on/off state of SnapMirror persists through reboots, and is reflected by the snapmirror.enable option. This option can be set off and on, and doing so has the exact same effect as the snapmirror on or snapmirror off commands.

status [ -l | -t | -q ] [ volume | qtree ... ]

Reports status of all the SnapMirror relationships with a source and/or destination on this filer. This command also reports whether SnapMirror is on or off. If any volume or qtree arguments are given to the command, only the SnapMirror relationships with a matching source or destination will be reported. If the argument is invalid, there won't be any status in the output.

Without any options, the short form of each relationship's status is displayed. This shows the state of the local side of the relationship, whether a transfer is in progress (and if so, the progress of that transfer), and the mirror lag, i.e. the amount of time by which the mirror lags behind the source. This is a simple difference of the current time and the source-side timestamp of the last successful transfer. The lag time will always be at least as much as the duration of the last successful transfer, unless the clocks on the source and destination are not synchronized (in which case it could even be negative).

If the -l option is given, the output displays more detailed information for each SnapMirror relationship. If a * is displayed along with relationship status in the short form output of snapmirror status command, then extra special information about that relationship is available, which is visible only with -l option.

If the -t option is given, the output displays the relationships that are active. A relationship is considered as active if the source or destination is involved in:

1. data transfer to or from the network. 2. reading or writing to a tape device. 3. waiting for a tape change.
4. Performing local on-disk processing or cleanup.

If the -q option is given, the output displays the volumes and qtrees that are quiesced or quiescing. See the quiesce command, below, for what this means.

See the Examples section for more information on snapmirror status.

On a vfiler, the status command shows entries related to the vfiler only. On the physical filer, active transfer entries from all vfilers are displayed. Inactive transfers are only displayed on the relevant vfiler. The preferred way to get a comprehensive and more readable list of SnapMirror transfers is to run vfiler run * snapmirror status. It iterators through all vfilers and lists its transfers.

initialize [ -S source ] [ -k kilobytes ] [ -s src_snap ] [ -c create_dest_snap ] [ -w ] destination

Starts an initial transfer over the network. An initial transfer--either over the network or from tape--is required before update transfers can take place. The initialize command must be issued on the destination filer. If the destination is a volume, it must be restricted (see na_vol(1) for information on how to examine and restrict volumes). If the destination is a qtree, it must not already exist (see na_qtree(1) for information on how to list qtrees). If a qtree already exists, it must be renamed or removed (using an NFS or CIFS client), or snapmirror initialize to that qtree will not work.

If the snapmirror status command reports that an aborted initial transfer has a restart checkpoint, the initialize commmand will restart the transfer where it left off.

The -S option specifies a source filer and volume or qtree path, in a format similar to that of des_tination arguments. The source must match the entry for the destination in the snapmirror.conf file. If it doesn't match, the operation prints an error message and aborts. If the -S option is not set, the source used is the one specified by the entry for that destination in the snapmirror.conf file. If there is no such entry, the operation prints an error message and aborts.

The -k option sets the maximum speed at which data is transferred over the network in kilobytes per second. It is used to throttle disk, CPU, and network usage. This option merely sets a maximum value for the transfer speed; it does not guarantee that the transfer will go that fast. If this option is not set, the filer transmits data according to the kbs setting for this relationship in the snapmirror.conf file (see na_snapmirror.conf(5)). However, if this option is not set and there is no kbs setting for this relationship in the snapmirror.conf file, the filer transmits data as fast as it can.

The -c option only works for an initialize to a qtree. With this option, SnapMirror creates a snapshot named create_dest_snap on the destination after the initialize has successfully completed (so that it does not compete with any ongoing updates). SnapMirror does not lock or delete this snapshot. create_dest_snap cannot be hourly.x, nightly.x, or weekly.x, because these names are reserved for scheduled snapshots.

The -s option only works for an initialize to a qtree. It designates a snapshot named src_snap from which SnapMirror transfers the qtree, instead of creating a source snapshot and transferring the qtree from the new snapshot. This option is used to transfer a specific snapshot's contents; for example, it can transfer a snapshot that was taken while a database was in a stable, consistent state. SnapMirror does not lock or delete the src_snap. src_snap cannot be hourly.x, nightly.x, weekly.x, snapshot_for_backup.x or snapshot_for_volcopy.x.

The -w option causes the command not to return once the initial transfer starts. Instead, it will wait until the transfer completes (or fails), at which time it will print the completion status and then return.

update [ -S source ] [ -k kilobytes ] [ -s src_snap ] [ -c create_dest_snap ] [ -w ] destination

For asynchronous mirrors, an update is immediately started from the source to the destination to update the mirror with the contents of the source.

For synchronous mirrors, a snapshot is created on the source volume which becomes visible to clients of the destination volume.

The update command must be issued on the destination filer.

The -S option sets the source of the transfer, and works the same for update as it does for initialize.

The -k option sets the throttle, in kilobytes per second, of the transfer, and works the same for update as it does for initialize.

The -c option only works for an update to a qtree. With this option SnapMirror creates a snapshot named create_dest_snap on the destination after the update completes (so that it does not compete with any ongoing updates). SnapMirror does not lock or delete this snapshot. create_dest_snap cannot be hourly.x, nightly.x, or weekly.x, because these names are reserved for scheduled snapshots.

The -s option only works for an update to a qtree. It designates a snapshot named src_snap from which SnapMirror transfers the qtree, instead of creating a source snapshot and transferring the qtree from the new snapshot. This option is used to transfer a specific snapshot's contents; for example, it can transfer a snapshot that was taken while a database was in a stable, consistent state. SnapMirror does not lock or delete the src_snap. src_snap cannot be hourly.x, nightly.x, weekly.x, snapshot_for_backup.x or snapshot_for_volcopy.x.

The -w option causes the command not to return once the incremental transfer starts. Instead, it will wait until the transfer completes (or fails), at which time it will print the completion status and then return.

quiesce destination

Allows in-progress transfers to destination to complete after which new transfers are not allowed to start. Synchronous mirrors will be taken out of synchronous mode. Any further requests to update this volume or qtree will fail until the snapmirror resume command is applied to it.

This command has special meaning to qtree destinations. A qtree destination which is being modified by SnapMirror during a transfer will have changes present in it. These changes will not be exported to NFS or CIFS clients. However, if a snapshot is taken during this time, the snapshot will contain the transitioning contents of the qtree. quiesce will bring that qtree out of a transitioning state, by either finishing or undoing any changes a transfer has made. snapmirror status can report whether a qtree is quiesced or not. The quiesce process can take some time to complete while SnapMirror makes changes to the qtree's contents. Any snapshot taken while a qtree is quiesced will contain an image of that qtree which matches the contents exported to NFS and CIFS clients.

resume destination

Resumes transfers to destination. The snapmirror resume command can be used either to abort a snapmirror quiesce in progress or undo a previously completed snapmirror quiesce. The command restores the state of the destination from quiescing or quiesced to whatever it was prior to the quiesce operation.

break [ -f ] destination

Breaks a SnapMirror relationship by turning a snapmirrored destination into a normal read/write volume or qtree. This command must be issued on the destination filer.

The -f option forces a snapmirror break between snaplocked volume relationship without prompting for conformation.

This command does not modify the snapmirror.conf file. Any scheduled transfers to a broken mirror will fail.

For volumes, this command has the same effect as the vol options snapmirrored off command, and will remove the snapmirrored option from a volume. The fs_size_fixed volume option will remain on; it must be manually removed from the volume to reclaim any disk space that SnapMirror may have truncated for replication. (See the Options section and na_vol(1) for more information on these two volume options.)

A destination qtree must be quiesced before it can be broken.

resync [ -n ] [ -f ] [ -S source ] [ -k kilobytes ] [ -s src_snap ] [ -c create_dest_snap ] [ -w ] destination

Resynchronizes a broken-off destination to its former source, putting the destination in the snapmirrored state and making it ready for update transfers. The resync command must be issued on the destination filer.

The resync command can cause data loss on the destination. Because it is effectively making desti_nation a replica of the source, any edits made to the destination after the break will be undone.

For formerly mirrored volumes, the resync command effectively performs a SnapRestore (see na_vol(1)) on the destination to the newest snapshot which is common to both the source and the destination. In most cases, this is the last snapshot transferred from the source to the destination, but it can be any snapshot which is on both the source and destination due to SnapMirror replication. If new data has been written to the destination since the newest common snapshot was created, that data will be lost during the resync operation.

For formerly mirrored qtrees, SnapMirror restores data to the file system from the latest SnapMirrorcreated snapshot on the destination volume. Unlike the volume case, it requires this last snapshot in order to perform a resync.

The resync command initiates an update transfer after the SnapRestore or qtree data restoration completes.

The -n option reports what execution of the resync command would do, but does not execute the command.

The -f option forces the operation to proceed without prompting for confirmation.

The -S option sets the source of the transfer, and works the same for resync as it does for initialize.

The -k option sets the throttle, in kilobytes per second, of the transfer, and works the same for resync as it does for initialize.

The -c option only works for a resync to a qtree. With this option SnapMirror creates a snapshot named create_dest_snap on the destination after the resync transfer completes (so that it does not compete with any ongoing updates). SnapMirror does not lock or delete this snapshot. create_dest_snap cannot be hourly.x, nightly.x, or weekly.x, because these names are reserved for scheduled snapshots.

The -s option only works for a resync to a qtree. It designates a snapshot named src_snap from which SnapMirror transfers the qtree, instead of creating a source snapshot and transferring the qtree from the new snapshot. This option is used to transfer a specific snapshot's contents; for example, it can transfer a snapshot that was taken while a database was in a stable, consistent state. SnapMirror does not lock or delete the src_snap. src_snap cannot be hourly.x, nightly.x, weekly.x, snapshot_for_backup.x or snapshot_for_volcopy.x.

The -w option causes the command not to return once the resync transfer starts. Instead, it will wait until the transfer completes (or fails), at which time it will print the completion status and then return. This option has no effect if the -n option is also specified.

destinations [ -s ] [ source ]

Lists all of the currently known destinations for sources on this filer. For volumes, this command also lists any cascaded destinations; these are any volumes which are replicas of direct destinations. This command will list all such descendants it knows about.

The -s option includes in the listing names of snapshots retained on the source volume for each destination.

If a specific source is specified, only destinations for that volume will be listed. The source may either be a volume name or a qtree path.

release source { filer:volume | filer:qtree }

Tell SnapMirror that a certain direct mirror is no longer going to request updates.

If a certain destination is no longer going to request updates, you must tell SnapMirror so that it will no longer retain a snapshot for that destination. This command will remove snapshots that are no longer needed for replication to that destination, and can be used to clean up SnapMirror-created snapshots after snapmirror break is issued on the destination side.

The source argument is the source volume or qtree that the destination is to be released from. The destination argument should be either the destination filer and destination volume name or the destination filer and destination qtree path. You can use a line from the output of the snapmirror destinations command as the set of arguments to this command.

store [ -g geometry ] destination tapedevices

Dumps an image of the destination volume to the tapedevices specified. This is much like the snapmirror initialize command, but from a source volume to a tape device. You can use the tapes and the retrieve command to perform the initial, priming transfer on any restricted volume.

Using the -g option on a snapmirror store will optimize the tape for a particular destination traditional volume. The geometry argument is a string which describes the geometry of the intended destination traditional volume. It can be acquired by using the snapmirror retrieve -g command on that traditional volume. Using this option can increase snapmirror retrieve performance dramatically. The -g option is only effective with traditional volumes.

Only volumes can be stored to or retrieved from tape. Qtrees cannot be stored to or retrieved from tape.

The tapedevices field of this command is a commaseparated list of valid tape devices. See na_tape(4) for more information on tape device names.

Tape devices are not supported on vfilers. This command runs on the physical filer only.

retrieve { destination tapedevices | -h tapedevice | -g volume }

Restores the image on the tapedevices to the desti_nation specified. This is much like the snapmirror initialize command, but from a tape device to a destination volume. If destination is part of a SnapMirror relationship with the source volume from the store performed to create these tapes, the two volumes can be mirrored as if volume had been primed via an initial transfer over the network.

You can use the -h flag to read the header off of the single tapedevice specified. This will provide information on the tape source and index.

The -g option provides the volume geometry string for the specified volume. This string, when given to the snapmirror store -g command, will dramatically improve snapmirror retrieve performance to this volume.

The tapedevices field of this command is a commaseparated list of valid tape devices. See na_tape(4) for more information on tape device names.

This feature only works for volumes. Qtrees cannot be stored to or retrieved from tape.

Tape devices are not supported on vfilers. This command runs on the physical filer only.

use destination tapedevices

Continues a tape transfer to destination with the specified tapedevices.

If a store or retrieve operation runs out of tape, it will prompt the user to provide another tape. After another tape has been provided, the use command is invoked to tell the SnapMirror process where to find it.

The destination field is specified by filer:volume in the case of retrieve, and filer:tapedevices in the case of store.

The tapedevices field of this command is a commaseparated list of valid tape devices. See na_tape(4) for more information on tape device names.

Tape devices are not supported on vfilers. This command runs on the physical filer only.

throttle <n> destination

Modifies the throttle value for the snapmirror transfer to the destination with the specified value in kilobytes per second. This sets the maximum speed at which the data is trasfered over the network for the current transfer. A value of zero can be used to disable throttling.

The new value will be used only for the current transfer. The next scheduled transfer will use the kbs value specified in the snapmirror.conf file. If the value for the kbs option in the snapmirror.conf is changed while transfer is going on, then the new value will take effect within two minutes.

abort [ -h ] destination ...

Aborts currently executing transfers to all specified destinations. It may take a few minutes for a transfer to clean up and abort. This does not stop new updates from starting. If you are interested in stopping further updates use the snapmirror quiesce command.

Any transfer with a restart checkpoint (you can view this via the snapmirror status command) may be restartable; to clear out the restart checkpoint and force any subsequent transfer to start with a fresh snapshot on the source, you can use abort -h on the destination. The -h option specifies that this is a hard abort; the restart checkpoint will be cleared out in addition to the transfer being stopped.

The abort command can be invoked from either the source or the destination filer. However, the -h option is only effective on the destination filer. The option will be ignored if specified on the source filer.

migrate [ -n ] [ -f ] [ -k kilobytes ] [source_filer:]source_volume [destination_filer:]destina_tion_volume

snapmirror migrate is run on the filer which holds the source volume. It must be run on two volumes which are already the source and destination of a SnapMirror pair.

snapmirror migrate will transfer data and NFS filehandles from the source_volume to the destina_tion_filer's destination_volume (if no filer is specified, then migrate assumes the volume is local). If source_filer is specified, then the migrate destination will use that network interface to connect up to the source filer for the transfer of information.

The first thing migrate will do is check the source and destination sides for readiness. Then, it will stop NFS and CIFS service to the source. This will prevent changes to the source volume's data, which will make it appear to clients as though nothing has changed during the migration. It will run a regular SnapMirror transfer between the two volumes. At the end of the transfer, it will migrate the NFS filehandles, bring the source offline, and make the destination volume writable.

The -n flag will make a test run; that is, it will run all the pre-transfer checks, but stop short of transferring data. The -f flag will not prompt the user for confirmation. The -k flag will throttle the speed at which the transfer runs (at kilobytes kilobytes per second), in a manner similar to that used in the snapmirror update command.

CLUSTER CONSIDERATIONS

If one filer in a cluster failover pair goes down, any active transfers are aborted. The SnapMirror scheduler and services will continue for volumes on the downed filer. The configurations of the SnapMirror relationships are taken from the downed filer's snapmirror.access option or snapmirror.allow and snapmirror.conf files.

EXAMPLES

Here are a few examples of use of the snapmirror command:

The following example turns the scheduler on and off:

         toaster> snapmirror on
         toaster> snapmirror status
         Snapmirror is on.
         toaster> snapmirror off
         toaster> snapmirror status
         Snapmirror is off.
         toaster>

The following example presents the snapmirror status with transfers running. Two are idle destinations (both from fridge); one of these has a restart checkpoint, and could be restarted if the setup of the two volumes has not changed since the checkpoint was made. The transfer from vol1 to arc2 has just started, and is in the initial stages of transferring. The transfer from toaster to icebox is partially completed; here, we can see the number of megabytes transferred.

         toaster> snapmirror status
         Snapmirror is on.
         Source        Destination   State          Lag       Status
         fridge:home   toaster:arc1  Snapmirrored   22:09:58  Idle
         toaster:vol1  toaster:arc2  Snapmirrored   01:02:53  Transferring
         toaster:vol2  icebox:saved  Uninitialized  -         Transferring (128MB done)
         fridge:users  toaster:arc3  Snapmirrored   10:14:36  Idle with restart checkpoint (12MB done)
         toaster>

The following example presents detailed status for one of the above snapmirror relationships specified as argument to the command. It displays extra information about base snapshot, transfer type, error message, and last transfer, etc.

         toaster> snapmirror status -l arc1
         Snapmirror is on.

         Source:                 fridge:home
         Destination:            toaster:arc1
         Type:                   Volume
         Status:                 Idle
         Progress:      -
         State:                  Snapmirrored
         Lag:                    22:09:58
         Mirror Timestamp:       Wed Aug  8 16:53:04 GMT 2001
         Base Snapshot:          toaster(0001234567)_arc1.1
         Current Transfer Type:  -
         Current Transfer Error: -
         Contents:      Replica
         Last Transfer Type:     Initialize
         Last Transfer Size:     1120000 KB
         Last Transfer Duration: 00:03:47
         Last Transfer From: fridge:home

The following example shows how to get all the volumes and qtrees that are quiesced or quiescing on this filer with the status command.

         filer> snapmirror status -q
         Snapmirror is on.
         vol1 has quiesced/quiescing qtrees:
                 /vol/vol1/qt0 is quiesced
                 /vol/vol1/qt1 is quiescing
         vol2 is quiescing

The following example starts writing an image of vol1 on toaster to the tape on tape device rst0a and continues with the tape on rst1a. When the second tape is used up, the example shows how to resume the store using a new tape on rst0a.

         toaster> snapmirror store vol1 rst0a,rst1a
         snapmirror: Reference Snapshot: snapmirror_tape_5.17.100_21:47:28
         toaster>
         SNAPMIRROR: store to toaster:rst0a,rst1a has run out of tape.
         toaster> snapmirror use toaster:rst0a,rst1a rst0a
         toaster>
         Wed May 17 23:36:31 GMT [worker_thread:notice]: snapmirror: Store from volume 'vol1' to tape was successful (11 MB in 1:03 minutes, 3 tapes written).

The following example retrieves the header of the tape on tape device rst0a. It then retrieves the image of vol1 from the tape on tape device rst0a.

         toaster> snapmirror retrieve -h rst0a
         Tape Number:                    1
         WAFL Version:                   12
         BareMetal Version:              1
         Source Filer:                   toaster
         Source Volume:                  vol0
         Source Volume Capacity:         16MB
         Source Volume Used Size:        11MB
         Source Snapshot:                snapmirror_tape_5.17.100_21:47:28
         toaster>
         toaster> snapmirror retrieve vol8 rst0a
         SNAPMIRROR: retrieve from tape to toaster:vol8 has run out of tape.
         toaster> snapmirror use toaster:vol8 rst0a
         SNAPMIRROR: retrieve from tape to toaster:vol8 has run out of tape.
         toaster> snapmirror use toaster:vol8 rst0a
         toaster> snapmirror status
         Snapmirror is on.
         Source               Destination   State    Lag  Status
         toaster:rst1a,rst0a  toaster:dst1  Unknown  -    Transferring (17MB done)
         toaster>
         Wed May 17 23:54:29 GMT [worker_thread:notice]: snapmirror: Retrieve from tape to volume 'vol8' was successful (11 MB in 1:30 minutes).

The following example examines the status of all transfers, then aborts the transfers to volm1 and volm2, and checks the status again. To clear the restart checkpoint, snapmirror abort is invoked again.

         toaster> snapmirror status
         Snapmirror is on.
         Source        Destination    State          Lag       Status
         fridge:home   toaster:volm1  Uninitialized  -         Transferring (10GB done)
         fridge:mail   toaster:volm2  Snapmirrored   01:00:31  Transferring (4423MB done)
         toaster> snapmirror abort toaster:volm1 volm2
         toaster> snapmirror status
         Snapmirror is on.
         Source        Destination    State          Lag       Status
         fridge:home   toaster:volm1  Snapmirrored   00:01:25  Idle
         fridge:mail   toaster:volm2  Snapmirrored   01:03:11  Idle with restart checkpoint (7000MB done)
         toaster> snapmirror abort toaster:volm2
         toaster> snapmirror status
         Snapmirror is on.
         Source        Destination    State          Lag       Status
         fridge:home   toaster:volm1  Snapmirrored   00:02:35  Idle
         fridge:mail   toaster:volm2  Snapmirrored   01:04:21  Idle

The following example examines the status of all transfers, then aborts the transfers to volm1 and volm2 with the -h option and checks the status again. No restart checkpoint is saved.

         toaster> snapmirror status
         Snapmirror is on.
         Source        Destination    State          Lag       Status
         fridge:home   toaster:volm1  Uninitialized  -         Transferring (10GB done)
         fridge:mail   toaster:volm2  Snapmirrored   01:00:31  Transferring (4423MB done)
         toaster> snapmirror abort -h toaster:volm1 toaster:volm2
         toaster> snapmirror status
         Snapmirror is on.
         Source        Destination    State          Lag       Status
         fridge:home   toaster:volm1  Snapmirrored   00:02:35  Idle
         fridge:mail   toaster:volm2  Snapmirrored   01:04:21  Idle

Here is an example of the use of the snapmirror migrate command:

         toaster> snapmirror migrate home mirror
         negotiating with destination....

This SnapMirror migration will take local source volume home and complete a final transfer to destination toaster:mirror using the interface named toaster. After that, open NFS filehandles on the source will migrate to the destination and any NFS filehandles open on the destination will be made stale. Clients will only see the migrated NFS filehandles if the destination is reachable at the same IP addresss as the source. The migrate process will not take care of renaming or exporting the destination volume.

As a result of this process, the source volume home will be taken offline, and NFS service to this filer will be stopped during the transfer. CIFS service on the source volume will be terminated and CIFS will have to be set up on the destination.

         Are you sure you want to do this? yes
         nfs turned off on source filer
         performing final transfer from toaster:home to mirror....
         (monitor progress with "snapmirror status")
         transfer from toaster:home to mirror successful
         starting nfs filehandle migration from home to mirror
         source volume home brought offline
         source nfs filehandles invalidated
         destination toaster:mirror confirms migration
         migration complete
         toaster> vol status
                  Volume State   Status            Options
                    root online  normal            root, raidsize=14
                  mirror online  normal
                    home offline normal
         toaster> vol rename home temp
         home renamed to temp
         you may need to update /etc/exports
         toaster> vol rename mirror home
         mirror renamed to home
         you may need to update /etc/exports
         toaster> exportfs -a

NOTES

If a source volume is larger than the replica destination, the transfer is disallowed.

Notes on the snapmirror migrate command:

The migrate command is only a partial step of the process. It is intended to work when an administrator desires to move the data of one volume to another, possibly because they want to move to a new set of disks, or to a larger volume without adding disks.

We intend that migrate be run in as controlled an environment as possible. It is best if there are no dumps or SnapMirror transfers going on during the migration.

The clients may see stale filehandles or unresponsive NFS service while migrate is running. This is expected behavior. Once the destination volume is made writable, the clients will see the data as if nothing has happened.

migrate will not change exports or IP addresses; the new destination volume must be reachable in the same way as the source volume once was.

CIFS service will need to be restarted on the migrate destination.

OPTIONS

Here are SnapMirror-related options (see na_options(1), na_protocolaccess(8), na_snapmirror(5), and na_snapmirror.allow(5) for details on these options):

snapmirror.access
Controls SnapMirror access to a filer.

snapmirror.checkip.enable
Controls SnapMirror IP address checking using snapmirror.allow.

snapmirror.delayed_acks.enable
Controls a SnapMirror networking option.

replication.volume.transfer_limits
Controls increased stream counts. This option is provided to revert stream counts to legacy limits.

replication.volume.reserved_transfers
Guarantees that specified number of volume SnapMirror source/destination transfers always start. This option will reduce the maximum limit on all other transfers types and will be equivalent to maximum number of transfers possible.

snapmirror.enable
Turns SnapMirror on and off. SnapMirror can only be enabled on vfilers which are rooted on volumes.

snapmirror.log.enable
Turns SnapMirror logging on and off.

replication.volume.use_auto_resync
Turns auto resync functionality on and off for Synchronous SnapMirror relations. This option if enabled on Synchronous SnapMirror, destination will update from the source using the latest common base snapshot deleting all destination side snapshots newer than the common base snapshot.

Here are SnapMirror-related volume pseudo-options (see na_vol(1) for more details):

snapmirrored
Designates that the volume is read-only.

fs_size_fixed
Effectively truncates the filesystem on the destination volume to the size of the source.

Options snapmirror.access, snapmirror.checkip.enable, and snapmirror.enable can be manipulated independently on a per-vfiler basis.

FILES

/etc/snapmirror.allow
This file controls SnapMirror's access to a source filer. See na_snapmirror.allow(5), for details.

/etc/snapmirror.conf
This file controls SnapMirror schedules and relationships. See na_snapmirror.conf(5) for details.

/etc/log/snapmirror
This file logs SnapMirror activity. See na_snapmirror(5) for details.

SEE ALSO

  na_aggr(1)
  na_license(1)
  na_options(1)
  na_qtree(1)
  na_vol(1)
  na_tape(4)
  na_protocolaccess(8)
  na_snapmirror(5)
  na_snapmirror.allow(5)
  na_snapmirror.conf(5)


Table of Contents