ネットワーク経由でファイルをバックアップする最良の方法が何であるかを知りたいです。
EMCストレージに接続されているVERITASクラスタを含むOracle 10iがインストールされているSolarisコンピュータがあります。
/data/oracle ディレクトリがEMCストレージにマウントされます。
私が望むのは、ネットワーク(ソフトリンクファイルを含む)を介して一部のバックアップシステムの/ data / oracleディレクトリ(70G)をバックアップすることです。コピーされたファイルの信頼性は非常に重要です。
私はこれを行うためのいくつかのアイデアを見つけて見つけました。
たとえば、最初のオプションはrsyncを使用することです。
rsync -WavH –progress /data/oracle $backup_server_ip:/Backup_dir
2番目のオプション:tarオプションを使用してファイルを転送すると、ファイルを転送して圧縮できます。
cd /directory_that_we_want_to_backup
tar cpf - . | bzip2 -c | ssh $backup_server_ip \
"cd /Backup_dir && bzip2 -d | tar xpf -"and so on
次のいずれかのオプションがより信頼性が高く、他の良いオプションがあるかどうかを提案する必要があります。
ベストアンサー1
Solarisの場合にのみ、「ZFS配送」を参照してください(Solaris 10アップデート2以降を想定)。
プロセスは最初にスナップショットを撮ってから別の場所に「送信する」ことです。たとえば、
zfs snapshot POOL/dataset@backup1
zfs send POOL/dataset@backup1 | ssh $USER@$HOST zfs receive $TARGETPOOL/$TARGETDATASET
上記の解決策は堅牢な信頼性を持っています。
rsyncは2番目に良いオプションですが、クロスプラットフォームという追加の利点を提供します。 rsyncはデフォルトでSolarisには付属していませんが、Solaris Free Wareなどのプラットフォームから簡単にインストールできます。
不要になったスナップショットをクリーンアップする必要があります。しばらく保管しておくことをお勧めします。増分ストリームの送信に使用できます。
増分ストリーミングを実行するための2番目(および後続)のバックアップは次のとおりです。
zfs snapshot POOL/dataset@backup2
zfs send -i backup1 POOL/dataset@backup2 | ssh $USER@$HOST zfs receive $TARGETPOOL/$TARGETDATASET
zfs destroy POOL/dataset@backup1
注:次に再び増えるように、前から最後のスナップショットを削除してください。
数百または数千のスナップショットがあると、問題が発生する可能性があります。まず、管理ユーティリティのパフォーマンスに深刻な影響を与えます。zfs list
次に、その下のデータが変更されると、スペースを占有し始めます(最初はディスクスペースを占有しません)。
rsyncにバンドルされているのは、cpioを使用することです(tarを使用する方法と似ています)。 cpioはtarよりも奇妙なファイルを処理します。特に、スパースファイルを処理し、可能であればハードリンクを再生成し、他のファイル形式を正しく処理します。
find /backup_directory | cpio -o | ssh $USER@$HOST cpio -idm /target_directory
cpio -o
=バックアップの作成(コピー)
cpio -i
=バックアップ(コピー)からの復元-dと-mは、それぞれディレクトリ構造を再作成し、権限/変更時間などを維持することです。
tarは誰もが好きなものです。なぜなら…まあ、そんな理由がないからです。通常のファイルしかないことがわかっている場合は、tarが正しく機能します。