SSDは無音で動作するため、調子が良いのか悪いのか、よく分からない。いざ故障するとHDDと比較してデータのサルベージは難しい。どうすればよいのだろうか。
HDDとSSDの世代交代がいよいよ現実味を帯びてきた。
SSDは小型で高速、価格も落ち着いてきた。だが、使用中にちゃんと動作しているのか、何か問題が起きていないのかどうかが分かりにくい。
クラウドストレージサービスを提供するBackblazeは2023年6月15日、SSDの状態を「S.M.A.R.T.」(Self-Monitoring, Analysis, and Reporting Technology、以下、SMART)を用いて把握する方法を紹介した。同社は自社のデータセンターで約3000台のSSDを運用しており、そこで得た知見があるという。例えば、ベンダーによってSMARTの扱いが異なり、異なる情報が書き込まれているといった知見だ。
Backblazeは13種類のSSDモデルを使用しており、毎日SMART統計情報を取得しているという。今回はモデル間の類似点と相違点を示すために、Seagate Technology、Western Digital、Crucialという3ブランドから次の各1モデルずつ、合計3つを選んで解説した。いずれも容量は250GBだ。
・Seagate Technology(モデル:Seagate BarraCuda 120 SSD ZA250CM10003)
・Western Digital(モデル:WDC WDS250G2B0A)
・Crucial(モデル:CT250MX500SSD1)
SMARTはHDDやSSDに組み込まれた一種の監視システムで、SSD内部の特別な領域に監視データを保持している。ユーザーはコマンドやアプリケーションを使ってSSDの監視データを閲覧できる。SSDの使用時間や温度の他、ハードウェアの状態や動作効率など、信頼性に関係する情報も分かる。
HDDでは長年SMARTが使われており、比較的よく知られている。だがSSDのSMARTはHDDとかなり異なるため、多少混乱することがある。例えば、HDDは内部がセクタに分かれている一方で、SSDはページとブロックに分かれており、SMARTの内容が異なる。以下ではまずHDDとSSDの共通の項目から始め、次にSSD独自の項目を紹介する。
SMARTには1〜255までの項目がある。どの項目を利用するのかはメーカーが決める。つまりメーカーや製品によってデータの有無が違ってくる。項目には生の入力値または正規化された値が格納される。データの中には16進数(HEX)で表示するものもあり、例えば、10進数の12は「HEX 0C」となる。
BackblazeはSeagate Technology、Western Digital、Crucialの3つのモデルで使われているSMARTの項目表を作成した。同社はSMARTの読み出しのために「smartmontools」の「smartctl」ユーティリティーティーを用いた。
データを分析する前にまず、4つのことが分かった。
(1)SSDで本来利用可能な255の項目のうち、3モデルのSSDのいずれかで使用されていたのは約17%(44項目)に過ぎなかった。その他の属性のほとんどは、HDD専用だったり、そもそもHDDでも使用されていなかったりした
(2)3モデルが全て利用していた項目は5つだけだった
(3)各項目の名前と定義はメーカーによって異なっていた(この記事ではBackblazeが採用した名前を利用)
(4)44の項目のうち、Seagate Technologyは20、Western Digitalは25、Crucialは23を使っていた
SMARTの項目をまとめると、似たような名前でありながら、異なる番号のものが幾つかあった。異なるベンダーが基本的に同じものに対して異なる属性を使用していた。これは、「参加は任意だ」というSMARTの欠点を浮き彫りにしている。ベンダーは互いに良い関係を築こうとしているが、誰がどのような目的で属性を使用するのかは、SSDメーカーの判断に左右される。
多くのメーカーはSSDで使用する独自のSMARTモニタリングツールを作成、配布している。つまり、メーカーがSMARTの255の項目のうち、どれかを使用、追加、変更、削除すると、ツール自体も更新されてしまう。今回、Backblazeが利用したようなsmartctlのようにメーカーに依存しないツールは、各メーカーの自家製SMARTモニタリングツールの更新を追いかけなければならない羽目になる。なお、smartctl以外にもSMARTデータ閲覧用のツールはある。例えば「DriveDX」はベンダーを問わないSSD監視ツールだ。ドライブメーカーの変更に対応するために、リリース1.10.0(700)だけでも38のアップデートを公開した。
問題はさらにややこしい。メーカーが使用する項目やその定義をどのように宣伝するかは、メーカーごとに大きく異なる。例えば、Kingston Technologyは、各SSDのSMART属性と定義の一覧表を頻繁に公開しているが、Western Digitalはほとんど明らかにしていない。その結果、smartctl、DriveDXなどのSMARTツールは、Western Digitalの新規、更新、削除された属性に追い付くために苦労している。
以下ではBackblazeの調査の結果分かったSMARTの実態について紹介する。
先ほど紹介したように3モデルのSSDで使われていた44項目のうち、共通していたのは約11%、5項目だけだった。この5項目のうち、3項目は2023年6月時点で生産中のほぼ全てのHDDにも共通する。
・第9項目 電源投入時間 電源が投入されていた時間を記録している
・第12項目 電源サイクル回数 SSDの電源がオフになってから再びオンになった回数
・第194項目 温度 SSDの内部温度。一部のモデルでは、正規化された値(範囲は0〜255)が記録されており、それ以外のモデルでは生の値(セ氏)が記録されていた
SMARTのうち2つの項目はSSDでのみ利用されており、今回検証した3モデルは全て利用していた。
・第173項目 SSDのウェアレベリング回数 SSDの1ブロック当たりの最大消去回数
・第174項目 予期せぬ電源断の回数 外付けSSDでコネクターを急に外したときのようにシステムが予期していなかったシャットダウンの回数をカウントする。この値は、第12項目に記録されている電源サイクル回数のサブセットになっているため、正常なシャットダウン回数を計算できる
SSDの3モデルで共通している項目は5つと少ない。ではHDDのSMARTではどうなっているのだろうか。Backblazeが運用している14TBのHDDを3モデル(Seagate Technology、Western Digital、東芝の各1モデル)について、SMART属性を検証したところ、項目の42%が3つのモデル間で共通していた。これは、SSDよりも4倍近く共通性がある。しかし、100%ではない。
SMARTの項目には、SSDの「健康状態」がはっきり分かる項目もある。Backblazeの検証では、2つの概念に注目した。(1)どの程度の寿命が残っているのか、(2)論理ブロックアドレス(LBA)の読み出し/書き込み回数だ。各ドライブモデルで、これらの属性がどのように報告されているのかを見てみよう。
寿命については3つの項目が該当した。
・第169項目 残り寿命の割合(Western Digitalが利用)
この項目は、SSDのプログラム/消去サイクルと利用可能な予備ブロック数の組み合わせから、おおよその残り寿命を測定するものだ。新品のSSDでは、正規化された値として「100」となり、SSDが使用されるにつれて「0」まで減少する。なお、プログラム/消去サイクルの実際の値はSSDの1セル当たりに何bitのデータを保存するかという仕組みに依存する。例えば1セル当たり1bitを記録するSLC(Single Level Cell)では3〜10万回だが、1セル当たりに4bitを記録するQLC(Quadruple Level Cell)だと、500〜1000回まで減る。
SSDとHDDはデータを保存する物理的な構造はもちろん、データの管理方式も異なる。HDDは複数の円形のトラックがセクタに分割されて記録されており、セクタ単位でデータを読み書きする。SSDは1〜4bitを記録するセルがデータを記録する最小単位となっており、セルを複数集めたページ、ページを複数集めたブロックという形でデータを記録する。SSDでは読み出しと書き込みはページ単位で実行する。すでにデータが書き込まれたページに書き込む場合は、いったんブロック単位で消去を実行する必要がある。SSDはNANDフラッシュメモリにデータを記録しているため、HDDにあるような機械的な故障は起きない。だが、消去を繰り返すごとに次第にメモリとしての機能が衰えていく(書き込みに成功したように見えても、実際には書き込めなくなったり、書き込んだビットが読み出し時に0なのか1なのかが判定しにくくなったりする)。
・第202項目 使用寿命の割合(Crucialが利用)
この項目にはSSDの予測寿命のうち、どの時点でどの程度経過したのかが記録されている。新品のSSDでは「0」となり、予測寿命に達すると「100」になる。
・第231項目 残り寿命(Seagate Technologyが利用)
この項目はプログラム/消去サイクルまたは利用可能な予約ブロックの単位を使って、SSDのおおよその残り寿命を示す。新品のSSDの値は「100」(正規化値)だ。そこから利用に伴って値が減少し、「10」で交換の必要性を示す「しきい値」に達する。値が「0」の場合は、SSDが読み取り専用モードで動作していることを意味する場合がある。
3項目とも、「プログラム/消去サイクル」(第232項目)と「利用可能な予約ブロック」(第170項目)を内部で使用してパーセンテージを計算している。だが、第202項目はカウントアップし、他の2つはカウントダウンするため分かりにくい。なお、ここで定義された寿命は相対的なものだ。つまり、SSDの使用状況によって、6カ月後に50%の寿命になることもあれば、6年後に50%になることもある。
論理ブロックアドレス(LBA)の読み出し/書き込み回数については、3つの項目が該当した。
SSDでは、データはページ(NANDページとも呼ばれる)に書き込まれ、そこから読み出される。ページの集まりがブロックを形成する。LBAの書き込み/読み出し数は、まさに書き込み/読み出しされたブロックの数を示す。ブロックが書き込まれたり読み込まれたりするたびに、それぞれのSMART属性カウンターが1つずつ増えていく。例えば、1つのブロック内のページにあるさまざまなデータが10回読み出されると、SMARTカウンターが10個増える。
・第241項目 書き込まれたLBA(Seagate TechnologyとWestern Digitalが利用)
書き込まれたLBAの総カウント数を示す。
・第242項目 読み出しLBA数(Seagate TechnologyとWestern Digitalが利用)
読み出したLBAの総カウント数を示す。
・第246項目 累積ホストセクタ書き込み数(Crucialが利用)
PCやサーバの要求により書き込まれたLBA。ここではセクタとブロックを区別しているため、この属性の名称は正しくない。Crucialのモデルは、PCやサーバの要求によって書き込まれた「NANDページ」(第247項目)と、SSD特有のガベージコレクションなどのバックグラウンド操作により書き込まれた「NANDページ」(第248項目)をカウントする。Backblazeによれば、Crucialのモデルには、読み込んだLBAの総数に関するSMARTの項目はなく、バックグラウンド操作のために書き込まれたLBAも記録されていないという。
調査の結果、BackblazeはSSDの寿命を考える際に有用だと思われるSMARTの項目を幾つか見つけ出した。
・第230項目 ドライブ寿命保護ステータス(Western Digitalが利用)
この項目は、SSDの使用曲線が事前に予想された寿命曲線を上回っているかどうかを示す。Western Digitalは使用実績の計算と値がある。Western DigitalはSMARTの第169項目を転用している可能性がある。寿命曲線の値はSSDのモデルごとに固定されており、Backblazeの推測によればおそらく保証期間をゼロ日としているようだ。
・第210項目 RAINリカバリー成功ページ数(Crucialが利用)
RAIN(Redundant Array of Independent NAND)は、RAIDを使ってデータの冗長性を確保する技術と似ているものの、RAINでは1台のドライブ内でRAIDを実現している、つまり、SSDに書き込まれた全てのデータは、SSD自体で冗長化されている。もちろん、SSDの容量を「いくぶん無駄に使う」。本来の容量(250GB)からRAINのために容量を消費するか、本来の総容量にカウントされていない追加の容量を使用する。いずれにせよ、これは非常に有用な機能だ。なぜなら不良ページや不良ブロックのために読み取れなかったデータでも、ユーザーに対して不良があったことを意識せずにデータを回復させることができるからだ。
・第232項目 耐久性残量(Seagate TechnologyとWestern Digitalが利用)
SSDで実行した消去サイクル数が、設計最大消去サイクル数に占める割合だ。この項目は前述の第231項目と似ているが、少し違う。第232項目は計算の一部として利用可能な予約ブロックを考慮しないからだ。SSDのブロックを加速度的に消去すると、SSDの「セルが消耗する」ために、予約ブロックを利用しなければならなくなることが多い。Backblazeは第232項目がSSDの使用状況を計算に入れた耐久性を示しているかもしれないと推測した。
・第233項目 メディア消耗インジケーター(Seagate TechnologyとWestern Digitalが利用)
第232項目と同様にこの項目は実際の消去サイクルの数を記録する。正規化された値は、新品の100から始まり、最小の1まで減少する。減少するにつれて、消去サイクル数(生の値)は0から最大定格まで増加する。
・第171項目 プログラムフェイル回数(Western DigitalとCrucialが利用)
・第172項目 ページ消去失敗回数(Western DigitalとCrucialが利用)
この2つの項目はいずれも、SSDの利用開始から起きた故障(プログラム故障と消去回数)をカウントしている。SSDが古くなるにつれて、カウントは増加し、最終的に問題を示すあるしきい値に到達すると考えられる。これらの項目はSSDの健全性を判断するために役立つ。だがこの2つの項目だけでは、短期間で急速に発生頻度が高くなる故障を見逃す可能性があることに注意が必要だ。
SSDのメーカーがSMARTを使用して、モデルの状態や健康状態に関する関連情報を記録していることはユーザーには大変ありがたいことだ。さらに、SMARTの項目に書かれた統計情報を監視し、ユーザーが閲覧できるようにしているソフトウェアも提供している。
自社が利用するSSDのメーカーを統一している企業や組織は、何らデメリットはない。だが、そのような方針を採っている企業や組織は多くないだろう。メーカーに依存しない最新のSSD監視ツールを運用することは、システムを効率良く管理し、健全な状態に保つために重要だ。SSDを監視するために多数の内容が異なるツールを使用しなければならない現状は残念だ。SSDのSMARTを自主的なものにとどめず、全てのSSDメーカーに対して、項目と名称、定義を全面的に標準化することを検討する時期なのかもしれない。
Copyright © ITmedia, Inc. All Rights Reserved.
製品カタログや技術資料、導入事例など、IT導入の課題解決に役立つ資料を簡単に入手できます。