この記事は「アロケーションユニットサイズの意味を深く理解する」についての記事なります。
この記事で得られること
|
「アロケーションユニットサイズ」は、別名「クラスターサイズ」とも言います。
呼び方はどちらかというと、「アロケーションユニットサイズ」という呼び方よりも「クラスターサイズ」と言う呼び方の方が、一般的には使われています。
アロケーションユニットサイズ(クラスターサイズ)の意味を知るには、ファイルがHDDにどのように記録されるのか理解しないといけません。
では、実際に図を使ってみていきましょう。
目次
HDDの記録面
HDDの記録面を理解するうえで4つのポイントがあります。
・プラッタ
・トラック
・セクタ
・アロケーションユニット(クラスタ)
プラッタ
HDDにデータを記録する部分を円盤の事を言います。別の呼び方では「磁気ディスク」とも言います。
※図では、内周も外周も一定の区間で区切られていますが、実際にはもっと細かく区切られていて、内周のセクター数よりも外周のセクター数の方が多くなっています。ここでは解りやすいように単純にしております。
トラック
トラックとは、ドーナツ状に区切られた緑色の部分の事を言います。
セクター
セクターとは、データを記録する最小単位で、トラック上にある赤色の部分の事を言います。ファイルを保存した際には全てセクターに保存されます。
Windowsのセクターには、512セクターと4Kセクターというものがあります。
記録できる容量は、1つのセクタは1Bなので単位は以下になります。
1つのセクタの単位
- 「512セクタは512B」
- 「4Kセクタは4096B」
4Kセクター(4096B)は512セクター(512B)の約8倍にもなっています。
1つのセクターに対し、512セクターであれば512B、4Kセクターであれば4096Bのファイルを保存できるという事になります。
ただし、4KセクターのHDDを使用する際は以下の2点をクリアしていないと、使用することが出来ないので注意が必要です。
4KセクターのHDDを使用する際の注意点
- OSがWindows8以降であること
- 使用するアプリケーションソフトが4Kセクタに対応している事
※4Kセクターの詳細について知りたい方は、MicrosoftのHPをご覧になってください。 |
ここで、ファイルを保存したときの512セクターを例にして見てみましょう。
1つのセクターが512Bの場合、512Bまでのファイルは下図のように1つのセクターに収まります。
513B以上のファイルに関しては1つのセクターに収まりません。収まりきらなかった残りの1Bのファイルは、基本的にはすぐ隣にある2個目のセクターに保存されます
2個目のセクターにも収まりきらない場合は、3個目、4個目のセクターに順々に保存されていきます。
アロケーションユニット(クラスター)
ここで話のメインであるアロケーションユニット(クラスター)の登場です。
クラスターとは、セクタの合計単位の事で青色の部分の事を言います。
複数のセクターにファイルが保存され、「複数のセクター」の事を「アロケーションユニット(クラスター)」と言います。
クラスターの中は、更に細分化されたセクタがあるイメージになります。
実際に、セクターにファイルが保存されたときの流れを見てみましょう。
ファイルを保存した時のセクターとクラスターの関係性について
例として、1つのセクターが512Bでアロケーションユニット(クラスター)が4096Bの一般的なHDDで説明していきます。
ファイルは4096Bを用意します。
セクターはデータを記録する最小単位で、保存したファイルは全てセクターに保存され、ファイルはセクターで管理するのではなく、クラスター単位で管理しています。
なぜ、クラスター単位で管理するのかは後述します。
では実際に見ていきましょう。
4096Bのファイルを保存した場合
4096Bのファイルをブツ切りにして8当分にし、アロケーションユニットサイズ(クラスターサイズ)とファイルの容量が4096Bなので、8個のセクターに収めることが出来ます。 しかし、こんなぴったり収まることはまず無いです。 |
次は、極端に考えてみて、ファイルが1Bだった場合はどうなるのか見ていきたいと思います。
1Bのファイルを保存した場合
保存するファイルが1Bだった場合は、512Bの1つのセクターに収まります。 残りの4095Bのセクターは今後、使用できると思いがちですがファイルを削除しない限りは使用できません。 1Bのファイルだったとしてもパソコンは、ファイルをセクターではなくクラスターで管理しているので4096Bと認識してしまいます。 |
では、513Bのファイルを保存した場合はどうなるでしょうか?
513Bのファイルを保存した場合
1つのセクターが512Bなので、残りの1Bのデータは2つ目のセクターに保存されます。 513Bのファイルもセクターではなくクラスターで管理しているので、パソコンは4096Bのファイルとして認識してしまいます。 |
以上の事から、実際にはまだデータを保存できるセクターがあるのに、ファイルが1Bであっても4096Bであってもパソコンは4096Bと認識してしまいます。
このように無駄に消費してしまっている状態は、パソコンから「実サイズ」と「ディスク上のサイズ」を見比べてみれば納得できます。
次は、実際にパソコン内にあるファイルを見てこの「実サイズ」と「ディスク上のサイズ」のサイズについて触れてみたいと思います。
実サイズとディスク上のサイズの違いについて
ファイルやフォルダを右クリックしてプロパティを開くと、そのファイルやフォルダの詳細な情報が見れて大変便利な機能があります。
時には、プロパティからファイルやフォルダの容量を見ることがあると思います。
下図をご覧ください。
※「サイズ=実データ」「ディスク上のサイズ=アロケーションユニットサイズ(クラスターサイズ)」となります。 |
1Bのメモ帳のファイル
1Bのファイルのサイズは1バイトとなっているのに対して、ディスク上のサイズは4096バイトを使用してしまっている。 |
4096Bのメモ帳のファイル
4096Bのファイルのサイズは4096Bとなっていて、ディスク上のサイズも4096Bとなっている。 |
1Bのファイルをパソコン側は4096B使用していると認識している事になります。
「ディスク上のサイズ=アローケーションユニットサイズ(クラスターサイズ)」
となるので、1つのクラスター分の4096Bを使い切らなければ、無駄に消費していることになります。
この無駄な空き容量がHDD・SSDには無数にあります。
そして、この無駄な空き容量の領域を「クラスターギャップ」と言います。
クラスターギャップが頻繁に起きると、無駄な空き容量が増えHDDの容量は圧迫されてしまいます。
では、ファイルをクラスターで管理せずセクターで管理すればクラスターギャップは起きず、空き容量を無駄なく使えるのでは?」と思うかもしれません。
先述で少し触れましたが、セクターでファイルを管理すると、1つのファイルが細かすぎるのとファイルが連続していないこともあるため、様々なセクターにアクセスしなければなりません。
結果、ファイルを開く(読み込み)、ファイルを保存する(書き込み)作業の時間が、大幅に増えパソコンが重くなってパフォーマンスが落ちてしまいます。
よって、ファイルをセクタではなくクラスタで管理していれば、アクセス回数を減らせたり、連続したファイルになる可能性が増えるため、読み込みと書き込みの時間が短縮できパソコンが高速化します。
次は、アローケーションユニットサイズ(クラスターサイズ)の適正値は、いくつなのか説明していきたいと思いますが、その前にまずは、使用しているパソコンのアローケーションユニットサイズ(クラスターサイズ)を確認してみましょう。
アローケーションユニットサイズ(クラスターサイズ)の確認方法
アローケーションユニットサイズ(クラスターサイズ)の確認は、「コマンドプロンプト」もしくは「Windows PowerShell」から確認することが出来ます。
管理者として実行しなければなりません。
コマンドプロンプトの起動方法は以下になります。
Windows7
左下にあるスタートボタンのすぐ上に「プログラムとファイルの検索」の窓があるので、「cmd」と打ち込むと窓の上に「cmd」と出てきます。「cmd」の文字を右クリック後、「管理者として実行」を左クリック。
Windows8/8.1 「スタートボタン」右クリック後「コマンドプロンプト」を左クリックで管理者で実行。
Windows10 「スタートボタン」を右クリック後、通常はコマンドプロンプトは表示されず「Windows PowerShell」が表示されます。管理者として実行。
※上記の全てのOSは、ユーザーアカウント制御の画面が出てきたら「はい」ボタンを左クリックします。 |
各OSのコマンドプロンプトもしくはWindows PowerShellの起動方法が、文字だけでは解らない場合は下記のリンクを参照してみてください。図を使い案内しております。 |
コマンドプロンプト、もしくはWindowsPower Shellが起動したら、以下のコマンドを入力します。コピペでOKです。
chkdsk c: |
※「c:」の意味はドライブレターになるので例えば、Cドライブ以外のドライブを調べたいのであれば「c」を「d」に置き換えるだけです。ここではUSBメモリを使用しているので、「F」でchkdsk(チェックディスク)を行っています。
結果は、システムファイルによって表示が若干違います。
※フォーマットする際の各システムファイルのアロケーションユニットサイズは「標準のアロケーションユニットサイズ」を選んでおります。 |
NTFSの場合
NTFSの標準のアローケーションユニットサイズは4096B(約4KB)
FAT32の場合
FAT32の標準のアローケーションユニットサイズは8192B(約8.2KB)
exFATの場合
exFATの標準のアローケーションユニットサイズは32768B(約33KB)
アローケーションユニットサイズ(クラスターサイズ)は既定値がいいのか?
最後に、アローケーションユニットサイズ(クラスターサイズ)は、既定値(標準のアローケーションユニットサイズ)でいいのか説明していきます。
パソコンを長年使用しているのであれば一度は経験あると思いますが、フォーマットをする際にアローケーションユニットサイズ(クラスターサイズ)を選ぶ画面が表示されます。
HDDのフォーマットの画面
USBメモリのフォーマットの画面
フォーマットの画面は、最初は見ただけでは分けが解らないと思います。
既定値(標準のアローケーションユニットサイズ)とは、各ファイルシステムによって推奨されるクラスターサイズになります。
- NTFSの標準のアローケーションユニットサイズは4096B(約4KB)
- FAT32の標準のアローケーションユニットサイズは8192B(約8.2KB)
- exFATの標準のアローケーションユニットサイズは32768B(約33KB)
※単位は、KB(キロバイト)→MB(メガバイト)→GB(ギガバイト)となるほど大きくなります。1KBは1024B、1MBは1024KB、1GBは1024MB
結論から言うと、一般的な使い方をしているのであれば、既定値(標準のアローケーションユニットサイズ)で問題ないです。
大きいデータを頻繁に取り扱うのであれば、大容量のHDD・SSDを用意して、アローケーションユニットサイズ(クラスターサイズ)を出来る限り大きくすることにより、ファイルの断片化を防げる事が出来ます。
結果、アクセスの向上が見込めるため、パフォーマンスを上げることが出来ます。
逆に小さいデータを頻繁に取り使うのであれば、クラスタのサイズは小さい方が無駄なクラスターを消費せずに、HDD・SSDの容量を確保することが出来ます。
とはいっても一般的な使い方では、1KBの小さいファイルから今では4.7GBの動画ファイル、下手したらそれ以上のファイルもあるので、適切なアロケーションユニットサイズ(クラスターサイズ)を決めるのは非常に困難です。
アローケーションユニットサイズ(クラスターサイズ)のまとめ
どのアロケーションユニットサイズ(クラスターサイズ)を選べばいいのかは、以下になります。
大きいサイズを選ぶ理由
64KB以上のデータを頻繁に使うようであれば大容量のHDD・SSDを用意し、最大の「64K」の値を選ぶ。exFATでは最大32MBまである。
小さいサイズ選ぶ理由
512Bのデータを頻繁に使うようであれば最小の「512」の値を選ぶ。
既定値(標準のアローケーションユニットサイズ)を選ぶ理由
よく解らなかったり、512B以上のデータがたくさんあるようであれば「既定値(標準のアローケーションユニットサイズ)」を選ぶ。
「アロケーションユニットサイズの意味を深く理解する」については以上になります。
お疲れさまでした!
参考になれば幸いです。
読み終わってすっきりです
文章もやさしさが伝わる感じがします
色もところどころ見やすくなってて
わかりやすかったです
ありがとうございます!
返信が遅くなり申し訳ないです。
まだまだ改善点は多くありますが、そういって頂けると嬉しいです!ありがとうございました!
非常にわかりやすい説明で、素人の自分にもなんとなくイメージをつかむことができました。わたしのようなごく普通の人はPCを道具として使う上で最低限の知識だけで運用していますが、なんだかわからないままに「はい」や「OK」をクリックしていることが多いです。でもたとえばHDDに大量のデータのコピーをしていてふと待ち時間に「そういえばディスク上のサイズと実際のサイズ結構違うけどなんでだろ・・・まいっか」みたいになることがあります。そのふとした疑問が解決されて今日は本当にスッキリしました。こういう情報は書籍で得ようとすると正解にたどり着くまでに時間と労力を要しますよね、本当にありがたいことです。