Metadata Mirroring

Warning

Mirroring is not a replacement for backups. If files are accidentally deleted or overwritten by a user or process, mirroring won’t help you to bring the old file back. So you are still responsible to do regular backups of your important bits.

Activating Metadata Mirroring

After metadata server buddy groups have been defined as described under Management of Mirror Buddy Groups, metadata mirroring can be activated on the file system.

Warning

When applying the beegfs-ctl --mirrormd command, no clients may be mounted. This can be achieved by stopping the beegfs-client service beforehand, and starting it again after beegfs-ctl --mirrormd was successfully performed. In addition, please restart the beegfs-meta service on all nodes afterward.

To activate metadata mirroring, use the beegfs-ctl tool:

$ beegfs-ctl --mirrormd

In order to synchronize all information across the various components of BeeGFS correctly, the clients can not be mounted during this process, and the metadata servers must be restarted afterwards.

The full series of steps in an already running system is: stop all clients, execute beegfs-ctl --mirrormd, restart all metadata servers, then restart all clients.

Please see the help of beegfs-ctl for more information on available parameters:

$ beegfs-ctl --mirrormd --help

Running this command will enable metadata mirroring for the root directory of the BeeGFS, as well as all the files contained in it. Note that existing directories except for the root directory will not be mirrored automatically. Please check Migrating Existing Metadata to find out how to mirror existing directories.

New files and directories created inside a directory with active metadata mirroring will also have metadata mirroring activated. There might be situations where it is desirable to deactivate metadata mirroring for part of the file systems. This gives a slight performance boost, but the data will not be preserved in the event of a server failure. A directory without metadata mirroring can be created using beegfs-ctl:

$ beegfs-ctl --createdir --nomirror <name>

For information about additional command line parameters, please see the builtin help beegfs-ctl --createdir --help

Directories and files created inside a directory without metadata mirroring will have metadata mirroring disabled.

Migrating Existing Metadata

If a file is moved into a directory with active metadata mirroring, it will have its metadata mirrored. On the other hand, directories will not automatically be mirrored when moved. For a directory to be mirrored, it is therefore necessary to freshly create a directory inside a mirrored directory. The easiest way to enable mirroring for a whole directory tree is to do a recursive copy:

$ cp -a <directory> <mirrored-dir>

This will also copy the file contents, therefore it is possible to use it for enabling metadata and storage mirroring at the same time.