Balancing Storage...

Windows Home Server Consoleのステータスバーに"Balancing Storage..."と表示されているとき、Windows Home Serverは一体何をやっているのか?

例の"Tombstones"の件と一緒にMS Forumを読んでいたら、なんとなく分かったような気がする。


実はWindows Home Serverって、大したことはやってないっぽい。


Windows Home Serverをインストールすると、ブートドライブを20GBのシステム領域(ディスクサイズによって10GBだったりするらしい)と残り領域の2つに勝手にパーティション分割する。

この「ブートディスクのシステム領域以外の残り」はWHSの世界では"Primary Data Partition"とか呼ばれることが多い。


WHSはPrimary Data Partitionに"Tombstones"と呼ばれるファイルを置いて、ファイルの実体は他の物理ドライブに置く、という台詞をMS Forumではよく目にするのだが、実はこの"Tombstones"はNTFSリパースポイント("NTFS reparse points")そのものであることが分かった。


Balancing Storage... How does it work?
http://forums.microsoft.com/WindowsHomeServer/ShowPost.aspx?PostID=1871384&SiteID=50


このNTFSリパースポイントとは、簡単に言うとシンボリックリンクのこと。

で、この"Tombstones"と関連があるのが、"Balancing Storage..."。


大量のファイルを新たにWHSの共有フォルダにコピーしたり、フォルダの配置換えを行った後、おもむろにディスクがガリガリ言い出して、例の"Balancing Storage..."とメッセージが表示されることが良くある。


WHSの共有フォルダとして見えているのは、実はDドライブの"Shares"フォルダ以下の各サブフォルダに作成されているフォルダそののものに他ならない。

すなわち、WHSの共有フォルダにファイルをコピーする、という操作は、Dドライブ上の共有フォルダにファイルを置く、という操作に他ならない。


"Balancing Storage..."という処理は、Dドライブにコピーされたファイルをリパースポイントに置き換えて、実ファイルを別の物理ディスクに追い出したりだとかする処理。

ええと、これは物理ディスクが2つ以上、"Storage Hard Drives"にある場合限定ね。そもそもデータ用の物理ディスクがひとつしかなければ、そのままDドライブに置いておけばいい。

この処理は"Drive Extender Migrator Service"(demigrator.exe)というサービスが担っている。この"Drive Extender"という単語もMS Forumにはよく登場する。

WHSのミラーリング処理もこのDEが担当している。


NTFSリパースポイントのファイルは見た目実ファイルと変わりなく見えるが、ファイルのプロパティを見ると、"Size on disk"の値が4Kバイトになってたりする。

この4Kバイトっていう数値は、アロケーションユニットサイズだね。


エクスプローラで参照できるDドライブの空き領域は、そのまんまの意味で、やっぱりDドライブの空き領域そのもの。

ちなみに、共有フォルダにアクセスしたときに見える空き容量は、やっぱりDドライブの空き領域。


MS Forumでは、WHSローカルにファイルを共有フォルダに置く場合でも、ローカルパスを使わずに、UNC名を使うように、という警告をたまに目にするんだけど、どういう弊害があるのか、まだ分かってない。

MS Forumからの情報によると、D:\Share以下の共有フォルダに直にファイルを置くと、DEがこれを認識しなくて、Balancingしてくれないらしい。

一見無駄の多いようなデザインだが…

Windows Server 2003なんだから、素直にソフトウェアRAID1でいいじゃん、と思うかもしれない。

実際同容量のディスクが2つあって、ミラーリングの必要なデータがそのディスクのほぼ一本分弱ある場合、ミラーボリュームを作ってそのボリューム上にファイル共有を作った方がパフォーマンスは抜群によいはずだ。

WHSの場合インストール後にディスクを接続して、"Storage Hard Drives"にAddしなければ、普通のデータディスクとして使えるので、上記のようなミラーリングを作っても問題無いと思う。


ただHome用途を考えると、容量の違うディスクが複数あったりだとか、システム領域のあるディスクをうまく使いきれないだとか、保存すべきデータ量の見積もりが難しいだとか、いろいろ考慮すべき面倒なことがたくさんあっても、データ領域として確保できる最大限の空き容量を提供できるこのデザインが向いているのだと思う。


確かに、データディスクが複数存在する場合、どのディスクにどのデータを置こうだとか悩むことは多い。

WHSであれば、空き容量はとりあえず繋がっているディスクの総容量で考えて間違いないし、ミラーリングの必要性は共有フォルダ単位で考えればよい。


たかがファイルサーバーにカスタマイズ性など求めないあなたの場合、WHSは向いている。
なんでも脳内管理下に置きたいあなたの場合、WHSはちょっと向いていない。