テープに17TBを書く必要があります。
ssh some_host 'tar -cz /' | dd bs=20b of=/dev/tape
もちろん、17Tbは1つのテープに収まらず、「スペースなし」エラーが発生した場合は自動的に置き換える必要があります。ロボットチェンジャーがあり、「mtx next」がうまく機能します。テープが変更されたときに記録するタグも作成する必要があるため、このイベントのフックスクリプトを作成することをお勧めします。
「tar」には「テープスクリプトの変更」機能がありますが、他のホストでtarを実行しています。
さらに、17TBはローカルホストにコピーできません。 sshfsはオプションではなく悪いです。そして、巨大なバックアップソリューションを提供しないでください。
私にとって必要なのは、「スペースなし」エラーに対していくつかのスクリプトを実行してから続行できるddなどのパイプラインツールです。テープドライブには特定の値が必要なため、ブロックサイズを指定することも重要です。
答え1
設置可能な場合平均時間テープドライブを搭載したシステムでは、ネットワーク経由でドライブにtarアクセス権を付与できます。デフォルトでは、rmtはtar
このプロトコルを使用してrsh
テープサーバー上で実行されますが、GNU tarがある場合は--rsh-command='ssh tapeserver /usr/sbin/rmt'
オプションを提供できます。
LTOテープがある場合、ブロック要素20はテープストリーミングを維持するには小さすぎます。 LTO4では126を使用しました。ただし、一部のRMT実装ではブロック転送サイズを20に制限するため、@schilyの実装を検討することをお勧めします。平均時間。
ご意見に
rmtは良い選択ですが、どのように時間を割り当てるのですか?バックアップする必要があるサーバーが20台あります。 RMTを使用するようにキューに追加するにはどうすればよいですか?
各サーバーのバックアップコマンドをシェルスクリプトにパッケージ化できる場合は、順次処理を保証できる柔軟なバッチキューシステムがあるかもしれませんが、一時的なことは何も知らず、あなたが望んでいないことを知っています。ここには多くの複雑さがあります。
まず、すべてのサーバーにSSHで接続できるシステムで次のことを試すことができます。
#!/bin/sh
lock=/var/run/doalldumps.lock
status=/var/run/doalldumps.status
for s in $(cat ~/servers)
do
(
flock -e 9
echo started $s at $(date) > $status
ssh $s -n command-to-do-backups
echo finished $s at $(date) > $status
) 9> $lock
done
あるいは、テープドライブへのアクセスをシリアル化する簡単な方法は、flock
テープドライブを使用してサーバー上のファイルをロックすることです。 tar--rsh-command
オプションと一緒に使用できます。
tar ... --rsh-command='ssh tapeserver flock -e /var/run/tape.lock /usr/sbin/rmt'