即時テープスクリプトの変更

即時テープスクリプトの変更

テープに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'

おすすめ記事