AppleInsider: Mac OS X Leopard に向かって: Time Machine [Page 3]

Road to Mac OS X Leopard: Time Machine [Page 3]

By Prince McLean
Published: Friday, October 12, 2007 10:00 AM EST

ハードリンクとソフトリンク
ソフトリンクは理解しやすく、ユーザにとって使いやすいものだ。ファイルのエイリアスを作成すれば、保存は別の場所にされるが、そのエイリアスはそのターゲットができることなら何でもできる。 マルチリンクファイルは、もう少し複雑なアイデアだ。というのも、デスクトップという全体的な比喩に馴染まないからだ。 Macマルチリンクは、データまたはディレクトリにポイントする「ハードリンク」レコードだ。 エイリアスのように他のファイルにポイントするだけでなく、そのファイルと同じインスタンスでもある。 ファイルにハードリンクを作成しそのファイルに変更を加えると、その「前のファイル」も変更される。なぜなら両者は同じファイルだからだ。それを削除しても、ファイルは消えない。それは最後のハードリンクが削除されない限りそこに残り続ける。 ファイルやフォルダを視覚化する際に一般的に使う便利な物理的な比喩とは馴染まないものなので、量子力学のようにややこしい。

Leopard Time Machine
「ファイル」として見えるのは、実はディレクトリ内のハードリンクで参照されているディスク上にある
データのパッチワークだ。このハードリンクを削除すると、ファイルが「削除」される。
ただし、ファイルは、上書きされるまでディスク上にリンクされていないファイルとして依然として存在する。
あらゆるファイルシステム上の通常ファイルは、ひとつのハードリンクとして機能する。 ファイルを削除すると、実際にはファイルをディスクから消しているのではなく、それを格納しているフォルダからハードリンクを削除しているだけで、ドライブのリンクされておらず管理されていない領域へと消えていくだけなのだ。 「復元」ユーティリティは、リンクされていないファイルを探しそれを復元するが、これができるのはシステムがこうしたリンクされていないファイルを上書きしていない場合に限られる。ただし、ディスクはいつ何時でも上書きをしかねない。というのも、リンクされていないファイルによって消費されているディスクスペースは、早晩再利用されるためだ。

Leopard Time Machine
ソフトリンクまたはエイリアスは、もう一つのハードリンクされたファイル (左) のパスまたはファイル ID に
ポイントしているファイルのことだ。そのターゲットを削除すると、それは何も実用的なことはできなくなる (右)。
同一ファイルへの複数ハードリンクをサポートしているファイルシステムは、各ハードリンクが作成される度にカウントを追跡する。 あるデータファイルへの各ハードリンクは、そのファイルの並行・共有インスタンスのように機能する。複数のハードリンクを持つファイルを割く処した場合、削除されて消え失せてしまうわけではない。 替わりに、それにポイントしている最後のハードリンクが削除されるまでその場に残り続けるのだ。 言い換えると、あるファイルへのハードリンクを作成してオリジナルを削除した場合、新しいハードリンクとそのファイルデータはそのまま残されるわけだ。 対照的に、ファイルのソフトリンクやエイリアスを作成してそのオリジナルを削除した場合、エイリアスは削除された、もう存在しないファイルが元あった場所をポイントし続けるだけだ。 のこされたエイリアスは機能できず、それがポイントしていたファイルのデータはもう利用できない。

Leopard Time Machine
マルチリンクされたファイルは複数尾ハードリンクを持っている (左)。ひとつのハードリンクを削除しても、
残りのハードリンクがそのファイルとして「存在」し続ける (右)。

Time Machine のマルチリンク
ハードリンクはそのため、ある意味ではゴーストのように機能し、ある意味ではクローンのように機能する。 エイリアスと同じく、新しいハードリンクはディスク上で新たにスペースを消費することなく既存のファイルへのレファレンスとして機能できる。 ただし、ハードリンクを削除しても、神話に出てくるヒュドラの首を切り落とすようなものなのだ。どういうことかというと、本体はそのまま残り、そこに新しいハードリンクが作成されることがあるのだ。こうして、すべてのハードリンクを追跡してすべてを切り落とさない限りその怪物を削除することができないのだ。 この複雑なアイデアは、ユーザスペースには馴染まないが、ある目的においては非常に便利だ。 そのひとつは Time Machine に関連している。
Apple は実のところ、Time Machine を主にサポートするために HFS+ にマルチリンクを実装した。 他の UnixLinux ディストリビューションとは違い、Mac OS Xマルチリンクはファイルとディレクトリの両方へのハードリンクをサポートしている。 ディレクトリに複数のハードリンクを作成するのは、Unix では公式の POSIX 仕様で定められているが、ディレクトリに対して複数のハードリンクを利用するのは危険なまでに強力なのでサポートされることはほとんどない。 子ディクトリがその親にリンクされていると、無限ループとファイルシステム崩壊を引き起しかねないディレクトリサイクルを作成してしまうからだ。 ファイルシステムユーティリティもまた複数のリンクが貼られたファイルを処理する準備が整っていない場合が大半だ。 Time Machine では、マルチリンクは特定のコントロールされた文脈でのみ用いられ、こうしたタイプの問題を回避されている。
Time Machine は、通常ファイルとして最初のフルバックアップを行う。 Time Machine が利用するドライブを手動でマウントして、その内容を読み出すこともできる。それは単に、使っているコンピュータの名前に続いてフォルダ名の中に、タイムスタンプを名前にしたフォルダがひとつ入っており、その中にすべてのファイルが詰め込まれているだけだ。 毎時間毎に Time Machine はもう一つべつのフルバックアップのように見えるものを作成するが、新しいファイルの固まりは 2 倍のスペースを占めるわけではない。 替わりに、Time Machine はマルチリンクという象徴的な世界へと入り込み、ほとんどすべてのものが実体のないクローンであるパラレルワールドを作成する。 変更されたファイルだけが新しく、その他のものすべてはすでにバックアップされたデータへの 2 時的なハードリンクだ。このマルチリンクの素敵なところは、オリジナルのファイルが吹き飛ばされても、そのファイルがあった場所に新しいハードリンク群が存在するために、そのファイルは依然として存在し続ける点だ。

