私はRaspberry Piに基づくミニサーバーを持っています。それらの多くがあります。しかし、現在何らかの理由でSDカードのファイルシステムが破損し、デバイスが正常に動作しなくなったため、比較的頻繁にエラーが発生しています。
より安定したMMCを持つようにCM3+に移行してこの問題を解決する予定ですが、各個々のデバイスの信頼性も向上させたいと思います。
したがって、質問は次のようになります。
2つのブート/ルートパーティション(プライマリパーティションとプライマリパーティションが破損した場合のバックアップ)を持つディスクレイアウトを作成できますか?その後、ブートローダ(grub?)は起動試行を記録し、正常に起動したシステムはそれをリセットします。失敗した起動回数が指定された回数を超えると、バックアップをプライマリデータベースにコピーするか、バックアップから開始します。
答え1
私はRaspberry Piに基づくミニサーバーを持っています。それらの多くがあります。しかし、現在何らかの理由でSDカードのファイルシステムが破損し、デバイスが正常に動作しなくなったため、比較的頻繁にエラーが発生しています。
rootfs用のSDカードは良い考えではありません。少なくとも:
- 記録しないでください。またはtmpfsにログインしてください。
- 不要なFS修正を防ぐためにマウントオプションを調整します(
noatime
、、、nodiratime
...)
より安定したMMCを持つようにCM3+に移行してこの問題を解決する予定ですが、各個々のデバイスの信頼性も向上させたいと思います。
eMMCが良いと思われます。
2つのブート/ルートパーティション(プライマリパーティションとプライマリパーティションが破損した場合のバックアップ)を持つディスクレイアウトを作成できますか?
これが解決策であるかどうかはわかりません。代わりに、より良いファイルシステムを見てみましょう。例えば、F2FSまたはそのようなもの。
その後、ブートローダ(grub?)は起動試行を記録し、正常に起動したシステムはそれをリセットします。失敗した起動回数が指定された回数を超えると、バックアップをプライマリデータベースにコピーするか、バックアップから開始します。
バラよりこの投稿グラブ(Grub)とラズベリーパイ(Raspberry Pi)について。問題は、ラプスベリーパイ固有のローダーが必要であるということです。私の考えでは、そのようなトリックを実行することはできないようです。
私があなたのような問題を解決する必要がある場合、私がすることは次のとおりです。
- 最小のオペレーティングシステムを構築します(たとえば、Yoctoまたは自分で作成したRaspbianを使用)。
- NFS または TFTP を使用して起動し、tmpfs を rootfs として使用します。
- 永続ストレージにのみeMMCを使用すると、明らかに使用が最適化されます。
利点:
- システムファイルはRAMにのみ存在するため、eMMCやSDカードを焼くことを心配する必要はありません。
- (NFS / TFTPサーバー上)1つのツリーを更新して再起動すると、すべてのLabsberry Piが更新されます。
欠点:
- rootfsがRAMに保存されるため、アプリケーションで使用できるRAMが少なくなります。