UAP14475 のブログⅢ

Yahoo!ブログから引っ越してきました。パソコンとトイガンが大好物です。  暇になると艦これを始めてしまいます。とにかく秘書艦は阿武隈ちゃんで。

WinRAR活用案

I/Oデバイスエラーでファイルを読み出せなくなるとRARファイルのリカバリレコードも役に立ちません。
かといって二重化するには容量が足りないし、選別するにも手間がかかります。

しかし、分割ボリュームとリカバリボリュームを数台のHDDに分散させれば、
いずれかのボリュームが破壊されたとしても他のHDDのリカバリボリュームでファイルを復元できます。
しかもRAIDと違ってHDD間の容量の偏りが許容され、管理システムの変更も容易です。

問題はこのリカバリボリュームをどのくらいの大きさにするのか、ということ。
リカバリレコードが大きいほど(=分割サイズが大きいほど)ファイルは肥大化し、
リカバリレコードが小さいほど修復能力は低下します。(※ただし、同じ情報量が破壊されるとき)



そこで、1つの案を考えました。


RR10% + 5分割 + RV20% + リンク 法
1. リカバリレコード(RR) は 10% である。(余裕を持たせている)
2. リカバリボリューム(RV)は 全5ボリューム に対して 1つ である。(すなわちRV=20%)
3. 各ボリュームは 5パーティション に 1つずつ 格納する。(複数の欠落を防ぐため)
4. 全ボリュームはある1つのフォルダにシンボリック・リンクを持つ。(1つのフォルダからアクセス可能)

これによって、
Ⅰ ファイルサイズが 110%×120%=132% になる。
Ⅱ 各ボリューム は 十分な誤り訂正能力 を持つ。(5%で十分といわれる)
Ⅲ 1つのボリューム の欠落が許容される。
Ⅳ 分散したボリュームには リンク集フォルダ からアクセス・解凍できる。




本来なら6台の容量が等しいHDDで保管すべきですが、設備投資が大きくなりすぎるので、
各HDDを1TBずつパーティションで区切り、仮想的な複数台のHDDを作り出して、
複数台の容量が等しいHDDの代わりとします。

実際、パーティションで分けても、「ただ単にデータが前後に分かれるだけ」ですが、これが重要です。
パーティションでは物理的にトラック内周・外周が線引きされて分かれます。
すなわち、「異なるパーティションへの書き込みなら、ディスク上で連続しない」ということになるのです。

Barracuda7200.14のHDDクラッシュでは最新の数ファイルが集中して破壊されましたが、
ドライブそのものが完全にアクセス不能になったわけではありませんでした。
そのため、パーティションで区切って連番化を防ぐだけでも十分な効果があると思います。
(そもそも現在の設備では完全なアクセス不能となるような事態への対処はできない)


また、分散管理でも容易に解凍するべく、シンボリック・リンク を活用しています。
シンボリック・リンクはファイルへのリンクの一種であり、
WinRARやBandizipでシンボリック・リンクをクリックすると通常通りに解凍します。
しかし、リンク先のファイルは同一ディスク上でなくてもいいため、
複数ディスクに分散したファイルを同一フォルダにあるかのように見せかけることができます。
これによってファイルを一ヶ所に集めずとも解凍でき、時間短縮・効率向上に貢献します。
( Link Shell Extension を使用)