SATA SSDの状態はS.M.A.R.T.で一目瞭然!

SATA SSDの状態はS.M.A.R.T.で一目瞭然!

この記事で紹介している製品

おことわり

 この記事は、2020年6月2020年7月にQiitaに投稿した記事を加筆修正したものです。

はじめに

 SSDの健康状態把握を目的とした情報の収集には、以前より“Self-Monitoring, Analysis and Reporting Technology (S.M.A.R.T.)”が幅広く用いられています。

 SSDが準拠する仕様、例えばSATA SSDが準拠するATA Command Set (ACS)やNVMeは、S.M.A.R.T.に関する仕様を含んでいます。

 そして、各SSDメーカーが自社SSDを対象に提供しているツールを含め、SSDの情報を取得するツールのほとんどがS.M.A.R.T.機能のひとつであるS.M.A.R.T.属性(Attributes)の取得・表示に対応しています。

 図1は当社製LiveMonitorPlusの例です。この例は当社製SATA SSDの情報を表示したもので、図中の赤四角で囲った部分がS.M.A.R.T.属性です。なお、当社製SATA SSDのS.M.A.R.T.属性の内容(項目名など)は非公開のため伏せてあります。ご了承ください。

図1:当社製LiveMonitorPlusでのS.M.A.R.T.属性表示(SATA SSDの例、赤四角内がS.M.A.R.T.属性)

 そこで、2回の記事でSSDのS.M.A.R.T.についてまとめたいと思います。今回はS.M.A.R.T.の概要とSATA SSDにおけるS.M.A.R.T.をまとめます。

 なお、SATA SSDに関するコマンド名称などはATA Command Set (ACS)[1][2]に基づいています。

まとめ

  • S.M.A.R.T.が持つ機能はS.M.A.R.T.属性だけではない
  • S.M.A.R.T.は大まかに自己診断機能、監視機能、報告機能、属性、の4機能から成る
  • SATA SSDのS.M.A.R.T.属性はその数も内容も全てメーカー依存

S.M.A.R.T.の全体構成

 ”S.M.A.R.T.”と言うと「ドライブ(HDDやSSD)の健康状態およびそれに類する統計情報」を指すことが多いと思います。SSDであれば、残寿命やEraseエラーなどの発生回数(率)、NANDフラッシュメモリの平均Erase回数、そして総書き込み量などが相当します。

 上記のような情報はS.M.A.R.T.属性と呼ばれるS.M.A.R.T.を構成する機能のひとつです

 そこで、まずはSSDにおけるS.M.A.R.T.の全体像を説明したいと思います。

繰り返しになりますが、S.M.A.R.T.とは”Self-Monitoring, Analysis and Reporting Technology”の頭文字を使用した略です。日本語では「自己監視、診断および報告技術」と言える機能です。

 S.M.A.R.T.はこの名の通り、ドライブの自己診断機能、属性、属性値に対する監視機能、そしてホストへの報告機能から構成されます(図2)。

図2:SSDにおけるS.M.A.R.T.の位置づけと構成機能(イメージ)

 図2の各機能について以下にまとめます。

自己診断機能

 自己診断機能は「デバイス(もしくはドライブ)セルフテスト」と呼ばれます。

 SSDは、NANDフラッシュメモリの特徴である長期放置による記録データのエラー増加(データリテンション)対策などのため、NANDフラッシュメモリ内のデータが正しく読み出せることを定期的に確認する機能を備えることが多いです。自己診断機能はこれらの機能を組み合わせて実現されます。

 自己診断機能はSSDの構成部品全てが対象になり得るため、メーカーや製品によりNANDフラッシュメモリ以外のメモリ(DRAMなど)や電源バックアップ用のキャパシタなどのテストも含まれます。

 S.M.A.R.T.の自己診断機能は、所要時間の短いものと長いものの2種類があります。

 長時間の診断ではより多くの(幅広い)対象を診断できますが、近年のドライブ容量増大による診断時間の長時間化や自己診断実施中の性能低下が懸念されます。

 どちらの自己診断をどのタイミングで行うかは十分な検討が必要です。

 SATA SSDでは、SMART EXECUTE OFF-LINE IMMEDIATEコマンドによりホストからドライブに自己診断機能の実行を要求できます。所要時間の短いものと長いもののどちらを実行するかも指定可能です。

監視機能

 温度やNANDフラッシュメモリの余裕率(代替用ブロック数など)そして残寿命など、S.M.A.R.T.属性の中には、値そのものに加えて値がある閾値を超えるもしくは下回ることが重要な値が存在します。

 このため一部のS.M.A.R.T.属性には閾値があります。閾値が設定できる属性や閾値の設定方法などは仕様により異なります。

 特定のS.M.A.R.T.属性の値が設定された閾値を上回るもしくは下回る事象が発生した場合、監視機能はホストに報告するよう報告機能に通知します。

 ただ、SATA SSDでは上記閾値をホストから設定・変更する方法が標準化されていません。メーカー固有のコマンド(ベンダ固有コマンド)が存在する場合もありますので、詳細はメーカーにご確認ください。