Leopard Time Machine
Time Machine はまず通常のフルバックアップを行い (左)、その後マルチリンクを利用して追加バックアップを行う (右)。
そのため、新しいファイルだけがスペースを占めることになる。マルチリンクされたファイルは、最初のフルバックアップから
削除されても生き残る。なぜなら、そのファイルはハードリンクされており、単なるエイリアスではないからだ。
ハードリンクを利用することで Time Machine は、それほど大したスペースを占めることなく頻繁にバックアップを行えるのだ。 その他の利点として、ユーザは直接ファイルをブラウズして、バックアップに付けられている各日付および時間に対して完全なファイルシステムを目にできるのだ。 各フォルダは通常ファイルの完全なバックアップとして表示され、ある意味ではそうだ。 こうした完全なバックアップファイルは、あたかも同じ体を共有しながらパラレルワールドに済んでいるかのように、ディスク上の同じスペースを共有しているだけなのだ。 ハードリンクは、技術的な知識を持たないユーザにとてはあまりに複雑で危険でさえあるので、Apple は Time Machine の内部作業までは明らかにせず、Finder ではハードリンクを一切作成できないようになっている。

Snapshots と Windows の Shadow Copy
Time Machine はよく Microsoft の Shadow Copy (または Volume Snapshot Service) と比較される。というのも、両システムともにファイルバックアップに関係しているからだ。 実際には、両者はぜんぜん似てはいない。 Microsoft はバックグランドで動作する Shadow Copy サービスを利用して同じディスクにファイルを複製している。 これらシャドウコピーは、ある時点のファイルの「スナップショット」を記録し、ユーザが Previous Versions (ファイルプロパティに表示される) を使ってアクセスできるようにしたり、外部のネットワークバックアップシステムへと転送できるようにする。 これら「シャドウコピー」をバックアップするのは、ユーザの使用中にロックされているかもしれないライブファイルをバックアップしようとして、外部のバックアップシステムが問題に遭遇することを避けるためだけのことだ。
Shadow Copy が関連するデータバックアップ機能は、Windows マシーンがサーバーバックアップを備えた環境で実行されている場合に限られる。 Shadow Copy そのものは、シャドウコピーサービスによって得られた重複ファイルのリストを表示できるものの、バックアップシステムではない。 重複バックアップシステムがなければ、Previous Versions はファイルのローカルシャドウを表示するだけだ。 同プログラムは、安全に保管できるように外部ディスクにファイルをコピーするわけではないし、日付や検索を使ってユーザがファイルシステムからそのシャドウコピーをブラウズできるわけでもない。 Shadow Copy はまた、ユーザが簡単に扱えるバックアップシステムでもなく (またそのようにも想定されていない)、ここが Time Machine が際立つところだ。
Windows VistaMicrosoft は、Shadow Copy を System Restore に組み込んでおり、ユーザが使用している PC 全体を時間軸で過去の状態へとロールバックできるようにしている。 これもまたバックアップシステムではない。これはシステムワイドな取り消し (undo) だ。 System Restore は、ソフトウェアや Windows ソフトウェアアップデート、署名のないハードウェアドライバのインストール、あるいはロールバックが必要な問題が引き起した他のイベントによって起こった問題の取り消しを中心にしている。 このプログラムでは、過去にさかのぼって無くなった何かを探すことはできず、過去のチェックポイントに時間を戻して、その時点からの時間経過を捨ててしまうだけのことだ。 System Restore は、その機能、その機能の実現方法、その存在理由においていかなる意味においても Time Machine とは関係ない。

ページ 4: Time Machine の可愛い仮面、そして将来にむかってバックアップ。

次のページへ 次のページへ前のページに戻る 前のページに戻る