iPhotoのライブラリファイルをNASにコピーする際の速度が遅い件

気に入ったらシェアしてくださいね

突然ですが、以前のエントリで紹介したIO DATA製のNASを廃止し、新たにNASを組みました。理由は非常にクリア、「遅いから」。
あまりの遅さに耐え切れなくなり、結局iTunesデータの管理をAirmac Extreme (802.11acモデル)の共有ディスクを使うように変更して使ってた。
が、こっちもこっちで、突然接続が切れるなど、結構不安定だったりする。どうしたものかと思い、結局は以下のベアボーンモデルを使い、新たにNASを構築しました。

細かなレビューはまた別の機会として、現在データを移行中です。
その中で毎回感じるのが、iPhotoのデータ、NASへのコピーがめっちゃくちゃ遅いんだよね。
ググっても、結構みんな感じていることらしい。

なんで遅いかって言うと、理由は簡単。ライブラリのファイル、1つのファイルに見えて、実はものすごい数の細かなフォルダとファイルによって構成されてる。簡単に言うと、sqlliteのデータベースファイルとデータストレージがそのままダンプで入っているイメージ。
iPhoto Libraryのフォルダを右クリックで「パッケージの内容を開く」にすると、そのファイル構造を見ることが出来ます。

iPhoto Libraryファイルの構造

iPhoto Libraryファイルの構造

と、まあ大量のフォルダやファイル、シンボリックリンクによって作られているわけ。
特にカオスなのが、”Database”というフォルダと”Thumbnail”というフォルダ。

Databaseのフォルダを漁っていると、その構造がなんとなく見えてくる。特にDatabase以下の”Version”というフォルダ。
カメラからデータをコピーすると、まずはそのロールごとのフォルダが年、月、日の後の4階層目に作成される。

2014/5/14のフォルダの中身

2014/5/14のフォルダの中身

そして、そのロールに含まれる写真ごとにハッシュが発行されてフォルダが作られ、その中に写真のバージョン情報に関するデータが入ってたりする。
iPhotoって、写真を編集した際、オリジナルを保存しているのね。なので、「今表示している写真がどのバージョンのものか」というのもしっかりと管理しなければいけないわけで。
しかもそれぞのファイルは1KBとかそんなもん。

なので、外見上は単にコピーをしているんだけど、ディレクトリを作るためのコマンドが何回も出され、その中に小さなファイルをコピーして、それぞれに対してアクセス権を設定するという作業を何回も繰り返しているわけで、「ファイルの転送」という作業よりも「ディレクトリの作成」に関するコマンドが走る時間のほうが長い。だから全然転送スピードが上がらないのだろうと。
しかもNAS向けのOSは、ランダムよりもシーケンシャルに重きをおいて作られているので、細かなファイルが苦手と来たものだから、余計に遅い。

実際の写真データは、iPhoto Library直下の”Masters”というフォルダに格納されてる。

写真の実データが格納されているディレクトリ

写真の実データが格納されているディレクトリ

こっちは、数MB級〜動画になればGB級のデータもあるので、とたんに転送スピードが上がる。
実際、Databaseフォルダのコピーが完了した後、「残り3日」とかになってた時間表示が途端に「〜時間」「〜分」に減るようになった。

その他にも、顔認識のためのフォルダや位置情報のフォルダなどがあり、細かく設定している人は、ここにも細かなデータがいっぱい入ってると思う。

いろいろと試してみたけど、iPhoto LibraryをNASにコピーする場合の僕のおすすめは、

・SMBではなく、AFPでの転送にすること (こっちのほうが早かった)
・NASの設定でコピーするフォルダにDLNA等その他の共有プロトコルが設定されている場合は、できるだけAFP一本に絞っておく(コピーが終わったら戻す)
・できるかぎり事前にLibraryファイルのアクセス権を修復しておく

こんな感じです。

