さあ、QNAP TS-121が届きましたよー。NASですよNAS。わーい。
って今更盛り上がるもんでもないが、自分用のNASって実は初めてだったのだよ。自分でもびっくり。よそのNASばかり面倒見てるからだな。
QNAPの導入は簡単だ。トレイを取り出し、同梱のインチネジの方でHDDをトレイに留め、トレイを突っ込み、ケーブル全部繋いで電源投入。起動したらQfinderからブラウザの設定画面に飛んで、初期化開始。フォーマットが入るんで割と待たされるぜ。
終わったら、かなーり適当に一通り設定を見て回る。迷うようなとこもほぼ無い。
HDDの電源設定は、うーん、回しっぱなしかな。使い勝手良し、故障率低下説も有力で、消費電力増だけがデメリットだけど、今回使うWD Redはアイドル4Wくらいなので、故障した時のコストを考えれば安い保険だ。
さて、なるべく安くて飛びにくいデータ保管庫を作ろう。うまく行くかな。
今回は、ミラーリングとロールバックの切り分けを、今までより露骨にやってみる。
ミラーリングは自動でリアルタイムに。RAID1は二重化と言うには密接過ぎるので、もう少しだけでも分散出来る方法で。
ロールバックは、ミラーリングの「破損もそのまま伝播」への対応なので、rsyncにlink-destオプション付けて、NASローカルで世代管理すれば行けるかな。ハードリンクだと冗長性が無いけど、使い勝手が実にいいので、冗長化はミラーリングに任せる。
バージョン管理はしない。それが必要なら別階層で。
何か綱渡りな感じだな。どっかで全てにデータ破損が伝播するケースがありそうな無さそうな…。
単純な操作ミスとかは大丈夫。タイムスタンプが一致しなければ世代管理対象になる。世代管理はリアルタイムじゃないから、スケジュールの合間の取りこぼしはあるけど、これの回避は当面は諦めてる。全部バージョニングする世界って一般人でも扱えるんだろか。
プライマリのFS階層外でのデータ破損があっても、ミラーリングされるまでは伝播しないし、ミラーリングされるのはタイムスタンプが変わった時だけだから、世代管理に引っ掛かってセーフ、な筈だよな。うん。
まあ、いいや。真の100%はどうせ無理なのだ。真の100%に近付くには、Amazon S3の海外拠点とかに流さないと。Glacierでも相当なお値段です。ネットワークも遅いです。あと、アレな画像とかは家の外に出したくないです(笑)。
つーことで、この方針で。
まず重要なのは、WindowsからNASにリアルタイムでミラーリングするソフトだなー。
NetBak Replicatorの表示だと、ファイル数は約92万、サイズは420GB程度。他に管理してるSOHOとかのデータより遥かに多い感じ。さてどうなるか。しかもこれ、今後さらにどんどん増えるのだ。その為に整備してるんだしな。
結論から言うと、最初に使ってみたNetBak Replicatorは、どうやら微妙。
第二候補だったBvckupは、まあ、紆余曲折はあったけど、行けそうな雰囲気。大量ファイルならv2推奨。ただしv2は有料化の予定。
NetBak Replicatorの最大の問題は、遅いこと。
起動する度にコピー先の全ファイル情報を見に行くので、ファイル数が多いと異様な時間が掛かる。途中で放置して寝たけど、6時間とかじゃ全然足りなかったような。12時間とか行ってたかも。PCが再起動すればチェックし直しである。ここさえ飛ばせれば、致命的な不満は無いんだけどなあ。
他の問題は、日本語訳がおかしいので軽く一瞬迷うこととか。まーこれは何とかなるけど。
処理出来ないファイル名も幾つかあった。
まず、foobar~1.txt
のようなファイル名。ロングファイルネームなのに8.3形式の例のアレみたいな形にちょうどなっているのが呪われているのか何なのか、処理に失敗していた。
もう一つは、フルパスが長すぎる場合。大抵はファイル名が長すぎるケースだけど。これ引っ掛かるソフト多いけど、バックアップソフトはちゃんと対応して欲しい。本気出せばWindowsのフルパスは64k文字くらい行ける筈なんで。(追記:そもそもNAS側からして対応していなかったというオチであった)
ジャンクションとかは試さなかった。まー、普通は気にしなくていいかな。
んで、次にBvckup導入。
v1とv2があって、どっちもβ。正式版は有料予定。ただしv1は永遠のβのまま開発停止っぽい感じ。んー、まずはv1で試すかな。$20の価値を感じたらv2を試そう。
NetBak Replicatorが処理出来なかった変なファイル名は、Flexible Renamerと手作業でリネーム済みなので、同じ問題が起きるかどうかは不明。
ただ、長いフルパスの問題は、v1では出るっぽい。v2で修正した、とかフォーラムに書いてある。うーむ。まー仕方ないか。
他にもフォーラム見てると、v2で修正したという話がちょこちょこある。特に、v1で大量のファイルを食わしたらハングした、というのは非常に困る可能性が。たかだか10万ちょいで起きたとか何とか。
どうやら、ファイル内の差分コピーの為にCRCを細分して取ってるらしく、メモリを馬鹿食いして落ちるんじゃないか、みたいな話になってた。ファイルを丸ごとコピーするモードにしとけばマシっぽい。英語フォーラムの斜め読みだから怪しいけど。
子供の頃にネットあったら、英語の勉強とかすげーやる気違っただろうなー。ネットに多少突っ込むと必ず英語にぶち当たるしさ。最近、若い世代の英語の成績も上がってるらしいっすね。そりゃネット見てれば英語勉強する気も全然違うよなあ。
まあ、ファイルを丸ごとコピーするモードに設定しとく。メモリ食い過ぎは困るし、バグを踏む可能性も格段に減るしな。巨大ファイルに追記を繰り返したりすると頻繁なコピーで死にそうに思えるけど、同じファイルを繰り返しコピーしない時間を設定出来るから、そこを1分くらいにしてみる。
ジャンクションとかへの対応もv2っぽい。まあ使わないけど。
起動してみると、快適そうな雰囲気ではある。非常にシンプルに扱えるけど、Googleみたいに「シンプル過ぎて時々困る」までは行かない。設定画面を潜ってくと、ツボを突いた設定もちゃんとある。
既にコピー先にあるファイルを残したまま同期しようとすると、英語でダバダバ警告されるので、NetBak Replicatorがコピーした物は使わず、別のコピー先で最初から同期し直し。まあ、速度の比較にもなるだろう。
さすがに初回は全部コピーするだけだから、速度はあまり変わらん感じ。NetBak Replicatorは48時間ほど掛かったが、さてどうなるか。
数時間ほど放置してから、ログ表示モードをエラーログのみにして、また全てのログを表示させようとしたら、UIが無反応に。ハングはしてないっぽいんだけど、プロセスがCPUを50%食ったまま「反応なし」表示。あー、ログが大量過ぎて、レンダリングで固まったんだろか。1ファイルごとに2行のログが出てたもんなー。やっぱ不安だなあv1。
この辺で、v1をまだ試すか迷ったけど、結局こいつともう少し付き合ってみることに。強制終了してやり直そう。
ここまでにコピーされたファイルは全廃棄になるけど、エクスプローラーで普通に削除しようとしたら「残り一時間」とか出た。ぐぬぬ。残したままでも行けるかもだけど、出来れば更地にしておきたい。いい手無いかなー、と思ってふと気付いた。シェルからrmすればいいんじゃね?
早速sshでrm -rf /share/共有名/パス
を実行したら、数十秒で完了。うむ。
40時間くらい放置してから見に行くと、激しく変な名前のファイルの処理に失敗して、リトライを繰り返していた。文字化けみたいなファイル名だな。どっかのWebからWgetでミラーリングした奴か。GETメソッドのQuery Stringをそのままファイル名にするから、たまに謎ファイル名になるんだ。何か変な処理したんかね。不安ですね。エラーログを吐くだけマシかもだけど。
問題のファイルは、要らないことを確認した上で消したけど、ここでv1を諦めることに。
うーん。v2もどうなんだろなー。
でも有料になるっぽいから、まずはフリーソフトをもう少し探してみるか。
監視型ミラーリングのソフトも結構あるもので、Lazulite、ばくあぷ、御鏡、robocopyなどを検討してみたけど、どれも何かに引っ掛かって脱落。何でだったかもう忘れた。
Bvckup2、試すかー。
インストールすると、v1よりシンプルさが少し減ったけど、高機能な雰囲気。高機能になれば多少オプションとかが増えるのは仕方無かろう。英語をちゃんと読まないといけない部分が格段に増えてるのは、うーん。多言語対応とかしないかなー。
まあでも、プログラマー的には余裕で読めるので、ちゃっちゃと設定していく。が、"What to backup"の選択ダイアログを開きに行ったら、また固まった。んんー、重い処理してそうなとこあるかな。フォルダのツリー探索とかしてるんかなー。
と思いつつ、しばらく待ってみたら動いた。大量のファイルやフォルダがある時の挙動が甘いのかな。αテストではここまで大量のフォルダが無くて、βテストに問題が漏れてくるのかもなあ。
でも、設定終了後、初回コピーが始まった途端、細かいうだうだが吹っ飛んだ。くっそ速え。
大量の小さいファイルをネットワーク越しにコピーしようとすると、普通どうしても遅くなるんだろうなー、と思ってたけど、こんなに速く行けるのか。テンション上がるなこれ。$20も許せるかもしんない。
まあ、大量コピーの速度が役に立つのは初回だけかもしれんけどさ。速度にこだわってる感があるのはいいな。圧倒的に軽いソフトを作れる人って、大体は信用出来る気がするのだ。逆も然り。
βテスト中に使えば、βユーザー専用のライセンスが入手出来て、何かしら優遇する予定みたいなんで、この手のソフトを探してる人は今のうちに試してみるのもいいかも。
で、約99万個のファイルが約18時間でコピー完了。おお。
…あれ?
NetBak Replicatorだと約92万個だったのに。まあいいか。←いいのか。
Dropboxのキャッシュのところでエラーが発生してたけど、どーでもいいや。つーかDropboxのキャッシュ、こんなでかいファイル残ってるんかよー消せ消せー。
ちなみにNVIDIAのドライバも巨大なゴミを残します。大抵はC:\NVIDIA
とC:\Program Files\NVIDIA Corporation\Installer2
に。中身は全部捨てていいらしい。
これでいいと思って運用してたら。
メモリ使いすぎなんでこいつ落とすわ、ってWindowsのメッセージがいつの間にか出てた。マジか。おいおい。物理8GB搭載で、特に他のソフトも起動してなかったんですが。使えねー。
つーことで、もう駄目だ話にならん。さらばBvckup。つーか、どうするんだこれー。
結局、BunBackupの高速ファイルチェックと自動バックアップを併用して終わり。うむ。一時間ごとのバックアップになるけど、別にそれで十分だろー。メモリもまだ結構食うけど、動くからいいや。
何かいつもBunBackupに帰ってくる感じだな…。
ただ、空フォルダを一切処理してくれないんだよな、高速ファイルチェックだと。NAS側で処理すっかなー。うーむ。
WindowsからNASへのミラーリングは、とりあえずこの辺にしといて。
NAS自体のミラーリングもしないと。実はまだその為のHDDを買ってませんが。
まあ、三重化するのは「壊れた時の復旧作業も安全にしたい」ということなので、急がなくてもいいかなーと思ってたけど、壊れた時に18時間以上無防備になるからなあ。やっぱ早めに三重化しときたい。
でも、世代管理がハードリンク祭りなので、下手なミラーリングだと死にそう。lsyncdとrsync(-H付き)なら行けそうだけど、それよりNASのeSATAに外付けHDDを繋いで、QNAPのQ-RAID1とかいう怪しげな機能でどうにかならないかな。この方法なら、失敗しても全く損はしないのだ。今回の総入れ替えで使わなくなる外付けHDDケースがあるので。
FSより下の層で処理してくれるようなら、ハードリンク関係の心配も無いけど、どうなんだろ。どこまで冗長化出来るのか、とにかく仕様が分からんのでまともに検討も出来ないけど、当面安上がりではあるし、2.5重化くらいの気持ちで突撃してみようか。
怪しげな機能を試すのもネタになる、とか思ってる面もありますが。
あと、Q-RAID1が駄目でも、eSATA接続のHDDはきっとマウントされてるだろうから、ローカルrsyncで済むかもしれない。そうするとlsyncdも使いたくなって、GCCも必要だから導入めんどくせー、って感じになりそうだけどさ。まあ、面倒なだけならな。安心して動くなら全然構わんさ。リストアがHDD突っ込むだけで済まない点も面倒だけど。
もっとこう、ストレージの故障とかがあんまり怖くない環境を、誰でも手軽に使えるようにしてくんねーかなー。そんなのOS屋さんが主導してやってくれよー。robocopyじゃなくて、もっと誰でも手軽にさ。
追記:
何かBvckupの作者の人からTwitterにコメントが。
@miko_kei Hi, regarding this – http://t.co/cKUh4DHf7N – Bvckup high memory use was caused by a very large log. I will fix this shortly.
— Alex Pankratov (@apankrat) 2013, 12月 4
ログがでかすぎたせいなのですぐ直すぜー、って感じか。
でも、また入れ直すとまた同期し直しだよなー。BunBackupの高速ファイルチェックは空フォルダ処理してくれないから困ってないことは無いんだけど。NAS上でfind foo -type d -empty -delete
すんのもなー。んー。
まーせっかくだから、いずれ試してみるか。
追記:
Bvckup2の初回の同期は、同期先に既にコピーがある場合はうまいこと活用するように動作するらしい。試してないけど。