概 要
RAID 1アドオンは、ファイルシステムのデータの整合性と信頼性を向上させるために使用できるemFileの拡張です。これは、すべてのセクタデータのコピーを別のパーティションに保存することによって実現されます(ミラーリング)。
読み取りエラーが発生すると、データはミラーパーティションから読み取られて復元されます。RAID 1アドオンは、emFileでサポートされているすべてのストレージデバイスで使用できます。
動作
〈操作理論〉
RAID 1アドオンは、パーティション(マスター)のコピーを別のパーティション(ミラー)に保持します。ファイルシステム書き込み要求では、セクタデータは両方のパーティション(マスタとミラー)に書き込まれます。ファイルシステムの読み取り要求では、RAIDアドオンがマスターパーティションからセクタデータを読み取ります。読み取りエラーが発生すると、セクタデータのコピーがミラーパーティションから取得されます。このようにして、データは回復され、エラーはファイルシステムに報告されません。
RAID 1アドオンは、セクタデータを同じストレージデバイスまたは2つの別々のストレージデバイスに格納するように設定できます。1つのストレージデバイスが使用されている場合、前半はマスターパーティションとして使用されます。2つの異なるストレージデバイスを使用する場合、ボリュームのサイズは一致する必要はありません。ファイルシステムで利用可能なセクタの数は、最小のストレージデバイスのセクタの数になります。しかし、両方の記憶装置のセクタサイズは等しいことが必要である。
〈NANDフラッシュエラー回復〉
ザ ユニバーサルNANDドライバは、読み出し動作中に訂正不能なビットエラーが発生した場合にデータ損失を回避するためにRAID1アドオンを利用することができる。訂正不可能なビットエラーの場合、ユニバーサルNANDドライバは、ミラーパーティションからの訂正されたセクタデータを提供するためにRAID1アドオンを要求する。この手順は、NANDブロックのデータが別の場所にコピーされたときに、ユニバーサルNANDドライバによって内部的に実行される読み出し動作と同様に、ファイルシステムからの読み出し要求に適用されます。
〈セクタデータ同期〉
書き込み操作を中断する予期しないリセットは、データの不一致を招く可能性があります。最後に書き込まれたセクタのデータは、マスタにのみ格納され、ミラーパーティションには格納されない可能性があります。再起動後、ファイルシステムは正常に動作し続けますが、このセクタに正確に影響を及ぼす読み取りエラーの場合、古いデータがミラーパーティションから読み取られ、データが破損する可能性があります。この状況は、RAIDボリューム上のすべてのセクタを同期させることで防ぐことができます。アプリケーションは、FS_STORAGE_SyncSectors() API関数を呼び出して同期を実行できます。たとえば、優先順位の低いタスクは、他のファイルシステムアクティビティと並行してこの関数を呼び出すことができます。