Xiaobai SSD障害の原因をトラブルシューティングするにはどうすればよいですか? | SSD 障害分析 | NVMe Cli エラー レポートおよびログ機能から手がかりを見つける

NVMe™ テクノロジーは SSD 用にゼロから構築されており、元の NVMe 仕様には、エラー、デバイスの健全性、耐久性を監視するための標準 SMART (自己監視、分析、およびレポート テクノロジー) ログが含まれていました。

それ以来、強化されたエラー レポート、ログ記録、管理、デバッグ、テレメトリなど、多くの機能が NVMe テクノロジーに組み込まれてきました。これらの機能は、オープンソース管理ツールから OEM 管理コンソールに至るまであらゆるものに組み込むことができ、SSD のステータスと健全性の監視に役立ちます (SSD に障害が発生した場合のユーザーへの通知など)。さらに重要なのは、顧客は、障害が発生する場所と理由、および障害がいつ発生するかを理解して、SSD がスムーズかつ適切に動作していることを保証したいと考えています。

管理ツール、ログ ページ、耐久性モニタリングなどは、デバイスの障害、エラー番号、エラー タイプを特定して特定するのに役立ちます。これらのエラーには、ハードウェア障害、整合性エラー、メディア エラー、温度の問題などが含まれる場合があります。NVMe テクノロジーの具体的な機能を詳しく説明する前に、SSD がどのように故障するかを理解することが重要です。そうすれば、これらのツールを使用して故障の予測と防止に役立てることができます。また、故障が発生した場合には、ツールを使用して問題のトラブルシューティングを行い、状況を修復することができます。

SSD の障害は通常、次のカテゴリに分類されます。

システムの互換性がない- この場合、SSD には何も問題はありませんが、互換性エラーにより通常の動作が妨げられます。例としては、システムがハングしたり、SSD が列挙されなかったりします。このような場合、通常、お客様は SSD を製造元に返却します。

SSD の耐久性- SSD の耐久性には限界があり、データの書き込みにより最終的に SSD が消耗します。幸いなことに、ワークロードと SSD を理解することで、これを正確に予測してモデル化でき、NVMe テクノロジはこれをリアルタイムで監視する統計を報告できることです。

ファームウェア エラー- SSD ファームウェアは複雑で、データを転送するために多くのワークロードと状態の特殊なケースを処理する必要があります。SSD ベンダーは、本番環境に入る前に可能な限り多くのファームウェアの問題を排除しようとしますが、完全な検証と検証ではすべてのファームウェアの問題を検出できるわけではありません。SSD の障害のほとんどはファームウェアの障害によって引き起こされます。

メディア エラー- SSD にはさまざまなクラスがあり、エンドツーエンドのデータ保護、電力損失保護、RAID、XOR、またはその他の技術による SSD メディア内の冗長性を備えたものもあります。ただし、NAND フラッシュやその他のストレージおよびメモリ クラスには障害があり、障害が多すぎると SSD が動作しなくなる可能性があります。

ハードウェア エラー- コンデンサ、抵抗器、電源管理回路が故障している可能性があります。この状況は比較的まれですが、発生した場合、結果はより深刻になる可能性があります。

1 ログ分析を使用して問題を分析するにはどうすればよいですか?

ログ ページは SSD に保持され、ホスト ソフトウェアでいつでも読み取ることができます。以下は、NVMe テクノロジーで使用されるさまざまなログ ページです。

1.1 エラーログページ

エラー ログ ページは、エラーが報告されなかったり失われたりしないように、すべてのエラーを記録するために使用されます。NVMe ドライブは、発生したすべてのエラーを記録するエラー ログ ページを維持します。このログ ページには、エラーの数、エラーの発生元のキュー、影響を受けたデータと名前空間に関する重要な情報が含まれています。これは、問題のあるドライブとシステム内で考えられるエラーの原因を特定するために重要です。

sudo nvme error-log /dev/nvme0n1

