1行のコマンドでアロケーションユニットサイズを確認する方法

ボリュームのアロケーションユニットサイズを確認したい場合があります。

例えば,他のマシンと同じスペックのサーバーを構築する場合など,既存のボリュームのアロケーションユニットサイズを確認したいということがあると思います。

あるいは,ボリュームが異常な使用率になっているサーバーのトラブルシューティングとして,ボリュームのアロケーションユニットサイズを確認したいこともあるでしょう。

DISKPARTを使ったアロケーションユニットサイズの確認は遅い

そのような場合に,よく紹介されているのが,DISKPARTを使った確認方法です。しかし,このDISKPARTを使ってアロケーションユニットサイズを確認しようと思うと,最低でも以下の4コマンドを実行しなければなりません。

diskpart
list volume
select volume [number]
filesystems

ドライブ名からボリューム番号を見つけなければならないため,幾らかの思考を働かせなければなりません。

それで,コマンドプロンプトでアロケーションユニットサイズを確認するなら,fsutilコマンドを使う方がよいでしょう。

FSUTILなら1行でアロケーションユニットサイズを確認できる

fsutilコマンドを使えば,1行でアロケーションユニットサイズを確認できます。例えば,Dドライブのアロケーションユニットサイズを確認したければ,次のように実行します。

fsutil fsinfo ntfsinfo D:

そして,Bytes Per Cluster(日本語では「クラスターあたりのバイト数」)の項目を確認しましょう。

Bytes Per Clusterが4096であれば,アロケーションユニットサイズは4Kですし,65536であれば,64Kであることが分かります。

Bytes Per Clusterの項目がアロケーションユニットサイズの設定値

Bytes Per Clusterの項目がアロケーションユニットサイズの設定値

もし,ボリュームがNTFSではなく,ReFSであれば,次の1行を実行しましょう。

fsutil fsinfo refsinfo D:

そして,同様にBytes Per Clusterの値を確認します。それが,ReFSにおけるアロケーションユニットサイズの設定値です。

ReFSの場合もBytes Per Clusterの項目でアロケーションユニットサイズを確認できる

ReFSの場合もBytes Per Clusterの項目でアロケーションユニットサイズを確認できる

ちなみに,fsutilは,Windows XP以降のOSで使用可能なコマンドです。

PowerShellを使ってアロケーションユニットサイズを確認する

上記の方法でも確かに1行のコマンドで確認できるのですが,ドライブレターをその都度変更しなければなりません。

しかし,PowerShellを使うなら,どんな環境でも同じコマンドでアロケーションユニットサイズを確認することができます。それが,Get-Volumeを使う方法です。

以下のコマンドを,管理者として立ち上げたPowerShellで実行してください。

Get-Volume | Format-List AllocationUnitSize, FileSystemLabel
PowerShellなら1行ですべてのドライブのアロケーションユニットサイズを確認することができる

PowerShellなら1行ですべてのドライブのアロケーションユニットサイズを確認することができる

この方法なら,ドライブレターを変更する必要なく,すべてのドライブのアロケーションユニットサイズ情報を一覧で取得することが可能です。

ただし,コマンドプロンプトよりもPowerShellを立ち上げる方が時間がかかる場合がありますので,それぞれの環境に合わせて最適な方法を選んでください。

GUIでアロケーションユニットサイズを確認する方法はない

時おり,空のテキストファイルを保存して,そのファイルのプロパティから「ディスク上のサイズ」を確認する方法が説明されている場合がありますが,これは現在では有効ではありません

なぜなら,NTFSのボリュームには,MFT (Master File Table)と呼ばれる管理領域があり,そこでNTFSボリューム内のすべてのファイルやフォルダのエントリや属性情報が保管されているのですが,極小ファイルの場合には,直接MFTに情報が書き込まれるという仕様になっています。

未検証ですが,1024 byte以下のファイルはMFTに保存されるという仕様があるようです。

それで,GUIでアロケーションユニットサイズを確認できる確実な方法はありません。

 

以上,アロケーションユニットサイズを確認する最適な方法に関する考察でした。

別の記事で,ReFSとNTFSにおける最適なアロケーションユニットサイズについて書いておりますので,興味がある方はご参照ください。

コメント