報告機能

 S.M.A.R.T.におけるホストへの報告機能には、大きく分けて以下の3つが存在します。

  1. S.M.A.R.T.属性を含むドライブの健康状態をホストが(まとめて)取得する機能
  2. ドライブで発生した事象に関する情報(ログ)をホストが取得する機能
  3. 前述した監視機能によって特定のS.M.A.R.T.属性が予め設定された閾値を上回った(下回った)ことをドライブからホストに通知する機能

 1が最も広く使われている機能です。各メーカーが配布しているツールやその他ソフトウェアがドライブのS.M.A.R.T.属性を取得するために使用している機能が、この機能です。

 2は、1の機能でドライブの健康状態を取得した際になんらかのエラー発生が認められた場合などにそのエラーに関する詳細情報を取得するための機能です。

 3はいわゆるアラート通知機能です。仕様により異なりますが、1の機能でドライブ状態を取得した際にアラートを伝える場合もあれば、事象発生時にすぐにホストへアラート通知する場合もあります。

 SATA SSDでは、1はSMART READ DATAコマンド、2はSMART READ LOGコマンド、3はSMART RETURN STATUSコマンドが対応します。

S.M.A.R.T.属性

 S.M.A.R.T.を構成する機能の中で最も有名なのがこのS.M.A.R.T.属性です。SSDのS.M.A.R.T.属性は、大まかに表1のように分類できます。

表1:SSDのS.M.A.R.T.属性の大まかな分類

種類概要
エラー系ホストとの通信エラー発生状態・履歴やReadコマンドのエラー回数など
稼働時間・電源投入回数系稼働時間(Power On Hours; POH)や、電源投入回数など
温度系ドライブの温度に関する情報
寿命系寿命(残寿命、消費寿命)を示す値
寿命計算用データホストからおよびNANDフラッシュへの書き込みデータ量など
NANDエラー系NANDフラッシュメモリへのアクセスで発生したエラーの情報
その他統計情報低消費電力状態への遷移回数や総コマンド数などの統計情報
レガシー、不明特定メディアに特有のエラー情報など

 冒頭でも説明した通り、SATA SSDが準拠するACSのSMART Feature Setでは、S.M.A.R.T.属性の種類や内容を定めていません。

 過去、属性のIDや属性数の最大値を定める試みもありましたが[3]、結局ACSでは規定されていません。このため、SATA SSDではS.M.A.R.T.属性の数や内容は全てメーカー依存です。属性名が同じでもメーカーや製品により詳細な意味や計算方法が異なる、ということがあり得ます。

 実際、S.M.A.R.T.属性を公開しているメーカーもあれば、当社のように契約を交わしたお客様にのみ公開しているメーカーもあります。このような背景もあり、SATA SSDではメーカー間でS.M.A.R.T.属性の内容を比較することがとても難しいです。

 この反省からか、NVMeでは基本的でかつ重要なS.M.A.R.T.属性を仕様で定めています。NVMeのS.M.A.R.T.属性については次回ご説明します。

まとめ

 この記事では、SSDの健康状態把握を目的とした情報の収集および取得機能として幅広く用いられている”Self-Monitoring, Analysis and Reporting Technology (S.M.A.R.T.)”について、機能の概要とSATA SSDでの例をご説明しました。

 S.M.A.R.T.はS.M.A.R.T.属性以外にも、自己診断機能や監視機能、そして報告機能があります。これらの機能を上手く使用することで、お使いのSSDの健康状態をより効果的そして効率的に把握することができます。

 次回はNVMeのS.M.A.R.T.についてまとめる予定です。

Reference

[1] T13, “Information technology – ATA/ATAPI Command Set – 3 (ACS-3)”, Working Draft, T13/2161-D, Revision 4o, August, 2013
[2] T13, “Information technology – ATA Command Set – 4 (ACS-4)”, Working Draft, T13/BSR INCITS 529, Revision 14, October, 2016
[3] Jim Hatfield, “List of Public SMART Attributes”, e05173r0, Proposal document for T13 Technical Committee, October, 2005

他社商標について
記事中には登録商標マークを明記しておりませんが、記事に掲載されている会社名および製品名等は一般に各社の商標または登録商標です。

記事内容について
この記事の内容は、発表当時の情報です。予告なく変更されることがありますので、あらかじめご了承ください。

お問い合わせ