読者です 読者をやめる 読者になる 読者になる

たなかこういちの資料室

システム開発に携わる筆者があれこれ試したことや学んだことについてのまとめ

LaCie d2 Network 2からQNAPへNASを引っ越した記録

要点
 
・AFP共有していたフォルダーとそれの全てのサブフォルダーには".AppleDouble"という隠しフォルダーが作成されている。AFP共有に供されていて".AppleDouble"を含んでいるディスクをUSB等でMacに接続、内容を別のAFP共有フォルダーにコピーしようとすると"エラーコード-50"で失敗する。コピーするには".AppleDouble"を全削除する必要がある。
 
LaCie d2 Network 2のバックアップ用外付ディスクだったディスクをMacにUSB接続し、内容をMacのローカルディスクにFinderのドラッグ&ドロップでコピーすると、エラーが出ず一見成功するのだが、実際には一部のファイルでサイズ0となってコピーに失敗しているものが現れる。cpコマンドでコピーすれば問題ない。
 
・QNAPでは、TimeMachine先を複数用意できない。(※2016年9月時点、「QTS 4.2.0」において)
 
・QNAPにて、デフォルトの共有フォルダー"home"配下に置かれたMicrosoft Office 2011 for Macのファイルは、エラーが出て開けない。"home"でない他の共有フォルダーであれば開ける。
 
 
LaCie d2 Network 2が死んだ
 
自宅で運用していたLaCie d2 Network 2(※以降、「LaCie NAS」と表記)が死んだ。工場出荷時リセットしても治らない。壊れたレコード的な繰り返しのシーク音がするのでHDDが死んだと思われる。この機種はもともとディスク交換はできない、とされている。(ケース空けた段階で保証対象外である。)HDDにNASのOSイメージも含まれているから、単純にディスク換装しても無理。この機種には、ディスク交換後にOS再インストールする手立てが用意されていないのだ。
 
※しかしながら下記のような記事を見つけた。この辺は将来の課題とする。
 
 
QNAPやSynologyのNASには、Dropbox等との同期機能がある
 
ところで、最近のQNAPやSynologyのNASにはDropbox等と同期する機能があるとのこと。これは素晴らしい機能だ。これを利用すれば下記が実現できる。
 
NASに置いてあるファイルを出先から参照することが、より容易により安全に可能となる
 
具体的には、、、出先で参照可能とする、という観点からは、クラウドストレージに置きさえすればよいと云えるが、クラウドストレージだけでは論理的に1コピーしか無いのが不安である。
 
複製保持を目的にクラウドストレージとMacBook(※自宅における唯一のPC)とを同期させるとすると、全ファイルをMacに複製しなければならないこととなる。これは容量も無用に食うし、MacBookは持ち出すこともあるので、常に全ファイルを運ぶこととなり、それは危な過ぎる。
 
自宅のNASをインターネット側からアクセス可能とすればよいかもしれないが、基本的にルーターはインターネット側からの発信は全て遮断する設定にしている。これを変えてDDNSやらNATやらを設定しなければならないが、妙な穴が開くのもいやなのでやりたくない。
 
NASクラウドストレージ同期機能を用いれば、上記問題を解決して、下記を実現できる。
 
クラウドストレージ同期機能はNAS側からの発信なので、インターネット側発信を全拒否したままで運用できる。
NAS本体→NAS外付ディスク、NAS本体←→クラウドストレージサービス、という三重の複製体制が構築できる。
 
いや、そもそもPCベースのサーバーを運用できるならば当たり前に実現できることだが、これが総額3万円程度(※実売)のNASで実現できるってことがポイントである。
 
家庭用は、単発(非RAID)+外付けディスクへの定期バックアップで十分と考える
 
というわけでこれを機に新規にQNAP TS-128(※以降、単に「QNAP」と記述)を購入。またまた単発HDDの機種だ。RAID自体のトラブルに遭遇しても厄介なので、(家庭用は)単発で十分と考えている。もちろん外付ディスクへの定期バックアップが必須の附帯条件である。今度の機種は外部からOSインストールできるので、次にディスクが死んでもディスク交換だけで済むだろう。
 
 
さて、ようやく本記事の本題である。今回のLaCie NASからQNAPへの引っ越しでは実に様々な問題に遭遇した。ネット上の情報もやや希薄だったので、他の誰かの役に立つかもしれないので、遭遇したトラブルをここに記しておくこととする。
 
