データ スクラビングは、バックグラウンド タスクを使用してメイン メモリまたはストレージのエラーを定期的に検査し、異なるチェックサムまたはデータのコピーの形式で冗長データを使用して検出されたエラーを修正するエラー修正技術です。データ スクラビングにより、単一の修正可能なエラーが蓄積される可能性が減り、修正不可能なエラーのリスクが軽減されます。
データの整合性は、コンピュータのオペレーティングシステムやコンピュータのストレージおよびデータ転送システムにおけるデータの書き込み、読み取り、保存、転送、または処理において最優先事項です。しかし、現在存在し使用されているファイルシステムのうち、データ破損に対する十分な保護を提供しているものはごくわずかです。[1] [2] [3]
この問題に対処するために、データスクラビングはデータ内のすべての不整合を定期的にチェックし、一般的にハードウェアまたはソフトウェアの障害を防止します。この「スクラビング」機能は、メモリ、ディスクアレイ、ファイルシステム、またはFPGAでエラー検出および修正のメカニズムとしてよく使用されます。[4] [5] [6]
レイド
データスクラビングでは、RAIDコントローラはRAIDアレイ内のすべてのハードディスクドライブを定期的に読み取り、アプリケーションが実際にアクセスする前に欠陥ブロックをチェックします。これにより、ビットレベルのエラーによるサイレントデータ破損やデータ損失の可能性が低減します。[7]
Dell PowerEdge RAID環境では、「パトロール読み取り」と呼ばれる機能により、データのスクラビングと予防保守を実行できます。[8]
OpenBSD
では、このbioctl(8)ユーティリティにより、システム管理者は疑似デバイスのBIOCPATROL ioctlを介してこれらのパトロール読み取りを制御できます。2019年現在、この機能はLSI LogicおよびDellコントローラーの一部デバイスドライバーでサポートされています。これにはOpenBSD 5.8(2015年)以降とOpenBSD 6.4(2018年)以降が含まれます。[9] [10]/dev/bio mfi(4)mfii(4)
FreeBSDとDragonFly BSD
では、 FreeBSD 8.0(2009年)と7.3(2010年)以降、RAIDコントローラ固有のユーティリティを介してパトロールを制御できます。 [11] FreeBSDの実装は、OpenBSD開発者が汎用bio(4)フレームワークとbioctlユーティリティ にパトロールサポートを追加するために使用されました。コントローラ固有のユーティリティを別途必要としません。
mfiutil(8)
2008年のNetBSD
では、OpenBSDのbio(4)フレームワークが拡張され、一貫性チェックのサポートが追加されました。これはioctlコマンドの/dev/bio 擬似デバイスに対して実装され、オプションはそれぞれstartとstop(それぞれと)でした。これは2019年現在、単一のドライバーでのみサポートされています。[12]BIOCSETSTATE BIOC_SSCHECKSTART_VOLBIOC_SSCHECKSTOP_VOLarcmsr(4)
Linux MD RAID はソフトウェア RAID実装として、データ整合性チェックを可能にし、検出されたデータの不整合を自動的に修復します。このような手順は通常、毎週のcronジョブを設定することによって実行されます。メンテナンスは、検査された各 MD デバイスに対して操作check、repair、またはidol を発行することによって実行されます。実行されたすべての操作のステータスと一般的な RAID ステータスは常に利用可能です。[13] [14] [15]
ファイルシステム
Btrfs
Linux用のコピーオンライト(CoW)ファイルシステムであるBtrfsは、障害の分離、破損の検出と修正、ファイルシステムのスクラビング機能を提供します。ファイルシステムがブロックの読み取り中にチェックサムの不一致を検出すると、内部ミラーリングまたはRAID技術が使用されている場合は、まず別のデバイスからこのブロックの正常なコピーを取得(または作成)しようとします。[16]
Btrfs は、バックグラウンドで実行されるファイルシステム スクラブ ジョブをトリガーすることで、ファイルシステム全体のオンライン チェックを開始できます。スクラブ ジョブは、ファイルシステム全体の整合性をスキャンし、その過程で見つかった不良ブロックを自動的に報告して修復しようとします。[17] [18]
ZFS
ファイルシステムと論理ボリュームマネージャを組み合わせたZFSの機能には、データ破損モードに対する検証、継続的な整合性チェック、自動修復などがある。 サン・マイクロシステムズは、データの整合性を重視し、ディスクファームウェアのバグやゴーストライトなどの問題からディスク上のデータを保護するために、ZFSを根本から設計した。[検証失敗] [19]
ZFS には、データ破損やその他の問題
によって発生したサイレントデータ破損をscrub検査して修復する修復ユーティリティが用意されています。
メモリ
現代のコンピュータ メモリチップの高集積化により、個々のメモリ セル構造は、宇宙線やアルファ粒子の放出に対して脆弱なほど小さくなりました。これらの現象によって発生するエラーは、ソフト エラーと呼ばれます。これは、 DRAMおよびSRAMベースのメモリ で問題となる可能性があります。
メモリ スクラビングは、 ECC メモリ、データの他のコピー、または他のエラー訂正コードを使用して、コンピュータのRAM内のビット エラーのエラー検出と訂正を行います。
プログラマブルロジック
スクラビングは、 FPGA を再プログラムするために使用される手法です。これを定期的に使用すると、構成ビットストリームでエラーを見つける必要がなくなり、エラーの蓄積を回避できるため、設計が簡素化されます。
スクラビングに関しては、FPGA を単純に再プログラムすることから部分的な再構成まで、さまざまなアプローチが考えられます。最も単純なスクラビング方法は、一定の周期で FPGA を完全に再プログラムすることです (通常は計算されたアップセット レートの 1/10)。ただし、FPGA は、マイクロ秒からミリ秒単位の再プログラム時間中は動作しません。このような中断を許容できない状況では、部分的な再構成が利用できます。この手法により、FPGA を動作中に再プログラムできます。[20]
参照
参考文献
- ^ 「ZFS ファイルシステムの整合性をチェックする」。Oracle Solaris ZFS 管理ガイド。Oracle。2013 年 1 月 31 日時点のオリジナルからのアーカイブ。2012年11 月 25 日に取得。
- ^ Vijayan Prabhakaran (2006). 「IRON FILE SYSTEMS」(PDF) .コンピュータサイエンスの博士号. ウィスコンシン大学マディソン校。2011年4月29日時点のオリジナルよりアーカイブ(PDF) . 2012年6月9日閲覧。
- ^ Andrew Krioukov、Lakshmi N. Bairavasundaram、Garth R. Goodson、Kiran Srinivasan、Randy Thelen、Andrea C. Arpaci-Dusseau、Remzi H. Arpaci-Dusseau (2008)。「Parity Lost and Parity Regained」。Mary Baker、Erik Riedel (編) 。FAST'08: Proceedings of the 6th USENIX Conference on File and Storage Technologies。2020年8月26日時点のオリジナルよりアーカイブ。 2021年5月28日閲覧。
- ^ 「ストレージ スタック内のデータ破損の分析」(PDF)。2010 年 6 月 15 日のオリジナルからアーカイブ(PDF) 。2012 年 11 月 26 日に取得。
- ^ 「オープン ソース DBMS におけるディスク破損の影響」(PDF)。2010 年 6 月 15 日のオリジナルからアーカイブ(PDF) 。2012 年 11 月 26 日閲覧。
- ^ "Baarf.com". Baarf.com. 2011年11月5日時点のオリジナルよりアーカイブ。2011年11月4日閲覧。
- ^ Ulf Troppens、Wolfgang Mueller-Friedt、Rainer Erkens、Rainer Wolafka、Nils Haustein。ストレージ ネットワークの説明: ファイバー チャネル SAN、NAS、ISCSI、InfiniBand、FCoE の基礎とアプリケーション。John Wiley and Sons、2009 年。p.39
- ^ 「PERC 6 および CERC 6i コントローラについて」。2013 年 5 月 29 日にオリジナルからアーカイブ。2013 年 6 月 20 日に取得。
パトロール リード機能は、物理ディスクの健全性とデータの整合性を確保するための予防策として設計されています。パトロール リードは、構成された物理ディスク上の潜在的な問題をスキャンして解決します。
- ^ "/sys/dev/ic/mfi.c — LSI Logic & Dell MegaRAID SAS RAID コントローラ". BSD 相互参照. OpenBSD .
- ^ "/sys/dev/pci/mfii.c — LSI Logic MegaRAID SAS Fusion RAID コントローラ". BSD 相互参照. OpenBSD .
- ^ 「mfiutil — LSI MegaRAID SAS コントローラを管理するためのユーティリティ」BSD相互参照。FreeBSD 。
- 「mfiutil -- LSI MegaRAID SAS コントローラを管理するためのユーティリティ」。FreeBSD マニュアル ページ。
- ^ "sys/dev/pci/arcmsr.c — Areca Technology Corporation SATA/SAS RAID コントローラー". BSD 相互参照. NetBSD .
- ^ 「RAID 管理」。kernel.org。2013年 9 月 21 日時点のオリジナルよりアーカイブ。2013 年 9 月 20 日閲覧。
- ^ 「ソフトウェア RAID と LVM: データ スクラビング」。archlinux.org。2013年 9 月 21 日時点のオリジナルよりアーカイブ。2013 年 9 月 20 日閲覧。
- ^ 「Linuxカーネルドキュメント: Documentation/md.txt」。kernel.org。2013年9月21日時点のオリジナルよりアーカイブ。2013年9月20日閲覧。
- ^ 「btrfs Wiki: 機能」。btrfs プロジェクト。2012 年 4 月 25 日時点のオリジナルよりアーカイブ。2013年 9 月 20 日閲覧。
- ^ Bierman, Margaret; Grimmer, Lenz (2012 年 8 月)。「Btrfs の高度な機能の使い方」。2014 年 1 月 2 日時点のオリジナルよりアーカイブ。2013年 9 月 20 日閲覧。
- ^ Coekaerts, Wim (2011-09-28). 「btrfs scrub – 破損を修正するにはミラーコピーを使用してください!」。2013-09-21 にオリジナルからアーカイブ。2013-09-20に取得。
- ^ Bonwick, Jeff (2005-12-08). 「ZFS エンドツーエンドのデータ整合性」。2017-05-06 にオリジナルからアーカイブ。2013-09-19に取得。
- ^ 「Xcell journal、第50号」(PDF)。火星上のFPGA。ザイリンクス。2004年。9ページ。2019年8月30日時点のオリジナルよりアーカイブ(PDF) 。 2013年10月16日閲覧。
外部リンク
- 電子メモリのソフトエラー