Error Log Entries for device:nvme2n1 entries:64
Entry[ 0]
error_count     : 500
sqid            : 0
cmdid           : 0x1008
status_field    : 0x6002(Invalid Field in Command: A reserved coded value or an unsupported value in a defined field)
phase_tag       : 0
parm_err_loc    : 0x28
lba             : 0
nsid            : 0
vs              : 0
trtype          : The transport type is not indicated or the error is not transport related.
cs              : 0
trtype_spec_info: 0

1.2 SMART ログページ

SMART ログ ページは、ドライブに関する一般的な正常性情報をレポートするために使用されます。その主な健全性インジケーターは重大な警告と呼ばれ、ドライブの問題を警告します。NVMe ドライブは、問題の種類をホストに通知します。問題とは、メディア エラーによりドライブが機能低下または読み取り専用モードになっていること、ドライブが現在温度しきい値を超えていること、またはハードウェア障害が発生していることを意味する可能性があります。SMART ログ ページでは、メディアまたはデータの整合性エラーに関するエラー ログ ページを要約し、電源喪失イベントによる安全でないシャットダウンの数をリストすることもできます。最後に、SMART ページはスタミナを監視するために使用されます。システム インテグレーターは、[SMART Percentage Used] フィールドを確認することで、残りの SSD 寿命の割合を総使用寿命/可用寿命に対する割合として確認できます。これは読みやすい割合です。この機能を最大限に活用するために、ベンダーは、スペアが特定のしきい値を下回ったときにホストに通知を送信するように、「利用可能なスペア」フィールドを設定できます。

sudo nvme smart-log /dev/nvme0n1 -H

Smart Log for NVME device:nvme2n1 namespace-id:ffffffff

critical_warning                        : 0

Available Spare[0]             : 0

Temp. Threshold[1]             : 0

NVM subsystem Reliability[2]   : 0
...

NVMe Cliの拡張 -- Linux からの Nvme SSD の視点 - プログラマーが求めた

1.3 永続的なイベントログ

永続的なイベント ログが NVMe 1.4 仕様に追加されました。これは SSD のブラック ボックス レコーダーに例えることができます。これは、エラー、ファームウェアのアップデート、フォーマットなど、SSD 上で発生したイベントをログに記録し、タイムスタンプ付きで明確に確認できるようにするために使用されます。これは、デバイスを識別して管理し、特定のイベントや障害がいつ発生するかを判断したい OEM または OS ベンダーにとって役立ちます。永続的なイベント ログについて詳しく知りたい場合は、「NVMe リビジョン 1.4 の変更点」Web ページを参照してください。

1.4 テレメトリ テクノロジー - NVMe テクノロジーにデバッグ機能を追加

テレメトリを使用すると、SSD ベンダー/メーカーはデバイスに障害が発生したときに内部ログを収集できます。お客様の IP および内部データ収集の機密性により、ここでは人間が判読できる標準的なログを使用することをお勧めします。このコマンドはホストまたはコントローラーによって開始できますが、通常はホスト (この場合は顧客) がテレメトリ ログを読み取り、デバイスに障害が発生したときに SSD ベンダーまたは OEM に送信するためのものです。さらに分析を行います。冒頭で見たように、ファームウェアの問題は SSD 障害の主な原因であり、ベンダーは現場で障害が発生したときにテレメトリ ログを使用して根本原因を見つけることができます。

1.5 イベントとエラーのレポート

ログ ページに加えて、多くの NVMe 仕様では、エラーや操作の失敗を報告する機能が提供されています。これらのレポートは、特定の種類のエラーを特定し、コントローラー、ドライブ、オペレーティング システムを回復する方法を特定するのに役立ちます。

ここに画像の説明を挿入

 画像ソース [ NVME CLI -- NVME デバイスの内部ステータスを表示する nvme コマンド]

1.6 非同期イベントリクエスト

