2010 年 9 月の履歴(もしくは日誌)


2010 年 9 月

9 月 7 日

Time Machine と Time Capsule と drobo,そしてスパースバンドル・ディスクイメージ

Time Capsule で便利にバックアップしていたけど,MacBook に外付けハードディスクを足したらその分だけバックアップする容量が足りなくなりました.そして買ったばかりの外付けハードディスクがクラッシュ.デジタル写真データが消失!
写真データを外付けハードディスクに移動する直前のバックアップなどからデータをかき集めて,なんとかほとんどのデータは復元できました.

写真データは Apple Aperture を使って管理しています.Apertue のライブラリは MacBook 内蔵ハードディスクにあり,RAW データは外付けハードディスクを参照するっていう使い方でした.MacBook の内蔵ハードディスクの Aperture ライブラリにはプレビュー画像とかメタデータとかしかないわけです.元となる RAW データが格納された外付けハードディスクのクラッシュには精神的に大きなダメージを受けました.

さてはて,バックアップにはもっとでっかい容量のドライブが必要です.しかも足りなくなったらすぐ対処できるような.やっぱりそれなら drobo でしょう.

drobo はドライブベイが 4 つあって,もし容量が足りなくなったらドライブを足せとか交換しろって指示が出るすぐれもの.

drobo は実際に使える容量よりもずっと大きな論理容量を持つドライブとしてコンピュータにマウントされます.実際に使える容量の空きが少なくなると警告が出て,ドライブを足したり交換したりっていう仕組みです.

これは Time Machine だとちょっと問題.Mac OS X の標準のバックアップ機能である Time Machine は,バックアップ先のドライブが大きければ大きいなりに過去のバックアップをためてしまいます.バックアップ先のディスクの空き容量が少なくなったら古いバックアップから削除して行きます.

だから,Time Machine のバックアップ先に drobo を使う場合は何らかの方法でバックアップファイルの最大容量を制限したいのです.ぼくの場合は drobo の 4 ベイのうち 2 に 2TB の内蔵ハードディスクを挿してあり冗長性もあるので使えるのは 1.8 TB なのですが,Mac からは 16TB のドライブに見えています.だから Time Machine は 16TB くらいまでバックアップ取ろうとするんです.

だから Time Machine 側の設定でバックアップを 1.7 TB くらいに制限して,もっとバックアップ先の容量が必要になった時に,drobo の空きベイにディスクを足してバックアップ先の容量制限も変更するって事にしたい訳です.

で,Mac OS X 10.6.2 まではそれは簡単でした.が,しかし,Mac OS X 10.6.3 以降は Time Machine の動作が変わってしまって従来の方法ではうまく行きません.

Time Machine はネットワーク経由でバックアップする場合は Sparse Bundle Disk Image っていう仮想ディスクイメージを使うので,それの容量を指定して制限したいのです.ところが 10.6.3 以降はバックアップ先のディスクの空き容量を見て勝手に Sparse Bundle Disk Image の容量をリサイズしてぎりぎりいっぱい大きなサイズにしてしまいます.

で,最近これの問題を解決する方法がユーザの間では確立したようです.

10.6.3 以降で Sparse Bundle Disk Image を使って Time Machine でバックアップを取る場合,バックアップの容量制限をする場合は Sparse Bundle Disk Image の容量の設定をした後で,Sparse Bundle Disk Image の中の Info.plist ファイルの書き換えができないようにするのが有効なようです.

情報元
Enable time machine backup to network drive (DNS 323) « Ani's Tech Banters
http://anitechtalk.wordpress.com/2010/07/19/time-machine-dns323/

で,自分でも試してみてうまく行きました.以下は実際に行なった手順:

  • Time Machine を停止します.
  • ディスクユーティリティで Sparse Bundle Disk Image を作ります.hostoname が birdy なら birdy.sparsebundle っていうファイル名で作ります.
  • 手順が解説してあるサイトがあるのでそれを参考にしました.最初に 1GB のイメージを作ってあとからリサイズするのは必須のようです.
  • バックパップ先のネットワークディスクをマウントして,その中に birdy.sparsebundle をコピーします.
  • birdy.sparsebundle をポイントして control キーを押しながらマウスボタンをプレスして「パッケージ内容を表示」を選びます.
  • すると birdy.sparsebundle の中身がウィンドウで開くので,その中の Info.plist をマウスで選びます.
  • Info.plist を選んでから「ファイル」メニューの「情報を見る」を選びます.
  • 開いたウィンドウの一番したの「共有とアクセス権」のところのアクセス権を全部「読み出しのみ」に変更しちゃいます.
  • さらに同じウィンドウの上の方の「一般情報」のところの「ロック」にチェックを入れます.
  • 「"birdy.sparsebundle"の情報」のウィンドウを閉じて,さらに birdy.sparsebundle のウィンドウを閉じます.
  • Time Machine を設定します.

これで Info.plist が書き換えられなくなります.Time Machine が birdy.sparsebundle をリサイズしようとしたときに,Info.plist を書き換えられなくて失敗します.それによって,最初に設定したサイズが維持されるわけです.

メールや twitter で質問してもらえば答えられると思います.9/10 から 9/21 は旅行中なので無理ですが.

http://onohiroki.cycling.jp/tb/tb.cgi/weblog_d20100907n1 TrackBack