バックアップを考える(1)
2015/04/12
バックアップが必要...それはわかっているけれど
  • 長いことPC等でデジタルデータを扱っていると、トラブルでデータが吹っ飛ぶことへの強い恐怖感があると思います。OSやアプリケーションは最悪再インストールすれば良いのですが、自分で作成した何らかのデータは取り戻しようがありませんから。そうは言うものの、データが増えるほど必要な作業なのに、面倒さも増えるので放置している方も多いのではないでしょうか。

  • 対応としてはRAIDを組む(5だと大変だから1かな?)のが最初に浮かぶかと思います。これならば常にバックアップされていて、仮にディスクが飛んだとしてもデータは保持されるでしょう。しかし...マザーボードやドータボードをRAID対応にして、HDDも同サイズ増設となると、やはりお金がかかりますよね。

  • 実際のところ画像や動画データを大量に持っていない普通のケースでは、ユーザ作成データはHDDに置かれているデータ容量の半分程度ではないでしょうか。とすれば、容量半分程度の使い古しHDDを持ってくれば、バックアップ先のHDDとしては事足りるでしょう。
間隔の短すぎるバックアップは諸刃の剣
  • RAIDはお金が掛かるのでいかがなものかと先に書いたわけですが、この理由であれば「大丈夫。俺太っ腹。だからRAID」という方もいるかと思います。しかし、RAIDでは防げないデータ消失も多くあります。一例は「やらかしてしまう僕ら」です。それは「あっ消しちゃった」というものや、深刻な気の動転から「滅べっ! 滅べっ! 滅べっ! 何もかも無くなってしまえーっ!」といった感じのものまで様々ですね。

  • RAIDの場合常にバックアップを取っているようなものなので、機器障害のようなトラブルには強い反面、OS/ソフトウェア障害/人為的ミス等もデータ操作とみなして直ちに反映してしまいます。望んでいないデータ操作も反映してしまう...つまりバックアップは多少タイムラグのあった方が扱いやすいのです。これによりバックアップの間隔は「データセットの節目がどの程度の間隔で作成されるか」を軸にすべきだと考えられます。
別のHDDやストレージにバックアップする
  • 最初はお金が無いからという理由で選んだ、使い古しのHDDにバックアップするというのも、案外悪くないと思え始めてきたところで、具体的な方法を考えてみます。バックアップ先は古いHDDでも良いし、NotePC等のように内臓させるのが難しければ、USB/SATA経由の何らかのストレージでも良いでしょう。このとき気になるのは、設定期間毎のバックアップをいかにシンプルにできるかですね。

  • ここではClient OSをWindows系に絞りますが、OSに付いているコマンドやツールであれば、Windows XPではxcopy。Windows Vista以降ではrobocopyを使うことができます。具体例は以下を参照下さい。尚下記枠内のキャレット(^)はDOSバッチファイルのエスケープ文字を意味しています。本当は長いコマンドラインを改行表記しています。
    robocopy実行方法
    
      robocopy ^
        C:\data ^                          ←バックアップ元(指定ミスるとひどいことに)
        D:\backup\data ^                   ←バックアップ先(指定ミスるとえらいことに)
        /MIR ^                             ←ミラーリング動作指定
        /R:0 /W:0 ^                        ←アクセス失敗時は次のファイルへ(フリーズ回避)
        /XO ^                              ←バックアップ先の古いファイルは消す
        /XD "System Volume Information" ^  ←特殊ファイルのコピー回避(1)
            "$RECYCLE.BIN" ^               ← 〃          (2)
            "RECYCLER" ^                   ← 〃          (3)
            "Recycled" ^                   ← 〃          (4)
        /LOG:C:\Log\BackUp.log /NP         ←実行ログファイル指定。/NPは進行状況非表示。

  • 上記のリストにて、下線部を実行環境に合わせて変更すれば大体使えると思います。/XDオプションで指定する文字列(特殊Dir,File)は固定で問題ありません。 言うまでもありませんが、1回目はかなり時間かかります。2回目以降は差分バックアップになるので、更新データ量に依存しますが、コーヒータイムに実行すれば終わる位の感覚です。

  • ちなみにバックアップ先には、他のWindowsマシン上のディスク(\\マシン名\ディレクトリ)や、ネットワークドライブ(Sambaも含む)を指定することもできます。また上記のrobocopyコマンドの例では「バッチファイルでの記述」を意識していますが、実行内容をバッチファイル化してタスクスケジューラに登録すれば毎週/毎月等の定期実行が可能です。robocopyは動作も軽いため、バックグラウンドで実行されてもほとんど気になりません。
複数台のPCがあるときは
  • ここではClient OSとしては多数派であろうWindows系を考慮して話をしていますが、MACやLinux等含めて他の種類のOSがある場合や、そもそもPCの台数が多く全てにストレージを接続するのは面倒なケースもあります。この場合は恐らく「ヘビーユーザー≒LANを構築している」と思いますので、ネットワーク経由で、あるマシンへバックアップデータを送るのが良いと考えます。

  • 具体的には「rsync」を使用したバックアップになりますが、これについては次回説明したいと思います。
Copyright(C) 2015 Altmo
本HPについて