非同期イベントは、さまざまなイベントのステータス、エラー、正常性情報をホスト ソフトウェアに通知するために使用されます。NVMe コントローラーまたはドライブは、エラー、ドライブ属性の変更、SMART 変更、または完全な管理イベントが発生すると、ホスト ソフトウェアにイベントを報告します。ここでの最も重要な機能は、重大な警告が発生したときに NVMe コントローラー (およびほとんどの場合はドライブ) がホストに非同期で通知でき、オペレーティング システムまたはシステム コンソールがこれをユーザーに即座に報告できることです。定義されているイベント タイプの詳細については、NVMe 1.4 仕様の 96 ページを参照してください。

1.6 操作が失敗しました

NVMe 仕様には、コントローラー/ドライバー、ドライバー、およびオペレーティング システムの使用状況に関するエラーのレポートと回復に特化したセクションが含まれています。これは主に、デバイス ドライバーとホスト ソフトウェア システムによって、NVM サブシステムと NVMe コントローラーの重大な障害を識別するために使用されます。このセクションは、NVMe 1.4 仕様の 400 ページに記載されています。

1.7 再構築ヘルプ

リビルドアシストはNVMe 1.4仕様のオプションとして追加されました。Rebuild Assist は、ホスト上で回復できない可能性のある LBA を識別するための新しい Get LBA Status 関数を定義します。この状態は、ホストがデバイス上のどの LBA を他の場所から復元して再書き込みする必要があるかを判断するために使用されます。リビルドアシストの主な使用例は、交換用 SSD のバックグラウンド データ消去を支援することです。これは、通常、SSD ファームウェアがすでにこの分析を内部で実行しており、これをホストに報告する方法があるためです。通常、ホストにはデータの冗長コピーがあり、有効なコピーからデータを復元する機会が得られます。

1.8 管理

NVMe Management Interface™ (NVMe-mi™) テクノロジーの管理機能は、エンタープライズ、クラウド、およびデータセンターの導入にとって重要です。これは、複数のオペレーティング システムをサポートし、エンド顧客にとって付加価値となる単一の管理コンソールの恩恵を受ける OEM にとって特に役立ちます。

NVMe-MI仕様

NVMe-mi 仕様は、SMBUS/MCTP および PCIe/vdm インターフェイスを介してオペレーティング システムの外部で NVMe SSD を管理します。NVMe-MI アーキテクチャは、ベースボード管理コントローラーを使用して、インベントリのチェック、エラーの監視、SMART ログと耐久性の追跡、およびこれらの状態のレポートを管理コンソールを通じて行います。NVMe-MI 仕様の詳細については、NVMe-MI 技術ブログを参照して、その機能と利点についてさらに詳しく説明しています。NVMe-mi は、ストレージ デバイスの管理に特化した完全な仕様を提供することで、NVMe 標準を他のストレージ インターフェイスとは大きく区別します。

2. 自己診断の問題

テスト機能は、診断と NVMe テクノロジーの適切な実装の確認に役立ちます。

デバイスセルフテストコマンド

NVMe 1.4 仕様の 107 ページで定義されているデバイス セルフテスト コマンド機能を使用すると、ホストが短期または長期のセルフテストを開始してオフライン診断を実行できます。OEM、ODMS、およびシステム インテグレータは、新しい NVMe SSD を大規模システムに統合するときに、このコマンド機能をよく使用します。例としては、システム インテグレーターや工場で、SSD ベンダーから SSD を受け取り、それを大規模なサーバーに組み込み、その後、自己テスト コマンドを実行してすべてのドライブが動作していることを確認する場合があります。NVMe 仕様には、デバイスのセルフテストの例を示すインフォグラフィックが含まれています。

から前進

SSD が故障する仕組み – NVMe™ SSD 管理、エラー報告、およびログ機能 – NVM Express

原作者: Jonmichael Hands, NVMe MWG Co-Chair, Intel       

 

おすすめ

転載: blog.csdn.net/vagrant0407/article/details/131819984