コンピューティングにおいて、エラー回復制御( ERC ) ( Western Digital :時間制限付きエラー回復( TLER )、Samsung / Hitachi :コマンド完了時間制限( CCTL )) は、システム管理者がドライブのファームウェアが読み取りまたは書き込みエラーからの回復に費やすことができる時間を設定することを可能にするハードディスクの機能です。回復時間を制限することで、ハードウェアまたはソフトウェアRAID環境でのエラー処理を改善できます。場合によっては、エラー処理をハードドライブで実行するか RAID 実装で実行するかで競合が発生し、ドライブが使用不可とマークされ、パフォーマンスが大幅に低下しますが、これは他の方法では回避できたはずです。
概要
最近のハード ドライブには、セクターを内部で再マッピングし、他の形式のセルフテストとリカバリを実行することで、一部の読み取り/書き込みエラーから回復する機能があります。このプロセスには数秒、または (使用頻度が高い場合は) 数分かかることがあり、その間ドライブは応答しません。ハードウェア RAID コントローラとソフトウェア RAID 実装は、数秒以内に応答しないドライブを認識し、そのドライブを信頼できないものとしてマークし、使用を中止してパリティ データからアレイを再構築する必要があることを示すように設計されています。これは長いプロセスであり、パフォーマンスを低下させ、結果として生じる追加の作業負荷でさらに多くのドライブが故障すると、壊滅的な結果になる可能性があります。
ドライブ自体は本質的に信頼性が高くても、不良セクタがいくつかある場合、TLER および類似の機能により、アレイ コントローラに失敗した操作を通知する前に検出されたエラーの修正に費やす時間を制限することで、ディスクが不必要に「故障」としてマークされるのを防ぎます。アレイ コントローラは、ドライブ全体を故障としてマークするのではなく、関連する限られた量のデータ回復を処理できます。
典型的なデフォルト
実際には、TLER および同様の機能は、オンドライブ エラー処理のパフォーマンスを制限し、問題がある場合、ハードウェア RAID コントローラおよびソフトウェア RAID 実装がエラーを処理できるようにします。
一般的に、 Raptor 、Caviar RE2、RE2-GP (RAID エディション)などのWestern Digitalエンタープライズ ドライブには、TLER 読み取りが「有効」(7 秒) および TLER 書き込みが「有効」(7 秒) で付属していますが、Caviar SE、SE16、GP などのデスクトップ ドライブには、TLER 読み取りと書き込みが無効 (無効にするには 0 秒に設定) で付属しています。
スタンドアロンと RAID の考慮事項
RAID アレイでは、ディスクの読み取りまたは書き込みエラーからの回復時間が RAID 実装のタイムアウトしきい値を超えないように、TLER を「有効」にしておくのが最適です。ドライブがタイムアウトすると、ハード ディスクを手動でアレイに再度追加する必要があり、ハード ディスクの再構築と再同期が必要になります。TLER を有効にすると、タイムアウト前にエラー修正を中断してデータ セグメントの障害のみを報告し、この問題を回避できます。その結果、RAID アレイの信頼性が向上します。
スタンドアロン構成では、TLER を無効にする必要があります。ドライブは冗長化されていないため、セグメントが障害として報告されると、手動による介入が増えるだけです。ディスクをドロップするハードウェア RAID コントローラまたはソフトウェア RAID 実装がない場合、通常の (TLER なしの) 回復機能が最も安定します。
ソフトウェア RAID 構成では、TLER が役立つかどうかはオペレーティング システムによって異なります。たとえば、FreeBSD では ATA/CAM スタックがタイムアウトを制御し、タイムアウトが発生すると徐々に増加するように設定されています。したがって、TLER のないデスクトップ ディスクがセクター読み取りへの応答を遅らせ始めると、FreeBSD は、ディスクがアレイから早期に削除されるのを防ぐために、タイムアウトを徐々に長くして読み取りを再試行します。
ZFS
ZFSファイルシステムは、不良と報告されたセクターや読み取りに非常に長い時間がかかるセクター (非 TLER ドライブなど) にデータを即座に書き込むように設計されています。これにより、ほとんどのドライブで弱いセクターに対して即時のセクター再マップが強制されます。[引用が必要]
RAID コントローラ
ハードウェアRAID コントローラの切断タイムアウト値はベンダーによって異なる場合があります。そのため、コントローラがドライブをタイムアウトする前に TLER がトリガーされる必要があります。たとえば、3ware 9650SE ではタイムアウトとして 20 秒が使用されますが、[1] IBM x シリーズで使用される LSI Logic では 10 秒です。[2]
Intelサーバー マザーボードや最新のデスクトップ マザーボードに組み込まれている、広く利用可能なIntel Matrix RAID / Intel Rapid Storage Technology は、真のハードウェア RAID コントローラーではなく、疑似ハードウェア コントローラーです。
ソフトウェアRAID
Linux mdadm は単に保持してドライブの回復を完了させます。ただし、SCSI ディスク層のデフォルトのコマンド タイムアウト (/sys/block/sd?/device/timeout) は 30 秒です。[3]その後、ドライブのリセットを試行し、失敗した場合はドライブをオフラインにします。[4]
ERCの変更
ATA-8規格
2006 ATA-8規格では、SCTエラー回復制御コマンドが定義されています。[5]このインターフェースを実装したハードドライブでは、smartctlユーティリティ( smartmontoolsパッケージの一部)を使用して、エラー回復タイムアウトを変更できます。[6] 2018年にACS-4は、再起動後も設定を維持する機能を追加しました。これは現在、smartctlでサポートされています。[7]-l scterc
smartctlユーティリティによるタイムアウト動作の制御は、すべてのハードディスクドライブで機能するとは限りません。これは、一部のメーカーがデスクトップドライブを ERC パラメータのサポートを含まないように変更したためです。[8] [9]これは、より高価な RAID/エンタープライズ モデルの販売を促進するためだと言われています。[要出典] smartctl の元の ERC パッチを書いた Richard Gregory は、Western Digital が予告なしに新しいモデルをリリースして ERC サポートを撤回したと報告しています。[6]
Windowsでは、smartctl(クロスプラットフォーム)に加えてHDAT2プログラムも利用可能です。[6]
SCSI規格
SBC-4は、ドライブがエラー回復を実行する方法を定義するために使用される読み取り/書き込みエラー回復モードページの回復時間制限フィールドについて説明します。[10] sdparmプログラムは、この設定を変更できます--set=RTL。[11]
ベンダーユーティリティ
ウエスタンデジタル
WDTLER.EXEユーティリティを使用すると、Western Digital ハード ドライブの TLER パラメータを有効または無効にすることができます。このユーティリティはDOS用に書かれています。このユーティリティは、コンピューターに接続されているすべての互換性のある Western Digital ハード ディスク ドライブで動作し、変更を行います。変更は電源を入れ直しても保持されます。Western Digital は、FAQ でこのツールについて言及していました。[12]
このユーティリティには、すべてのハード ドライブの TLER 設定の現在の状態を取得するTLERSCAN.BAT 、TLER を有効にするTLER-ON.BAT、およびTLER を無効にするTLER-OFF.BATの 3 つのバッチ ファイルが付属しています。付属のTLER-ON.BATは、読み取りおよび書き込み TLER 時間を 7 秒に設定します。カスタム タイムアウトのパラメータを使用して、 WDTLER.EXEユーティリティを直接使用することもできます。
-r# -w#
Western Digital は、新しいドライブでWDTLER.EXEユーティリティを使用すると、ファームウェアが損傷し、ディスクが使用できなくなる可能性があると主張しています。このユーティリティは Western Digital から入手できなくなり、新しいドライブでは TLER 設定を変更できなくなります。RE ディスクは RAID アレイにのみ適しており、Caviar は非 RAID 使用にのみ適しています。このユーティリティは、古いドライブ[どのドライブですか? ]でも引き続き使用できます。
日立
日立のカスタマーサービスは2009年に、ERCを変更するための機能ツール(CCTLと呼ばれる)があると述べました。[12]
シーゲイト
Seagate は、TLER を含む多くのファームウェア設定を調べて変更できるopenSeaChestユーティリティを提供しています。 を使用してTLER を設定できない場合、関連するコマンドライン コマンドはおよびです。
smartctl -l scterr,x,yopenSeaChest_Configure -d /dev/sg0 --sctReadTimeropenSeaChest_Configure -d /dev/sg0 --sctWriteTimer
参考文献
- ^ 「9.5.2 Complete Codeset からの 9650SE 9690SA のユーザー ガイド」。lsi.com。2012年2 月 3 日時点のオリジナルよりアーカイブ。2015年6 月 10 日閲覧。
- ^ BIOS RAID Config Utility > 詳細デバイスプロパティで利用可能
- ^ "linux/sd.h at master · torvalds/linux · GitHub". GitHub .
- ^ 「Linux SCSI サブシステム: SCSI EH」. kernel.org .
- ^ ATA/ATAPI コマンド セット (ATA8-ACS)
- ^ abc Richard Gregory. 「その機能を実装した smartctl のオリジナルパッチに関する著者の説明」。2013 年 9 月 10 日時点のオリジナルよりアーカイブ。2013年 2 月 15 日閲覧。
- ^ 「#1427 (ACS-4 で追加された SCT エラー回復タイマー機能のサポートを追加) – smartmontools」。www.smartmontools.org。
- ^ 「Re: エンタープライズクラスの SATA または SAS ドライブを使用した md RAID」。spinics.net。
- ^ 「Seagate FAQ: エラー回復制御とは何ですか?」。seagate.com。
- ^ 「INCITS 506-202x - 情報技術 - SCSIブロックコマンド - 4 (SBC-4) ドラフト改訂22」。2020年9月15日。 2023年5月22日閲覧。
- ^ – Linuxプログラマーズマニュアル– 管理および特権コマンド
- ^ ab 「TLER / CCTL / ERC スレッド」。[ハード] | フォーラム。 2010 年 11 月 16 日。
外部リンク
- Linux Raid wiki: タイムアウトの不一致
- Western Digital FAQ 回答 ID 1397: デスクトップ エディションと RAID (エンタープライズ) エディションのドライブの違い[永久リンク切れ ]
- 時間制限付きエラー回復 (TLER) 情報シート、Western Digital、2013 年 1 月
- サムスンCCTL
