ファイルシステムのいくつかのストレージパラメータ

i ノードのサイズ

ファイルシステムを作成(フォーマット)すると、記憶領域は連続する2つの記憶領域に分割されます。ファイル システム オブジェクトを保存するために使用されるメタ情報データ。inode で構成されるテーブルです。各 i ノードはデフォルトで 256 バイトまたは 128 バイトです。もう 1 つは「ファイル システム オブジェクト」のコンテンツ データを保存するために使用され、512 バイトのセクターと 8 セクターから構成される 4K バイトのブロックに分割されます。ブロックは読み書き時の基本単位です。ファイルシステムの i ノードの総数は固定です。これにより、ファイル システムが保存できるファイル システム オブジェクトの総数が制限されます。一般的な実装では、すべての i ノードがファイル システムのストレージ容量の約 1% を占有します。

ファイル システム内の各「ファイル システム オブジェクト」は「inode」データに対応し、整数値によって識別されます。この整数は、多くの場合、inode 番号 (「i 番号」または「inode 番号」) と呼ばれます。ファイルシステムの inode テーブルの格納場所とエントリの総数は固定されているため、inode 番号を使用して inode テーブルのインデックスを作成できます。

i ノードには、所有者、アクセス権 (読み取り、書き込み、実行)、タイプ (ファイルまたはディレクトリ)、コンテンツ変更時刻、inode 変更時刻、最終アクセス時刻、対応するファイル システムのアドレスなど、ファイル システム オブジェクトのメタ情報が格納されます。メモリブロックなど。ファイルの inode 番号がわかれば、ファイル コンテンツ データの保存アドレスは inode メタデータで見つけることができます。

Linuxでは、ファイル名はファイルのinodeには記録されませんが、ディレクトリのブロックにファイル名が記録されます。したがって、ファイルの追加/削除/名前変更を行う場合は、ディレクトリの w 権限に関連します。もう 1 つの直感的な感覚は、現在のファイルの使用に影響を与えることなく、使用しているファイルの名前を変更したり、ディレクトリを変更したり、ゴミ箱に入れたりすることができることです。これは Windows では考えられないことです。

ブロックサイズ

セクター (セクター) は、ディスクの読み取りおよび書き込みデータの最小単位 (通常のサイズは 512 バイト) であり、ディスク ハードウェアの設計時に決定されます。これに対応して、ブロックはファイル システムがデータを読み書きするときの最小単位です。これはファイル システムの作成時に決定されます。一般的なブロック サイズは 1024/4096 バイトです。ブロック サイズは正確に整数倍であることがわかります。もちろんこれは偶然ではなく、実際には、ブロックは複数の連続したセクターで構成されています。

一部のファイル システム (ext2 など) では、ファイル システム管理をより効率的にするために、複数のブロックがブロック グループとして形成されます。

ブロックグループ

Ext4 ファイルシステムでは、ディスク領域をいくつかのグループに分割し、このグループ単位でディスク領域を管理しており、このグループをブロックグループ(Block Group)と呼びます。では、なぜブロックグループに分けるのでしょうか? その主な理由は、ディスクの管理を容易にするためで、ディスクがいくつかのグループに分割されるため、上位層がデータにアクセスする際の衝突の確率が大幅に減少し、ファイルシステム全体のパフォーマンスが向上します。ブロックグループとは、簡単に言うとディスク領域であると同時に、この領域のディスクを管理するためのメタデータが内部に存在します。

簡単に言うと、スーパー ブロックはファイル システム全体を管理する (またはファイル システム全体をホストするディスクとして理解される) のに対し、ブロック グループは領域内のファイル システム (またはディスクとして理解される) を管理することがわかります。管理の粒度は徐々に小さくなります。より詳細な管理単位についても後で学習します。

IOスケジューラ

各ブロック デバイスまたはブロック デバイスのパーティションには独自のリクエスト キュー (request_queue) があり、各リクエスト キューは、送信されたリクエストを調整する I/O スケジューラを選択できます。I/O スケジューラの基本的な目的は、磁気ヘッドの移動を減らして効率を向上させるために、ブロック デバイス上の対応するセクタ番号に従ってリクエストを配置することです。各デバイスのリクエスト キュー内のリクエストは順番に応答されます。実際には、このキューに加えて、各スケジューラ自体も、送信されたリクエストを処理するために異なる数のキューを維持しており、キューの先頭にあるリクエストは、応答を待つために、やがてリクエスト キューに移動されます。

ジャーナルオプション

(1).journal
data=journal モードは、データ ブロックとメタデータの完全なログを提供します。すべてのデータは最初にログに書き込まれ、次にディスク (電源オフの不揮発性記憶媒体) に書き込まれます。ファイル システムがクラッシュした場合、ログを再生してデータとメタデータを一貫性のある状態に戻すことができます。ジャーナル モードのパフォーマンスは、すべてのデータをログに記録する必要があるため、3 つのモードの中で最も低くなります。
(2).ordered
data=owned モードでは、ext4 ファイル システムはメタデータ ログのみを提供しますが、メタデータ情報とデータ変更に関連するデータ ブロックをトランザクションと呼ばれる単位に論理的にグループ化します。メタデータをディスクに書き込む必要がある場合、メタデータに関連付けられたデータ ブロックが最初に書き込まれます。つまり、最初にデータがディスクに配置され、次にメタデータが記録されます。一般に、このモードのパフォーマンスはライトバックよりわずかに劣りますが、ジャーナル モードよりははるかに高速です。
(3).writeback
data=writeback モードでは、メタデータがログに送信されるときに、データを直接ディスクに送信できます。つまり、メタデータのログは記録されますが、データは記録されず、データがメタデータよりも先にディスクに配置されるという保証はありません。writeback は、ext4 が提供する最高のパフォーマンス モードです。

おすすめ

転載: blog.csdn.net/weixin_43912621/article/details/131824371