Windows Server 2016を運用していると、ドライブの空き容量が実際の容量と合致せず、突然「容量不足」警告に悩まされるケースがあります。そんなとき、実際には使用していないはずの領域が消費されていると見なされる原因や、その解決策を丁寧に解説していきます。
Windows Server 2016で空き容量が正しく表示されない原因
Windows Server 2016 Standardなどの環境で、ディスク容量が明らかに残っているにもかかわらず、システム上で「残り容量が少ない」と誤認識される症状は珍しくありません。単なるバグではなく、システムの特殊な仕様や運用時の設定などが複合的に影響して起こることが多いです。ここでは、その主な原因を詳しく見ていきましょう。
System Volume Informationの肥大化
Windowsでは各ボリュームのルートディレクトリ直下に「System Volume Information」というフォルダが存在します。ここには以下のようなデータが蓄積される場合があります。
- Windowsの復元ポイント
- ボリューム シャドウコピー(VSS)のスナップショット
- 各種メタデータ、インデックスファイル
特に復元ポイントやVSSスナップショットは、自動作成の設定が有効になっていると意図せず肥大化しやすいです。GUIからは削除・設定が制限されているケースもあるため、容量を圧迫している原因として挙げられます。
ボリューム シャドウコピーに溜まったスナップショット
シャドウコピーはバックアップやファイル履歴管理に便利ですが、定期的な削除を怠ると古いスナップショットが数多く残存し、結果としてシステムが認識する空き容量を著しく減らします。シャドウコピーはGUIから上手く削除できない場合もあるため、VSS関連のコマンドラインツールが重要になります。
隠しファイルやアクセス権限の問題
通常のエクスプローラーでは表示されない隠しファイルやフォルダが、実は大容量を占めていることも考えられます。また、NTFSのアクセス権が厳格に設定されている場合、所有者や管理者以外にはファイルの存在自体が見えないことも珍しくありません。そのため、エクスプローラーだけで原因を突き止めるのは難しい場合があります。
クラスタサイズやディスク設定の影響
NTFSではクラスタサイズを設定できますが、これが適切に選ばれていないと実際のファイルサイズより多くディスク容量を占有しているとみなされてしまう場合があります。1KBのファイルであっても、クラスタサイズが64KBなら64KB分のディスク領域を消費する仕組みです。小さなファイルが無数にあるときに特に影響が大きくなります。
仮想メモリ(ページファイル)のサイズ設定
Cドライブ等に仮想メモリ領域が大きく設定されていると、実際のファイルサイズの合計とは別にディスクを消費します。特にページファイルはデフォルトでシステム管理サイズに設定されることが多いため、サーバーのメモリ容量によっては何十GBもの領域が割り当てられる可能性があります。
具体的な対処法
上記のように様々な要因で「空き容量が不足している」と誤判定される状況を改善するには、正確な原因を把握した上で、状況に応じた対策を取ることが大切です。ここでは効果的な対処法を順を追ってご紹介します。
System Volume Informationをコマンドラインで確認・削除する
「System Volume Information」フォルダは、通常の権限ではアクセスが制限されています。フォルダの中身を把握しつつ不要なスナップショットを削除するには、VSS関連コマンドの活用が欠かせません。
diskshadowコマンドを使ったスナップショットの削除
以下は「E:」ドライブに残るシャドウコピーを削除する例です。実行にあたっては管理者権限のコマンドプロンプト、またはPowerShellを使用してください。
diskshadow
delete shadows volume E:
一つのドライブに複数のスナップショットが存在する場合、確認しながら削除したい場合は以下のように進めます。
diskshadow
list shadows all
delete shadows oldest E:
「list shadows all」で全スナップショットの一覧を表示し、「delete shadows oldest E:」でEドライブの最も古いスナップショットのみを削除できます。特定の世代だけを指定して削除したい場合には、Shadow Copy IDを指定することも可能です。
vssadminコマンドでの確認
diskshadowコマンド以外にも、vssadminという従来から存在するコマンドがあります。例えば以下のコマンドでシャドウコピーを確認できます。
vssadmin list shadows
vssadmin list shadowstorage
「vssadmin list shadowstorage」ではボリュームごとの使用領域や最大使用領域などの詳細を確認可能です。不要なスナップショットを削除したら、使用領域がどの程度減ったかも合わせて確認するとよいでしょう。
TreeSizeやPSToolsによる容量調査
隠しファイルやアクセス権の問題で通常のエクスプローラーから見えない容量を調べるには、TreeSizeなどのサードパーティツールを使う方法が効果的です。システム権限で実行できると「System Volume Information」や権限の厳しいフォルダ内のサイズも可視化できます。
例えば、PSToolsに含まれるpsexecコマンドを使うと、以下のようにシステム権限でTreeSizeを起動できます。
psexec -s -i "C:\Path\To\TreeSize.exe"
こうすることで、通常の管理者権限でもアクセスできない隠し領域やファイルのサイズを正確にスキャンできるようになります。もし巨大なフォルダが見つかったら、原因特定への近道となるでしょう。
ロボコピー(Robocopy)でデータを一時退避し、再フォーマットする
どうしても原因が分からない場合や、容量の不整合が激しい場合は、ドライブを再フォーマットするのも手段の一つです。ロボコピーを使えば、以下のようにフォルダ単位で高速かつ信頼性の高いバックアップが可能です。
robocopy E:\Data F:\Backup\Data /E /COPYALL /R:0 /W:0
- /E: サブディレクトリを含む全てのファイルをコピー
- /COPYALL: すべてのファイル属性をコピー
- /R:0: 再試行回数を0回に設定
- /W:0: 再試行前の待機時間を0秒に設定
コピーを完了させ、データの実サイズがどの程度あるのかを確認したうえで、問題のディスクを再フォーマット(パーティションの再作成含む)し、再度データを戻します。論理的な不整合が解消され、正しい空き容量がシステムに認識される可能性が高まります。
容量管理のベストプラクティス
空き容量問題が発生しないよう、日頃の運用から対策を講じておくことも重要です。ここでは、運用のベストプラクティスをいくつかご紹介します。
クラスタサイズの検討
ディスクを新規にフォーマットするときには、用途に合わせてクラスタサイズを設定しましょう。多数の小さなファイルを保存するようなワークロードであれば、小さめのクラスタサイズが無駄を省くうえで有効です。一方、巨大なファイルを主に保存する場合は大きめのクラスタサイズが有利になることもあります。
仮想メモリ(ページファイル)の最適化
サーバーのメモリが潤沢に搭載されている場合、システム管理サイズのページファイルは過剰に大きく設定されることがあります。運用状況に応じてサイズを固定化したり、別ドライブに移動するなどの最適化を検討しましょう。
定期的なモニタリング
ディスク容量は日常的な監視が大切です。サーバーの定期メンテナンス時に以下の点をチェックすると、問題を早期に発見できます。
| チェック項目 | 方法例 |
|---|---|
| ボリュームシャドウコピーの数 | vssadmin list shadows / diskshadowで確認 |
| System Volume Informationフォルダのサイズ | システム権限でTreeSizeなどを実行 |
| クラスタサイズ | フォーマット設定情報やfsutil fsinfo ntfsinfoなどで確認 |
| ページファイルのサイズ | システムのプロパティ(パフォーマンスオプション)で確認 |
これらのチェックリストを習慣化し、必要に応じてシャドウコピーや不要ファイルの削除などを行えば、容量不足に陥る前に手を打てます。
原因調査のヒント
空き容量不足の原因を突き止めるには、まずは「実際にはどのフォルダがどれだけの容量を使っているのか」を明確化することが重要です。そのためには、以下のステップを踏むと効率的です。
- TreeSizeやduコマンドで総容量を比較
Windowsの標準コマンド「dir」だけでは信頼性に欠ける場合があるため、TreeSizeやPowerShellのGet-ChildItemコマンドなどを駆使してフォルダごとの使用容量を洗い出します。 - System Volume Informationの実容量を確認
必要に応じてSystem Volume Informationフォルダに権限を付与し、一時的に内容を覗き見ることも検討します。 - シャドウコピーを整理
具体的にはdiskshadowやvssadminコマンドで、古いスナップショットを削除し、設定を見直します。 - OS以外のアプリケーションログを確認
SQL ServerやExchangeなどが運用されている場合、ログファイルが肥大化しているケースもあります。
運用環境によっては、一つではなく複数の要因が絡んで容量不足を引き起こしている場合もあります。柔軟に調査を進めましょう。
トラブルシューティングの応用テクニック
ここでは、一歩踏み込んだ応用テクニックについて触れておきます。これらを実践すると、より迅速な解決につながる可能性があります。
ボリュームラベルを付与して管理
複数ドライブを運用する場合には、単に「C:」「D:」と区分するだけでなく、しっかりボリュームラベルを設定しておくと、誤操作や調査ミスを防ぎやすくなります。
イベントビューアのログ解析
容量不足がOSレベルのトラブルに発展している場合、イベントビューアのアプリケーションログやシステムログに何かしらの警告・エラーメッセージが残っているかもしれません。シャドウコピー関連のエラーやディスクの不調を示すログが見つかると、原因を突き止める助けになります。
NTFSジャーナルのクリーンアップ
NTFSジャーナル($LogFileや$MFTなど)はファイルシステムのメタデータを管理するための領域で、通常ユーザーが直接アクセスすることはありません。ジャーナルが肥大化した場合もごく稀に容量に影響を与えることがあります。高度なシステム管理者向けですが、ジャーナルのサイズを最適化する手段も存在します。
まとめ
Windows Server 2016でディスクの空き容量が正しく表示されない場合、その原因は多岐にわたります。特にSystem Volume Informationフォルダの肥大化やボリュームシャドウコピーに残った古いスナップショットなどは見落としがちですが、実際には大量の領域を占有しているケースが多々あります。加えて、クラスタサイズやNTFSの設定、仮想メモリの設定なども誤判定を招く要因として認識しておきましょう。
問題に直面した際は、まず権限のあるツール(diskshadowやvssadmin、TreeSizeなど)で実際の容量占有状況を確かめ、不要なシャドウコピーを削除する、仮想メモリを適切に設定するなどの対策を講じます。どうしても原因が判明しない場合は、ロボコピーで一時的にデータを退避させて再フォーマットするという最終手段も有効です。日頃から定期的なモニタリングを行い、容量の異常を早期に発見できる体制を整えることで、サーバーの安定運用を実現しましょう。

コメント