QNAPでは、複数のTimeMachine先を用意できない
 
QNAP自体のセットアップは何ら問題なく完了した。インストーラーも秀逸だったと云えよう。QNAPの機能は非常に優れていたが、1点だけ不満が残った。TimeMachineのバックアップ先が一つしか用意できないことである。LaCie NASでは、二つの共有フォルダーを作成して、それぞれにTimeMachineサービスを適用することができた。そうすると、Macからは二つの「利用可能なディスク」が見える。二つともTimeMachineバックアップ先として指定することで、交互にバックアップが行われ、二つのバックアップイメージが出来上がる。(※各イメージのバックアップ頻度は半分になる。)無線LAN越しのTimeMachineは結構不安定で、一定頻度でバックアップイメージが壊れる。この不安定さはApple Time Capsuleを以ってすら同様のようである。(※たぶん、TimeMachineが動いている途中に気付かずにサスペンドすると壊れやすい気がしている。)なので、二つTimeMachineバックアップイメージを持つことで、一つ壊れてももう一つコピーがある状態を実現していた。これが出来ないのである。。
 
AFPで共有していたフォルダーには".AppleDouble"隠しフォルダーがあり、これを他のAFP共有先にコピーしようとすると「エラーコード-50」が発生する
 
LaCie NASのファイルをQNAPにコピーする段階である。実際にはLaCie NAS本体が壊れたので、外付ディスクのバックアップからの書き戻しである。LaCieの外付ディスクは、MacでフォーマットしたのかLaCie NASでフォーマットしたのか忘れてしまったが、なぜかEXT3/4ではなくHFS+だった。それでもLaCie NASは外付ディスクとして認識していた。しかしQNAPは不明なフォーマットとして認識してくれなかった。よってLaCieの外付ディスクをUSBでMacに繋いで、QNAPに送り込むこととした。
 
それでFinderでドラッグ&ドロップでコピーしようとしたら、「エラーコード-50」によってコピーできない旨のエラーが発生した。
 
散々ぐーぐる先生に質問しまくって、ようやく次の記事を見出した。
 
 
つまり、以下のような事象が起きたと云えそうである。
・AFP共有に用いていたディレクトリーと全てのサブディレクトリーには".AppleDouble"という隠しフォルダーが作成される。
・AFP共有フォルダーのバックアップは、".AppleDouble"も含めて行われた。
・バックアップをUSB接続でアクセスしたので、コピー元としては".AppleDouble"も一般フォルダーのように扱われた。
・しかし、コピー先はAFP共有なので、".AppleDouble"は特殊フォルダー扱いになる。この辺でFinderはgive-upして"エラーコード-50"を吐いた。
 
よって対処としては、全ての".AppleDouble"を削除する、となる。
 
削除の仕方は、以下のコマンドで。
 
-----(ここから)-----
$ find . -name .AppleDouble -exec rm -rf {} \;
-----(ここまで)-----
 
※参考:
 
ところがこれで消せないフォルダーが残った。よく見ると「ロック」状態となっていた。
 

f:id:tanakakoichi9230:20161007235635p:plain

 
LaCie NASがバックアップ作成時に付与した可能性が最も高いが、それにしては全てのフォルダーが「ロック」状態な訳でも無いことが解せない。。追求しようも無いのでとにかく外すこととする。「ロック」の一括解除は、下記コマンドで出来るそうだ。
 
-----(ここから)-----
$ chflags -R nouchg .
-----(ここまで)-----
 
※参考:
 
LaCie NASのバックアップだった外付ディスクから、Macローカルディスクへドラッグ&ドロップでコピーすると、エラー出ずに、サイズ0のファイルができる
 
実際には、オペミス対策のために、LaCie NASのバックアップだった外付ディスクの内容を一旦Macローカルディスクにコピーして、それから".AppleDouble"の再帰全削除を実施することとした。
 
