連載
» 2009年12月25日 00時00分 公開

小山博史のJavaを楽しむ(13):Subversionならできる! NetBook最強バックアップ術 (2/5)

[小山博史,株式会社ガリレオ]

データの同期といっても方法はイロイロ    

 こうして、2台のパソコンを使っていると、データを同期させて有効に活用したくなります。その方法は、以下のようにさまざまです。

  1. システムそのものをまったく同じにする
  2. 同じアプリケーションを使う
  3. データだけを同期させる

システムそのものをまったく同じにする

 2台とも同じOSを使っていると、システムそのものをまったく同じにして連携させたくなりますが、高性能なデスクトップマシンと性能が低いNetBookでは、システムそのものをまったく同じにするというのは難しいでしょう。

 高性能なデスクトップマシンには、コンピュータリソースをたくさん使用するサーバソフトウェアや高性能なアプリケーションをインストールして動作させるのに対して、NetBookにはWebブラウザやメーラを中心に、コンピュータリソースをあまり必要としない軽量なソフトウェアをインストールして使うことになるからです。

同じアプリケーションを使う

 システムをまったく同じにするのは難しいとなると、両方で動作させるアプリケーションを選択して、それらを両方のマシンへインストールして使うことになります。この場合は、マシン2台分のアプリケーションを用意したり、そのアプリケーションのセキュリティアップデートをする必要があります。バージョンを合わせたり、導入するプラグインも合わせる必要もあるかもしれません。

 アプリケーションだけでなく、データも同期させるためには、ファイルをコピーしたり、削除したりする必要があります。こういった作業には、手間が掛かりますから、それなりのコスト/やる気が必要です。

 これを解決するために、USBメモリにインストールして使うアプリケーションもあります。これらを使えば、マシンが複数台あっても、ソフトウェアのメンテナンスは統一的にできます。また、アプリケーションが使うデータもUSBメモリへ入れて移動できるので、非常に便利です。

 ただし、同時にコンピュータは1台しか使えないですし、「アプリケーションを稼働させるマシンを切り替えるのに手間が掛かる」という問題も出てきます。USBメモリの容量制限が気になる場合もあるでしょうし、破損した場合にも問題となります。とはいえ、こういった問題は、両方のマシンへ同じアプリケーションをインストールする方法で掛かるコストとのトレードオフなので、どちらを選ぶかは、人によるでしょう。

図3 USBメモリで同期 図3 USBメモリで同期

データだけを同期させる

 2台のマシンを同時に使いたい場合には、両方のマシンへ同じアプリケーションをインストールする方法を取ることになるので、この場合は、データを同期させる必要があります。データの同期方法にはいくつか方法があり、次の4パターンがすぐに思い付くはずです。

  1. ファイルコピー
  2. 同期ソフトウェアの使用
  3. バックアップしてリストア
  4. バージョン管理システムの利用

   ファイルコピー

 ファイルコピーの方法は単純ですが、こまめに実施していないと、最新版はどちらのマシンにあるものなのか、分からなくなります。また、対象ファイルが増えてくると、大量コピーが必要になり時間がかかるようになってしまいます。

   同期ソフトウェアの使用

 同期ソフトウェアは、基本的にはファイルコピーをするのですが、ファイルのタイムスタンプを比較したり、サイズを比較したりして、対象ファイルの差分を判定して自動で2台のマシンにあるデータを同じものにします。ただし、ファイルの変更履歴などは残らない場合があるので、その場合は、別途バックアップが必要になります。

   バックアップしてリストア

 ちなみに、どうせ「バックアップが必要だ」となると、デスクトップマシンとNetBookでデータを同期するときには、「最新版の方をバックアップしてから、もう片方へ持っていって、それをリストアすればよい」ことになります。しかし、対象ファイルが増えてくると、大量のデータを対象とする必要が出てくるため、同期作業に時間がかかるようになってしまいます。

 同期ソフトウェアで、差分だけを対象とすることで、時間が短縮できるのですが、バックアップも含めて効率良く実施するのは、それなりに作業時間が必要です。とはいえ、世の中には差分バックアップを取るツールもあるので、それを使えば、比較的効率よくバックアップが取れます。

