本blogはGoogle AdSenseおよび各種アフィリエイト広告を含みます

Stablebit DrivePoolでWindowsのHDDを雑に連結しよう

民生用の8TB HDDも出回り、3.5インチベイが10個もあれば費用はともかく箱ひとつで80TB近いストレージを作れる時代になりました。

80TBとは行きませんが、自宅のデスクトップPCのストレージが10TBを超えたのをきっかけにCovecube社のStablebit DrivePoolというソフトを買い足した(※何年か前からWindows Home Server 2011で使っている)のでそのような話をします。

なお、この記事にCovecube Incに関係するアフィリエイトとかは特にありません。紹介ボーナスとかもないです。

DrivePoolとは

A state of the art disk pooling application with file duplication. (ファイル複製機能を備えた、最先端のディスクプール化アプリケーション)

f:id:appalerm:20150723234405p:plain

容量のまちまちなドライブを連結して、仮想ストレージを作るソフトです。

また、仮想ストレージ内のファイルを多重化してドライブの障害に備えることができます。

先に「買い足した」と書いたとおり、30日間のトライアル期間のある有料ソフト($29.95)です。さらにS.M.A.R.T.監視やドライブ暗号化とかクラウドストレージ管理とかの付いたバンドル版は$54.95。2ライセンス目からはバラ売りが半額らしいです。

特徴

RAIDや記憶域スペースよりもDrive Extender(Windows Home Server初代)やVVAULTに似てると言えば、知っている人には分かりやすいかもしれません。

だいたい下記のような特徴があります。

Windowsに仮想のドライブレター(プール)を作成する

f:id:appalerm:20150723235753p:plain

8TBから160GB(SSD)まで何本か連結して12.4TBのストレージプールを作った様子です。

プールに参加したパーティション(以下物理ドライブ)の方はドライブレターを消して不可視にしてもいいので、物理的に何本ドライブがあってもExplorerの見かけ上はシステムドライブとデカいデータドライブだけ、という運用もできます。

この「デカいデータドライブ」であるところの仮想ストレージプールをどこまで大きく作れるかについては、事実上無制限でペタバイト級であるとドキュメントには書いてあります。

The 16TB NTFS limit does not apply to StableBit DrivePool. Microsoft Windows does have an internal limit of many petabytes, which is more than you'll even need.

プールに参加した物理ドライブのファイルシステムを保ったまま、ファイルを分散配置する

f:id:appalerm:20150723235319p:plain

ストレージプールに参加した各物理ドライブには隠しフォルダPoolPartが作られ、ここにプールで運用中のフォルダ構造とファイルが分散配置されていきます。

こうした動作により、下のような特徴を持ちます。

  • 運用中のドライブだろうがシステムドライブだろうが外付けだろうが、既存のファイルに対して退避や破壊をせずに一瞬でストレージプールに参加できる(最初の円グラフの灰色部分"Other"がそれで、プールの管理外の既存ファイルです)
  • 各物理ドライブにはブロックやパリティではなくフォルダ構造とファイルがそのまま記録されるため、各ドライブのPoolPartフォルダを確認すれば救出できる(ソフトやOSが破壊されても、物理ドライブのファイルシステムが生きていれば救える)
  • 物理ドライブ追加時にリビルドが発生しない(再バランスはある)
  • 各物理ドライブの容量を揃える必要がない

複製対象のフォルダや複製する数、書込み先のドライブなどをコントロールできる

先にサラっと「ファイルを多重化して障害に備えることができる」と書いた通り、プール内のファイルは複数のドライブに分散・複製して冗長性を上げることができます。

f:id:appalerm:20150724001133p:plain

フォルダ単位の複製有無と複製数

f:id:appalerm:20150724001415p:plain

「このフォルダは特定の物理ドライブに置きたい」というコントロール

f:id:appalerm:20150724001720p:plain

SSDを一次書き込み先に使い、時間差でHDDにファイルを移すという階層ストレージ的運用のできるSSD Optimizerプラグイン

f:id:appalerm:20150724003830p:plain

「寿命のやばそうなドライブには複製しか置かない」「熱いドライブには新規ファイルを作らない」などの設定(別途、同社ソフトウェアStablebit Scannerによる常時監視が必要)

などの制御がききます。

できない事、弱いところ

  • 定期的にバランシングジョブ(容量の均一化)が走り、その間はパフォーマンスが落ちることがある
  • OSの起動ドライブにはできない
  • 実パス名+ \PoolPart.GUID ぶん文字数を消費するため、パス名の制約がややキツくなる
  • シャドウコピー、およびシャドウコピーを利用したファイル履歴は利用不可(家の環境ではWindows Backupの保存先にすると正常終了しません)
  • 記憶域スペースの「事前に大容量の仮想ストレージがあることにする」機能は無い
  • 書き込みにストライピングが利かない(多重化されていれば読み込みはストライプする)

こんな人によいのでは

  • Windowsを使っている
  • 大容量のストレージを扱いたい
  • ドライブレターのことを考えたくない
  • HDD, SSDが複数繋がっていて管理がめんどくさい
  • 手持ちのHDDの容量がバラバラ
  • 手持ちのHDDに既にファイルがいっぱい配置されている

私です。

特にRAIDカードの価格とカード自体の故障リスクを支払って得られるパフォーマンスにはあまり興味が無く、それよりはプールの構成ドライブの切り離し自由度の高さから容量の融通や故障対応の際に便利かなあという選択基準ですね。

ここまで書いといて何ですが、Windowsにこだわりがなければzfsとかの方がいいと思います。

最後に

このソフトの多言語対応はユーザー任せで編集されているのですが日本語化は遅れています。

リソースの翻訳は先人がもうちょっとで完了というところまで進めてくださっており、投票マークを付けることで進む(らしい)承認プロセスは全然なので、どちらかに興味のある方が参加してくださると助かります。

(2019年3月9日追記: 2018年に日本語化されました。引き続き追記や投票などできますので、翻訳の改善に協力してくださると大変助かります)