ストレージ技術機器とは何ですか?

ストレージ技術機器とは何ですか?

文書やWebページにはこれは明確ではありません。 Linux技術ですか?ストレージデバイスですか?

その他の質問:

  • Linuxテクノロジなら、どのタイプのストレージに適していますか?
  • 「摩耗特性」とは何ですか?
  • MTDパーティション定義にブートパラメータがあるのはなぜですか?

答え1

ほとんどの一般的なLinux(およびより一般的にはUnix)システムは、ブロックデバイスと呼ばれるストレージ抽象化を使用します。ブロックデバイスは一連のブロック(セクタ)です。個々のブロックを読み書きできます。連続したブロックを読み書きすることは、ランダムに読み書きするよりも速いと仮定し、同じ場所に繰り返し書き込むことができ、個々のセクタは近くの他のセクタを邪魔することなく安全に書き込むことができると仮定します。

これはディスクドライブに非常に適したモデルです。これはフラッシュメモリに適したモデルではありません。

書き換える前にフラッシュを消去する必要があります。消去回路は比較的複雑であるため、消去ブロック(特にNANDフラッシュ)は通常書き込みブロックよりはるかに大きいです。各消去ブロックは、失敗するまで限られた回数だけ消去できます。したがって、耐用年数を最大化するには、機器の摩耗と破損のバランスをとるメカニズムが必要です。

2つの方法があります。 1つのアプローチは、標準ブロックデバイスインタフェースを提供し、論理ブロックを他の物理ブロックに再マッピングして摩耗平準化を処理するコントローラを作成することである。場合によっては、「コールド」(ほとんど変更されていません)になります。データは、摩耗の少ないブロックから摩耗の激しいブロックに移動します。ブロック。つまり、通常のファイルシステムはすべて使用できますが、リマッピングシステムは正しく実装するのが困難です。特に、停電を正しく処理することは非常に困難な場合があります。 SSD、USBスティック、SDカードなどはすべてこの方法を使用します。

フラッシュがディスクドライブであるかのように偽装するのではなく、フラッシュチップを直接表す新しいデバイスタイプを作成することも別のアプローチです。その後、ファイルシステム(またはubifsの場合はubiレイヤー)がウェアレベリングを担当します。 Linux はこれらのデバイスを mtd デバイスと呼びます。ハードドライブと同様に、各デバイスは複数のパーティションに分割できます(IIRCパーティションは通常、関連するフラッシュデバイスのパーティションテーブルではなくシステムファームウェアによって定義されます)。このアプローチは、組み込みデバイス、スマートフォン、スマートフォンに似たタブレットでよく見られます。

答え2

いつものように、最高の説明は次のとおりです。ウィキペディアで

デフォルトでは、これは組み込みシステムのオンボードフラッシュデバイスとオペレーティングシステムで見られるブロックデバイスの間の抽象化レイヤ(Linuxデバイスドライバ)です。

関連情報