AFP共有フォルダーへ直接ドラッグ&ドロップをしたら「エラーコード-50」で失敗したが、Macローカルディスクへのコピーはエラーが出ずに完了する。ところが、コピーされたファイルをチェックすると、一部でサイズが0となっているものがあった。これは如何なものか。。
 
正しくコピーできているファイルもある。どういう条件でサイズ0となるのか分からない。さらによく観察して次の事に気がついた。すなわち、、タイムスタンプの名前が付いているバックアップフォルダーが複数ある。最新バックアップのコピーでサイズ0となってしまったファイルも、古いバックアップに対しては有効なファイルとしてコピーされている、というものがあった。そこで、もしかしたら、LaCie NASのバックアップ機能として、変更のなかった同一ファイルはなんらかのリンクで構成しているのかもしれない、と想定した。加えて、cpコマンドでコピーしたら、実体がコピーされるのではないか?
 
cp -R」でコピーしたら、期待通り実体コピーが為された。
 
man cp」で「-R」の項には次のような説明がある。
 
-----(ここから)-----
This option also causes symbolic links to be copied,
-----(ここまで)-----
-----(ここから)-----
Note that cp copies hard-linked files as separate files.
-----(ここまで)-----
 
しかし、これはでは実際にはなんだったのか?実は「ls」でみても当該ファイルのハードリンク数は1であるとしか見えない。cpコマンドは解釈できるが、Finderは解釈ミスをする何か、ということである。MacファイルシステムHFS+におけるハードリンクとしてぐーぐる先生に問うたら、次の記事が見つかった。
 
 
ここら辺で、一つの想定結論を出してみる。
LaCie NASのバックアップ機能で作成されたファイルは、バックアップ世代管理において、変更がないファイルはなんらかのリンクで実現される。
・前項のリンクは、HFS+のリンク機能をベースにしているが、何がしかLaCieとして独自の応用をしている可能性がある。
・ちなみに、「ロック」されていたファイルと対応してるのかもしれない。
・そのようなディスクからファイルを得るために、MacにUSBで直接接続してコピーするとき、Finderのドラッグ&ドロップでは正しくコピーできない。cpコマンドを用いることで正しくコピーできる。
 
デフォルトの"home"共有フォルダーに置いたExcelファイルが開けない
 
ようやくファイルの転送を行う。QNAPでは、ユーザー毎のデフォルトの共有フォルダー"home"が用意される。この"home"を素直に用いる事とする。バックアップの外付けディスクから、小さめの転送元フォルダーを、cpコマンドでMacローカルディスクにコピーし、「ロック」解除し、".AppleDouble"の削除を行った。さらに"home"共有フォルダーに送り込む。問題が起きていないか、"home"共有フォルダーに転送されたファイル一つ一つを開いて確認していった。そうしたら、Excelファイルだけ開けない。
 

f:id:tanakakoichi9230:20161007235639p:plain

 
再びぐーぐる先生に質問して下記記事を教えてもらった。
 
 
議論をまとめると、、
・デフォルトの共有フォルダー"home"でのみ、確かに発生する問題のようである。
・"home"でない他の共有フォルダーに移せば問題が起きない。
・同じ問題がQNAPでもSynologyでも生じている。
・どちらかというとOffice 2011側の問題と云えるが、2014年時点で対応されていない。
 
そして現時点(※2016年9月)でも対応されてない様子である。Office 2011以外のバージョンではどうなのかは調べていない。
 
仕方が無いので、"home"は使用しないこととして、QNAPの管理コンソールでdisableにした。
 
"home"を無効にするとQsyncが使えない
 
ところが"home"を無効化すると、プリインストールされている「Qsync」ツールが使えなくなった。(※「Qsync Central Station」アプリを開くとその旨のメッセージが出た。)Qsyncとは、QNAPにおけるDropboxのようなデバイス間同期ツールである。Win/Mac/iOS/Android用のクライアントアプリが用意されている。
 
Qsyncを運用することと、(Office 2011ファイルを管理するために)"home"共有ディレクトリ以外で運用する事とが排他的になってしまうのである。
 
自分は今回はQsyncは使う予定がない(※デバイス間同期は一切をDropboxクラウドストレージ経由で行う計画)ので問題としないが、運用要件によっては注意が必要である。
 
 
以上である。Hava a nice NAS life.
 
◆以上