Armadilloフォーラム

emmcへの書き込み回数を確認する方法

pocket8137

2018年5月21日 9時21分

emmcの寿命を推定するために、現状何回の書き込みを行っているか確認できるようにしたいのですが、
推奨されている方法などはありますでしょうか。

dumpe2fsコマンドを使って総書き込み回数を算出したのですが、
dumpe2fs の情報は現在の情報ではなく、端末再起動がかかったときなど、
ファイルシステムが更新されたときの情報が表示されているので別の方法を検討しています。

コメント

at_takumi.ando

2018年5月21日 13時18分

安藤です。

以下の mmc-utils というツールで、eMMCの
各種レジスタ値を参照することができます。

https://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git/

eMMCの故障予測が目的であれば、参照するべきは書き込み回数よりも
予備ブロックの残数かと思います。

例えば、仕様で決められている書き込み回数の上限を超えていても
発生したbad blockの数が少なく、代替セクターが十分に残っているケースがあります。

予備ブロックが無くなると、その後bad blockが発生したとき
正しくデータを保持できなくなります。

先に紹介した mmc-utils では、Device Health Report の PRE_EOL_INFO の値を参照することができます。

./mmc extcsd read /dev/mmcblk2 | grep EXT_CSD_PRE_EOL_INFO

PRE_EOL_INFO については、下記データシートの記述をご覧ください。
http://dtsheet.com/doc/1384294/tn-fc-32--e.mmc-device-health-report

CSD[267] PRE_EOL_INFO indicates the device lifetime that is reflected by average reserved blocks.

at_takumi.ando

2018年5月22日 13時42分

>発生したbad blockの数が少なく、代替セクターが十分に残っているケースがあります。

正しくは

"発生したbad blockの数が少なく、予備ブロックが十分に残っているケースがあります。"

です。
言葉を統一できていませんでした。

user_2018-02-14

2018年5月24日 19時59分

横から失礼します。

データシートを拝見させていただいたところ、
bad blockの比率が一定数以上の場合を数値で表現しているようなのですが、
特定の比率の場合に表示するだけでなく、
1日にどの程度予備ブロックを消費するか、分析を行いたいのですが、
何かいい方法はないでしょうか。

* 0x01 : 通常状態

* 0x02 : 80%の予備ブロックを消耗

* 0x03 : 90%の予備ブロックを消耗

以上、よろしくお願い申し上げます。

at_takumi.ando

2018年5月25日 8時50分

安藤です。

>1日にどの程度予備ブロックを消費するか、分析を行いたいのですが、
>何かいい方法はないでしょうか。

予備ブロックの具体的な数は公開されておらず、
それを確認するインターフェースも存在しないため、不可能と思います。

PRE_EOL_INFOの示す、

>* 0x01 : 通常状態
>* 0x02 : 80%の予備ブロックを消耗
>* 0x03 : 90%の予備ブロックを消耗

でしか予備ブロックの消耗率は確認できません。