Linuxはブロックデバイスサイズを更新しますか?

Linuxはブロックデバイスサイズを更新しますか?

emmc摩耗モニタリングをしてみると、実行中のLinux OSに表示されるサイズを知りたいです。 emmcチップには、他のすべてのバイトレジスタの使用強度を追跡する内部マネージャがあります。理論的には、SSD、USBスティック、emmcチップなどのフラッシュメモリデバイスは、リアルタイム制限に達すると容量が減少します。

 $ lsblk -b

.. 次のようにブロックサイズをバイト単位で返します。

lsblk-b

emmc画像全体の容量とサイズが減少すると、この数字は自動的に更新されますか?

実際に利用可能なブロックサイズをリアルタイムで表示できる他のツールはありますか?

編集する:@Marcusと@Artemのコメントに従う

emmcドライバには、「ライフタイム」マークが実装された仮想ファイルシステムエントリがあります。私の記憶が正しい場合、0x02は80%の容量損失を表し、0x03は90%の容量損失を表します。あなたのemmcが消えたことに気づくのが少し遅れているので、この重要な情報を最初に表示する方法を探しています。

報告:cat /sys/class/block/mmcblk1/device/pre_eol_info

答え1

習慣。 eMMCや一部のフラッシュドライブなどの内部ウェアレベリング機能を備えたデバイスは、最初はフル容量を宣伝しません。

したがって、デバイスには1536ブロックがありますが、システムには1024ブロックしか表示されません。オペレーティングシステムにアクセスできる1024ブロックは同じブロックであるという保証はなく、再割り当てなどが可能です。

したがって、オペレーティングシステムに表示されているサイズを使用して現在の寿命終了ステータスを確認することはできません。

答え2

いくつかのホワイトペーパーを読んだ後の追加アップデート:(Micron)

コメントに自分なりの解釈が混ざり合い、すれ違ったメッセージが出てくるようで、できるだけ正確に表現しようと努力しています。

明らかに、すべてのMicron emmcチップには、予約ブロックと呼ばれる2%の追加メモリ容量があります。 2%はチップの予想寿命低下です。 (これはマーケティング数値に近いと思います)

不良ブロックが検出されるたびに、予約ブロックから新しいブロックに置き換えられます。これは、特定のホットスポットでの摩耗を防止するためにメモリブロックの使用のバランスをとる内部メモリマネージャによって行われる。副作用として、メモリブロックは常に同じ強度で使用されるため、EOLが急速に発生します。

つまり、オペレーティングシステムの立場では、メモリサイズがある程度安定的に維持されるという意味である。

Linuxドライバは、emmcデバイスのEOL推定値を確認するためのエントリを生成します。

報告:

cat  /sys/class/block/mmcblk1/device/pre_eol_info 

そこで数字を見つけることができます:

  • 0x01:正常動作
  • 0x02:予約されたメモリ容量の80%が使用されました。
  • 0x03:予約されたメモリ容量の90%が使用されました。

0x03はチップの深刻な警告です。その時点から、チップは容量を消費し、急速に性能が低下します。

関連情報