ファイルシステムでブロックデバイスを物理的にアドレス指定する方法

ファイルシステムでブロックデバイスを物理的にアドレス指定する方法

これに、以下はファイルシステムのアドレッシングに関するものです。

ファイルシステムは、物理メディア上のブロックがどこに配置されるべきかを気にする必要はない。これはデバイスドライバの操作です。

これに関連するいくつかの質問があります。

  1. inodeの一部であるポインタに論理ブロックインデックスが含まれていますか、それとも実際の物理アドレスが含まれていますか?
  2. 前者の場合、ブロックインデックスと実際の物理位置のマッピングはどこに保存されますか?
  3. 物理アドレス指定(例:SSDデバイス)の例はありますか?

ベストアンサー1

inodeの一部であるポインタに論理ブロックインデックスが含まれていますか、それとも実際の物理アドレスが含まれていますか?

ファイルシステムを含むブロックデバイスの先頭に基づいて論理的です。

では、ブロックインデックスと実際の物理位置のマッピングはどこに保存されていますか?

このマッピングは、複数のレイヤで発生する可能性があります。

  • LVMを使用する場合、論理ボリュームデバイスのブロック範囲を特定の物理ボリュームブロックデバイス+オフセットにマッピングするマッピングテーブルを提供します。

  • ソフトウェアRAIDはまた、いくつかの(簡単で体系的な)方法でRAIDデバイスのブロックを基本ブロックデバイス(使用されている場合)のブロックにマッピングします。

  • パーティショニング装置は、パーティション開始からディスク開始までの距離に等しい論理ブロック番号に単純オフセットを適用する。

  • 最新のSATA、SAS、およびNVMeはすべて、デバイスの先頭から番号付けされた論理ブロックに基づいたアドレッシングを使用するため、ディスク自体だけが物理的な物理的な場所を知ることができます。 HDDの場合、従来のシリンダ/ヘッド/セクタの物理アドレス指定はずっと前に消えていました。最新のHDDは、内側シリンダよりも外側シリンダに多くの物理セクタがある可能性があり、他の問題が発生する可能性があります。 SSDの場合は、ウェアレベリングテーブルを介して論理ブロック番号をマッピングして、物理ブロック番号を見つけます。

各レイヤーを個別に見ると、上位ブロック番号を「論理的」、下位ブロック番号を「物理的」と呼ぶのが一般的ですが、複数のレイヤーが重なっている場合、実際には実際のストレージデバイス自体に到達するまでは一種の「論理」が必要です。 。

物理アドレス指定(例:SSDデバイス)の例はありますか?

実際のSSDのファームウェアを開発/デバッグ/ハッキングしたり、SSDからはんだ付けされた緩いフラッシュチップのフォレンジック調査を行わない限り、物理的な物理アドレス指定にアクセスする可能性はほとんどありません。独自のベンダー固有のソリューションを含めることができます(翻訳:各製造元は自分が最も良いと思うことを実行でき、正確な実装は営業秘密と見なすことができます)。状況は最新のハードドライブに似ています。

カーネルの観点から見ると、すべての最新のストレージデバイスは固定サイズの長い論理ブロック行にすぎず、デバイスの先頭のブロック#0から始まり、単純な増分ブロック番号を使用して番号が付けられます。物理記憶装置に加えて、物理的な物理アドレス指定は実用的ではない。

おすすめ記事