消しても消しても増えない空き容量と言いながらもそこはしがない情シス屋。ディスククォータもままならない程未整理且つ権限が複雑に付けられたファイルサーバのどこにいらないファイルがあるか点検してまわってみます。したら出てくる出てくる、写真と思われる数MBのJPGファイルが1,000件とか2,000件単位で保存されていたり、デジタルハンディで撮影した社内行事のムービーファイルが未圧縮でゴロゴロしてたり、長期間触れていない「保存用」フォルダや「old」「不要」(じゃあとっとと消せよ!)などというフォルダ名を付けたものなど有象無象。階層深くに眠っていてもはや誰も存在すら覚えていないであろうファイルもあります。アーカイブと称して外付けHDDに移動させつつ、各部署にもフォルダ整理を一斉通達して大掃除を開始します。ちなみに弊社で使っているファイルサーバはWindowsServer2012R2で、ストレージは「重複除去」を有効にしています。重複除去とはWindowsServer2012以降に実装されている機能で、同一のデータを統合してストレージ領域を有効に使用するためのものです。サーバに保存されたファイルはチャンクと呼ばれる32~128KBのデータに分割され、他のチャンクと一致する場合はデータを削除した上で同一のチャンクのリンクを記憶します。ファイル名が違うだけで中身が同じファイル等であっても、この方法であれば領域を節約することが可能になります。「重複除去」のおかげで容量を節約できているのですが、逆に保存しているファイルを移動したり削除しても、ファイルサイズ通りの空き容量は確保できません。ファイルを動かしていくのですが、なかなか空き容量は増えません。その間もファイルを追加されたりするので、空き容量は増えたり減ったりのいたちごっこです。ファイルサイズの合計(それも300GBも)「空ける端から保存していきやがって!」と思っていたのですが、800GBのドライブ領域に対して約100GBのファイルを移動させてみても空き容量はいっこうに増えません。おかしいと思って、ドライブ全体の保存ファイルのサイズを計測してみました。結果は500GBでした。え?ファイルは500GBしか使っていなくて、800GBのドライブの使用率が99.9%?全社依頼前のファイルサイズの合計は確かに800GB以上ありました。私がやった以外に、全社合わせて300GB以上のファイルをファイルサーバから逃がしたことになります。それなのに空き容量は数MBのまま。...ファイルを移動させる手を止めて、技術的な調査に取り掛かることになりました。いうことで、長いイントロがやっと終わってここから本題です。ファイルサイズの合計とディスク使用量が違うパソコンにも当てはまる原因(ドライブ毎の)ゴミ箱とりあえず初歩的なところからいってみます。「ファイルサイズの合計」を図った方法はDIRコマンドです。コマンドプロンプトから以下のコマンドを実行します。/a-dコマンドのリファレンスは他の詳しいサイトに譲りますが、カレントディレクトリ配下のサブディレクトリも含めてファイル名とサイズ、作成年月日などを取得します。このコマンドの一つの難点として、権限の無いフォルダの容量は出てこないということが挙げられます。その代表が「ゴミ箱」です。ゴミ箱については今さら説明するまでもないですが、保存されている場所はCドライブだけとは限りません。Dドライブのゴミ箱も空にしてあげなければいけません。システムドライブ以外のゴミ箱を空にするのに一番簡単なのは「ディスククリーンアップ」です。エクスプローラーからドライブ右クリック→プロパティでプロパティを表示して以下の画面を出して、「ディスククリーンアップ」を選びます。※イメージは実サーバのものではないので容量等が本文と異なります。「ゴミ箱」が表示されるので、チェックして「OK」を押せば完了です。WindowsServer2012は標準で「ディスククリーンアップ」は表示されていません。「ディスククリーンアップ」を表示させるためには以下手順が必要です。再起動が難しいサーバの場合、コマンドプロンプトでゴミ箱を空にすることもできます。管理者でコマンドプロンプトを起動して以下コマンドを実行します。※ドライブレターは環境に合わせます。D:\$Recycle.Binちなみにこれでは問題は解消しませんでした。共有フォルダのシャドウコピーサーバに共有フォルダを設定している場合、共有フォルダ内のファイルを誤って削除したり上書いてしまった場合にデータを戻すための機能として「共有フォルダのシャドウコピー」があります。仕組みはバックアップとは異なるのですが、元ファイルのデータが保存されるという意味ではディスク容量を必要とします。Information」になり、ここも権限なしで容量が表示されない隠しフォルダです。コマンドプロンプトから以下コマンドを実行することで共有フォルダのシャドウコピーのサイズを確認することができます。ShadowStorage実行結果はこんな感じです。コピーの記憶域の使用領域」が保存されているシャドウコピーの容量です。ちなみにシャドウコピーを削除する場合は以下のコマンドを実行します。※ドライブレターは環境に合わせます。/allこれも全く保存されていなかったのでパスです。Pagefile.sysとかhiberfil.sysとか仮想メモリのページングファイルや休止状態やスリープ状態のメモリ内容をHDDに退避するファイルです。ページングファイルは昔からある話なので詳細は割愛します。これらも対象のドライブには存在しませんでした。インデックスファイルもう一度先ほどのドライブのプロパティを見てみます。「このドライブ上のファイルに対し、プロパティだけでなくコンテンツにもインデックスを付ける」というチェックがあります。Windows8以降からあるチェックで、エクスプローラーでファイル検索を行う際の速度向上のためにインデックスを作るものです。実際そこまでWindowsのファイル検索を多用することは無いし、インデックスが無くても検索できないことは無いですし、高性能なSSD等であればインデックスの必要性はあまりありません。インデックスを作成するということは一応ドライブ容量を食います。ファイル数が多ければ尚更です。いえたかがインデックスですから数百GBもの容量を食うことはありません。ディスク障害ハードディスクの一部で障害が発生してファイル保存ができない状態にある場合、ファイルサイズの合計とディスク使用量の差が発生する可能性があります。チェックディスクでディスクのエラーチェックを行うことができます。コマンドプロンプトから以下コマンドを実行します。/rチェックディスクはサーバ負荷が高くなるのと、システムドライブ(Cドライブ)の場合起動時に実行されるので即時実行はできません。詳しい使い方は別のサイトに譲りますが、ディスクのマウントが解除される場合があるなど取り扱いには注意が必要です。実行の結果、ディスク障害は発生していませんでした。クラスタのサイズの問題これも昔からある問題ではあるのですが、HDDへデータ保存を行う際にWindowsの標準的なファイルシステムであるNTFSの標準の場合、最小の保存領域は4KBです。実ファイルのサイズが4KB未満であったとしても、ディスク上は4KBの領域を必要とします。この誤差の積み重ねによってファイルサイズの合計とディスク使用量の差異が発生するというものです。この問題はファイルの圧縮などで解消できるだけではなく、前述の「重複除去」を使っているためディスク上のサイズはむしろ恐ろしく圧縮されています。それに300GBもの誤差を産みだそうとすると凄まじい量の細かいファイルが存在しなければいけませんが、先ほどのDIRコマンドで確認してもそこまでおかしなファイルはありません。ここまでの内容はサーバーに限らず、パソコンでも同様の対策をとることができますので、ドライブ容量の確保の際に参考にしていただければと思います。逆に言えばこの辺りは比較的早期に調査して該当しないことがわかっていました。それでは何がそんなに容量を圧迫しているのでしょうか。確認できている情報をもう一度確認してみます。ディスクの空き容量はほぼ全くなく、800GB全てが使用されています。把握てきているファイルサイズは500Bです。素直に考えれば発見できていない大きなファイルが存在しているということです。一度確認してみると、フォルダの中を確認できていない場所がありました。Information」です。バックアップが確実に取れていることを確認した上で、フォルダ権限を変更して中身を確認してみました。Information\Dedup\ChunkStore犯人は「データ重複除去」で作成されるチャンクの情報、チャンクストアでした。チャンクストアの中身は779GBもあったのです。チャンクストアは勝手に消えないデータ重複除去は前述の通りチャンクが同一のものを纏めて管理しますが、そのリンク情報が保存されるのがチャンクストアです。実ファイルが削除されてもチャンクストアは勝手になくなったりはしません。チャンクストアは週に一回再作成されますが、それまでの間ディスク容量は変わりません。それも自動実行される際に、チャンクストア内のデータが5%以上変更されないと再作成されないのです。起こっていた状況は、チャンクストアが再作成されないまま延々と溜まり続け、チャンクストアそのものがディスク容量を食いつくしてしまっていたのです。そこからファイルをどれだけ動かしても後の祭りです。ディスク容量は新たなチャンクストアを作成できないほど切迫していたのです。ちなみにファイルサイズの合計が500GBといいましたが、データ重複除去の結果、ディスク上のサイズはわずか10GB程度になっていました。ここまで圧縮されたファイルをいくら動かしても容量は空きません。コマンド1つで驚きの空き容量に仕方ないのでPowerShellから以下のコマンドを手動実行しました。GarbageCollectionコマンドが流れ始めて数十分、ディスク使用量はみるみる減っていき一時間そこらで100GB以上が空きました。ちなみにその時点ではコマンドは終了していないので、まだまだ容量は減っていきます。まとめストレージは有限であるなんとか事なきを得ました。データ重複除去の機能を正しく理解していなかったこと自体問題ですが、一番の問題は一声で300GBを破棄できるほどファイルサーバに不要なファイルを溜め込んでいたことではないかと思います。どれだけ高い圧縮率であったとしても、結局ストレージは有限です。ディスク容量が不足すれば追加することはできますが、正しく管理できていないのであれば追加は永遠に続きます。集中管理が難しく、各自の管理を徹底しないと無秩序になるファイルサーバ。容量が無くなっても本来情シスではどうにもできません。適切でない容量しかないのであれば改善しなくてはいけないですが、そもそも「適切な容量」とはどのようなものでしょうか。「適切な容量」を考えるためには、まずファイルサーバの使用方法を定めなくてはいけません。永続的な保管領域として考えてしまえば無限に容量を増加させなくてはいけませんが、あくまで共有のためのワークスペースであるとすれば一定以上に古いファイルは別の媒体にアーカイブするべきでしょう。ルールが守られるかどうか難しいかもしれませんが、まずはルールを策定し、ルールが守られていないのに容量が不足しているのであれば「まずはルールを守ること」を対策とすることができるようになります。2019.11.282020年1月14日のWindows7の延長サポート終了に伴い、Windows10への移行を進めている企業も多いと思います。いうかこのタイミング([...]GSuite14日間無料おためしGSuiteを14日間無料で試用できます。※Googleのサイトへ接続します。当サイトからGSuiteをお申込みいただいた方へ、開始1年目の利用料が20%OFFになるクーポンを差し上げています。ひとり情シスという詰み一歩手前の状況から色々四苦八苦してなんとか形になってきたので、「自分のやったことをアウトプットした方が、世の中の情シスの人が同じことで困らなくて済むんじゃないか」と思い、このブログを立ち上げました。技術よりもサービス/マネジメント寄りの内容が多いかもしれません。WordPress.。