図4 母艦をバックアップ 図4 母艦をバックアップ

   バージョン管理システムの利用

 最後に、バージョン管理システムです。これは、基本的に差分を「リポジトリ」という特別な領域にバージョンを付けて記録していくシステムです。特定のバージョンのものを取り出せる優れものなので、「ある時期のあるデータを取り出す」ことも可能です。

 2台のマシンで利用する共通のリポジトリを用意して、各マシンが、そこにデータを出し入れするだけで、簡単に同期が取れます。最新版データを持つマシンからリポジトリへデータを入れるときは、リポジトリ内のデータとの差分だけが転送されます。

 また、最新版データをリポジトリから取り出すときも、既存データとリポジトリ内のデータとの差分だけが転送されるので、効率よく同期が取れます。しかも、ファイルのバージョンが管理されているので、バックアップと同等のものがリポジトリに残ります

 ここまでの話から、2台のマシンがあってデータ同期をしていれば、2台のマシンが同時に壊れない限り、バックアップが必要になることはなさそうです。しかも、データ同期にバージョン管理システムを使えば、リポジトリが壊れない限り、昔のデータを取り出したいという場合に必要なバックアップを別途用意する必要もなさそうです。

図5 バージョン管理システムだと、データ同期とバックアップが同時に! 図5 バージョン管理システムだと、データ同期とバックアップが同時に!

 つまり、バージョン管理システムを使うと、データ同期とバックアップが同時に行えるので、これを使わない手はないでしょう。

Subversion+Linux+仮想マシン=最強バックアップ

 ということで、最強のバックアップ方法として、筆者はバージョン管理システムの利用を推奨します。バージョン管理システムはいろいろありますが、筆者はSubversionを使っていますので、ここではSubversionについて説明をします。

Linuxマシンを1台用意して、それを「リポジトリ専用マシン」として稼働させる

 では、このシステムはどこに用意するのがいいのでしょうか。単純なのは、Linuxマシンを1台用意して、それを「リポジトリ専用マシン」として稼働させるという方法です。

 ネットワークにつながる必要がありますが、最近はネットワーク機能は普通に付いているので問題ないでしょう。3万円ぐらいの低価格なマシンを購入して、そこへLinuxをフルインストールして利用すればいいでしょう。Linuxの使い方に慣れていないと、ちょっと苦労するかもしれませんが、一度Subversionの環境を構築してしまえば、これまでのバックアップや同期についての悩みがほとんどなくなりますから、その作業をする価値はあります。

お金を掛けたくない場合は仮想マシンを使う

 マシンを1台用意して、リポジトリ専用マシンとするのは、分かりやすくていいのですが、それなりの値段が掛かります。ですから、躊躇してしまう人もいるでしょう。そんな人には、もう1つ良い方法があります。それは、仮想マシンを使う方法です。高性能なデスクトップマシンであれば、仮想マシンを1台常駐稼働させながら、本来の作業に使うことも可能でしょう。

図6 Subversion+Linux+仮想マシン=最強バックアップ 図6 Subversion+Linux+仮想マシン=最強バックアップ

 仮想マシンとしては、「VirtualBox」「VMware」「VirtualPC」などいろいろとあります。それぞれ特徴がありますから、好きなものを使うといいでしょう。

仮想マシンをそのままバックアップすることが、簡単にできる

 仮想マシンを使うと、もう1つ良いことがあります。仮想マシンをそのままバックアップすることが、簡単にできるのです。デスクトップマシンにUSBのHDDなどを接続して、そこへ仮想マシンのバックアップを取れば、Subversionリポジトリのバックアップを取っているのと同じです。

 もちろん、Subversionリポジトリをアーカイブしたものを取るだけでも十分なのですが、「何かあったときに環境を再構築してリポジトリを使えるようにする」のと、「バックアップから仮想マシンを取り出して稼働させる」のとでは、後者の方が圧倒的に簡単です。

 Subversionの詳細は、以下の記事も参考にしてください。次のページでは、実際に環境を構築し始めます。

Subversionで簡単・確実にファイルを構成管理
エンジニアがお薦めする 現場で使えるツール10選(4) ソースコード管理で有名なSubversionは、ファイルのバージョン管理や変更管理もできる便利なツールだ
自分戦略研究所 > スキル創造研究室 2009/8/24

SubversionとTracでファイル管理の“迷宮”から脱出
ユカイ、ツーカイ、カイハツ環境!(2) ユカイ、ツーカイ、カイハツ環境!(2) 品質や生産性の低下を招くファイル管理の“迷宮”。この問題を解消するにはSubversionとEclipseプラグインSubversiveが効果的です
Java Solution」フォーラム 2008/11/6

Subversionを利用したイケてる.NET開発
連載:オープンソースで始めるバージョン管理(1) バージョン管理ソフトって高価だし、何だか面倒くさい……。そんな.NET開発者はまずはオープンソース・ソフトを試してみよう
Insider.NET」フォーラム 2008/6/24

Subversionによるバージョン管理
Apache 2.0でWebDAV(後編) DeltaVがRFCとしてリリースされ、WebDAVのバージョン管理機能も足元か固まった。DeltaVの実装である「Subversion」を導入しよう
Linux Square」フォーラム 2002/7/13

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。