iPhotoのライブラリファイルをNASにコピーする際の速度が遅い件” への4件のフィードバック

  1. GAKUZOU様。
    私も同じ問題に遭遇し、結局待ちきれず、NASやWi-Fiのせいにしようとしていました。
    iPhotoでもApertureでも同じ。2〜3秒に0.1MBという超重に陥り、残り3日とか4日とか…。
    待てば良いのですね。
    ちなみに当方ライブラリサイズ111GBくらなのですが、GAKUZOU様のライブラリのサイズとコピー所要時間はどれくらいだったのでしょうか?
    ご教示いただければ幸いです。是非参考にさせていただきたいと思います。

    当方のスペック
    Mac Book Pro Late 2013
    Quad 2.6GB Core i7
    16GB RAM(DDR3 1600MB)
    内蔵SSD 500GB(←転送元)
    ルーター:
    Netgear WNDR4300(5G接続:リンク速度300〜450Mb/秒)
    NAS:
    Netgear ReadyNAS 10200
    HDD WD Red 2TB (WD20EFRX)×2(RAID1)

    ちなみにMacPro MID2010のギガビット有線接続でもほぼ同じ状況でした。

    以上です。

    • overvoicingさん

      コメントありがとうございます!

      > ちなみに当方ライブラリサイズ111GBくらなのですが、GAKUZOU様のライブラリのサイズとコピー所要時間はどれくらいだったのでしょうか?

      111GB!? 大きいですね…。
      僕の環境では、当初50GB近くあったのですが、いろいろと写真を整理してダイエットし、36GBほどまで減らしました。
      コピー速度は、実は夜にコピーを仕掛けて寝てしまったので、よくわからないのです (^^;

      無線は確かに遅いですね。
      僕は、MacBook Pro Retina 13inch Late 2013に、Belkin Thunderbolt Express Dock経由で有線LANをつないでコピーしました。
      レスポンス自体は有線でやったほうがよかった覚えがありますので、長い目で見れば有線のほうがよいのでは?という印象です。
      それはNASにライブラリコピー後も同じで、無線でディスクをマウントした場合と有線でマウントした場合では、iPhotoを操作する上でのレスポンスも変わってきます (若干ですが、有線のほうがレスポンスがいいですね)。

      いずれにしても、これはNASが構造上ランダムアクセス (小さなデータブロックを書いたり読んだりする)が苦手で、逆にシーケンシャル (大きなファイルを連続して読み込む)が得意、という特徴に起因するものなのかなあと思って諦めてます。SSDとかでRAID組めば早いんでしょうけど…
      たくさんの細かなファイルで構成されているiPhotoのライブラリ構成が変われば、また変わるのかなあと。

      僕の環境も付記しておきますね。
      マシン: MacBook Pro Retina (13inch Late 2013)
      RAM: 8GB RAM
      CPU: Core i5 2.4GHz
      SSD: 256GB (転送元)
      ルーター: Airmac Extreme (802.11acモデル)
      リンクアップ速度: あまり安定しませんがおおよそ500Mbps~1.3Gbps
      NAS: Netgear ReadyNAS 102 (+ WD Green 2TB x 2)

      overvoicingさんのほうが全体的に良い環境ですね。羨ましい。

      • ご返答ありがとうございました。
        4日とか5日とかではなく、寝ている間とお聞きして安心しました(笑)
        で、気をよくして、当方Wi-Fiでコピーしてみました。出かけている間に終わっていましたので正確な時間は判りませんが、外出時間が4時間弱でしたのでそれ以内であることは間違いありません(安堵)
        続いて、もう一つあるライブラリ、こちらの容量は204GB(大きくなったのでMacBook入手を機に分割したのです)。ただいまコピー中です、MacPro MID2010(少々古うございます…汗)から有線で。
        GAKUZOU様に同じく、寝ている間に終わることを期待することにします。

        ありがとうございました。

        あ、ちなみに私は個人事業主でMacは備品であります。

overvoicing へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)