SDカードの破損防止


11

私の組み込みLinuxデバイスは、特定の診断データを保存するためにSDカードを使用しますが、内部フラッシュにはあまりにも多すぎます。

問題は、デバイスの電源が予期せずオフになった場合、カードのファイルシステム(FAT32)が破損することです。

予期しない停電やユーザーがそのように電源を切ることを防ぐ方法はなく、デバイスは比較的メンテナンスフリーである必要があります。さらに悪いことに、データは継続的に書き込まれるため、破損は非常に頻繁に発生し、Linuxは障害のあるFSを検出すると、読み取り専用でサイレントに再マウントします。

これを軽減するためにどのような方法を提案しますか?起動時にfsck.vfatを自動的に実行するだけで十分ですか?

詳細情報:

  • ユーザーがカードを取り外し可能と見なさないでください。それは内部ディスクと考える必要があります。その上に保存されたデータはすべて、ネットワーク経由またはusbドライブ経由でダウンロードできるようになり、システムは自動的に最も古いエントリを削除します。つまり、平均的なPCで読み取る必要はありません。
  • システムは現在、FAT、yaffs、jffs2をサポートしています。カーネルに他のファイルシステムを追加することは可能ですが、他の手段が存在する場合は、最初にそれらを優先します。
  • 書き込みは、データ損失なしで数分間でもオンデマンドで中断できます。
  • 部分的なデータ損失または軽微な破損は許容されます。ロギングの完全な停止はそうではありません。
  • ほとんどの場合、電源オフイベントは完全に予測不能です。
  • システムはARM9、200MHZ、64MB RAM、32MBの内部フラッシュで実行されており、主な役割のためにCPUパワーのほとんどを使い果たします。凝ったリソースを大量に使用するソリューションを検討する際には、これを考慮してください。

3
おそらく既に考えられているかもしれませんが、この質問をうろついている他の人には言及する価値があります:ほとんどのフラッシュカード(SD、CFなど)には、数千サイクルの書き込み耐性しかありません(せいぜい)。データロギングまたは同様のタスクに通常のカードを使用すると、最終的に(そして一般的に人々が考えるよりも短い時間で)それらを殺します。
クリスS

@ChrisS:これは主に追加のみであり、最も古いエントリを最新のエントリに置き換えますが、書き込みのロードバランシングが非常に優れているという性質があります。特に、カードを埋めるのに数か月かかります。問題はFATエントリ自体にある可能性がありますが、私はコントローラがそれについて賢明な何かを作ると信じています。
SF。

デバイスの電源がオフで、このデータをカードに書き込まない場合の費用はいくらですか?診断データが書かれていない場合、多くの時間やお金を失うか、単にログファイルを持たないだけですか?
フライハイト

1
@Freiheit:顧客向けに販売されているまったく重要ではないものの、かなりあいまいな機能が欠落しており、さらに他の誰かがひどく悪を犯してスケープゴートを探している場合、裁判所の防御手段の1つを失います。障害が発生する可能性が最も高い前のデータが最も重要です。これは、デバイスが最後の瞬間まで正常に機能したことを証明するものであり、自身の障害がイベントを災害に拡大させたという証拠ではありません。
SF。

了解しました。重要なデータのデータを明確にキャプチャしています!
フライハイト

回答:


8

block2mtdドライバを使用して、SDカード用に他の場所で使用していると思われるトランザクションjffs2またはyaffs(2)ファイルシステムを使用できます。これにより、電源切断時のデータ損失またはファイルシステム破損の問題が解決します。

ただし、他の問題が発生する可能性があります。SDカードにはウェアレベリングとセクターリマッピングのメカニズムが備わっている可能性が高いため、これらはjffs2とyaffsの実装に干渉してまったく同じことを行い、SDカードの寿命またはパフォーマンスを低下させる可能性があります。これが問題でない場合は、試してみる価値があります。


2GBのSDカードを1か月または2か月使用すると、完全にランダム化された負荷分散でも摩耗の限界に達することは問題になりません。
SF。

5

使用しているカーネルがvfatのフラッシュおよび/または同期フラグをサポートしているかどうかを確認してください(一部のバージョンでは無視されているようです。注意してください!)

または、すべてが1つのファイル(生のログストリームの場合のように!)またはいくつかの固定サイズファイル(パーティションを使用してください)に移動できる場合は、ファイルシステムを完全に廃止します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.