
私はWikipediaや他のサイトを調べて、次のような情報を得ました。
セクタ:最小アドレス単位(通常は512バイト)
集まる: 最小の割り当て単位 (1 つ以上のセクターに相当し、クラスターの数はファイル システムによって異なります)。
以下の例では、セクター = 512 バイト、クラスター = 8 セクター = 4096 バイトとします。ファイルを作成しようとすると、ファイル システムは何をするのか、理解するのに苦労しています。最小の書き込み/読み取り単位は 4096 バイトですか、それとも 512 バイトですか?
答えが 4096 バイトの場合: ディスク ドライブの製造元が 512 バイトを最小のアドレス指定単位として提供しているのに、ファイル システムはなぜクラスターを最小単位とみなすのでしょうか。つまり、そうすることにはどのような利点があるのでしょうか。
答え1
クラスタ/アロケーションユニット/ブロックを最小単位とするファイルシステムの利点は、ディスク全体をアドレス指定できる点です。セクターあたりすべてをインデックスするには、より多くのビット数が必要になります。ビット数が増えると、追跡するアドレスや項目の数が増えるため、処理が遅くなります。デバイスへの 1 回のアクセスごとに 64 ビット以上 (2^64 = 1.8e16) を使用するよりも、たとえば 48 ビット (2^48 = 2.8e14) を使用して場所をアドレス指定 (およびインデックス付け) する方がはるかに効率的です。
しかし、はい、クラスタサイズまたはアロケーションユニットサイズ(Windows)またはブロックサイズ(Linux)は、定義されたファイルシステムに応じて調整可能であり、それが可能な最小サイズです。通常はOS がファイル データを保存するためにアクセスすることはできません。「ファイル システムの定義」とは、ディスクをフォーマットすること (またはそのフォーマットの仕様) を意味し、ディスク上のすべてのデータを消去することを意味します。したがって、クラスター サイズが 4kiB のディスクでは、1 バイトのファイルは、例のように 4k クラスター全体を占めることになります。はい、OS はそのクラスター内の特定のセクターに書き込むことができますが、ファイルは引き続きそのクラスターの同じセクターを使用します (ファイル サイズは、その中にあるデータに関係なく、常にクラスター サイズの倍数になります)。クラスター サイズを変更するには、ディスクを再フォーマットする必要があり、すべてのデータを消去する必要があるのはそのためです。
ちなみに、クラスター サイズが小さいほど、小さなファイルをより効率的に保存できます。ただし、クラスターの数が増えるため、ディスク全体の速度は低下します。PC が長時間ディスクに負荷をかけ続けるのは、非常に多くの小さなブロックを読み書きしようとしているためであり、その数が多いとすべてが遅くなります。
例: 1kiB のクラスターを持つディスクに保存された 768 バイトのファイル 100,000 個:
実際のファイルデータは768kBバイト
各ファイルはディスクの 1024 バイトを使用するため、ディスクの 1.024 MB が使用されます。
スペース効率 = 0.768/1.024 = 75% (悪くない...)
同様に、映画、画像、オーディオなどの少数の大きなファイルを格納するディスクでは、クラスターが大きいほど適しています。クラスターの数が少ないため、ディスクは一般的に高速になります。ただし、多数の小さなファイルを格納する場合は注意してください。
例: 64kiB のクラスターを持つディスクに保存された 768 バイトのファイル 100,000 個:
実際のファイルデータは768kBバイト
各ファイルがディスクの 65535 バイトを使用するため、6.55 GB のディスクが使用されます。
スペース効率 = 0.768/6553.5 = 0.00017% !!!
オペレーティング システムなどの混合コンテンツを含むディスクでは、ほとんどのファイルのサイズが中~小であるため、クラスター/ブロック サイズも通常中~小になります。最終的には、スペースの使用率と速度の間で妥協点が生まれます。
ディスク自体は、1 秒あたりに最も多くのデータを転送できるため、32kB から 256kB のブロックを好みます。
これはすべて、従来の機械式回転プラッター磁気ストレージ ハード ディスクに関するものです。SSD またはソリッド ステート ドライブは、従来のハード ディスクを急速に置き換えつつあり、はるかに高速な読み取り/書き込み/シーク速度を誇ります。では、今日の SSD ではクラスター サイズは重要ですか? まあ、平均的なユーザーにとってはそれほど重要ではないと思いますが、それは SSD (および最新のコンピューター) がすでにはるかに高速であるためです。磁気ハード ディスクよりもすでに 5 倍高速であるのに、SSD の 10% の速度低下に誰が気づくでしょうか?
SSDのクラスタサイズにもっと影響を与えるのはスループットです。(フォーマットとベンチマークによって)特定のクラスタサイズが機能することが分かるかもしれません。遠いその SSD では、他の SSD よりも転送速度が速くなります。たとえば、一部の SSD は 8kiB または 4kiB の転送に最適化されています。これは、内部の電子機器が要求ごとに転送するデータ ブロックの大きさに関係します。OS が使用しようとしているもの (クラスター サイズ) をその SSD の最適なサイズと一致させると、転送速度が速くなります。
ただし、SSD 上のファイルの「オーバーヘッド」の理由から、クラスター サイズは依然として重要です。
答え2
メーカーによって定義されたセクター サイズ。
ここで、2種類のセクターサイズが確認できます。512bまたは4Kb
2010年以前のHDDセクターサイズ: 512b
2010年以降、メーカーはブランドを守るHDD 4Kの生産を開始します。
現在 2018 年では、70% を超える多くのユーザーが 512b セクター サイズを使用しています。
まれに、一部の HDD 製造元がセクター サイズを変更するための独自のツールを提供しています。
Cluster (FAT 用) は BLOCK (Linux 用) システムと同じです。
1つまたは複数のセクターが含まれます
ファイル システムはクラスター (またはブロック) のみを扱います。
製造元が提供するネイティブセクターと呼ばれる論理セクター。
ユーザーは、フォーマットまたはパーティション ツールを使用して物理セクター (= クラスターまたはブロック サイズ) のみを変更できます。
論理セクター/物理セクター = 512/4096 = メーカーセクター/ユーザーセクター = 変更不可/変更