Googleの結論「S.M.A.R.Tに基づく寿命予測は役に立たず、HDDは突然死する」

Googleは世界でもっとも多くのHDDを利用している企業の一つだが、Googleはこのたび2001年以降同社で利用してきた10万台以上のHDDの故障率を統計解析した結果を発表した。対象となるHDDは80GBから400GB、5400rpmもしくは7200rpmのPATAもしくはSATA HDDである。Googleはその時点その時点でもっともコストパフォーマンスの良いHDDを購入して利用しているため、利用されるHDDはメーカー、モデルとも多岐にわたる。本文中のグラフは論文Eduardo Pinheiro, Wolf-Dietrich Weber, and Luiz André Barroso: Failure Trends in a Large Disk Drive Population, In the Proceedings of the 5th USENIX Conference on Fileand Storage Technologies (FASTf07), Feb. 2007からの引用である。

Fig.2はHDDの利用年数ごとの年間故障率(AFR)を示したものである。3ヶ月、6ヶ月、1年の3つのデータは重複する部分があるが、2年次以降の年間故障率には重複はない。1年目の故障率が最も低く1.7%で、3年目が最も高くなり8.6%となっている。ただ、3,4年目の高い故障率はHDDのモデルが1世代前であることにも影響を受けている可能性が大きい。一方、3ヶ月目の故障率より1年目の故障率の方が低いことは、初期不良の影響を示している。Googleによれば、この故障率グラフはHDDのメーカーによって大きな差があったというが、メーカー別の故障率は公開されていない

Fig.3はHDDの利用率と故障率との関係を示したものである。利用率はHDDのI/OデータサイズによってLow/Medium/Highの3つに分類されている。古くから信じられてきたことによれば、頻度高く読み書きすればするほど故障率が高くなると考えられてきたが、結果は予想に反するものだった。予想通りに利用率が高いほど故障率が高くなったのは、おおよそ1年以内か、5年以降のどちらかで、3年目では予想と逆の傾向を示している。

この理由としては2つ考えられる。1つは適者生存の原理が働いた結果というもので、高い利用率では、故障の危険性が大きいHDDは利用時間の短い間(3ヶ月とか) に故障してしまうため、3年目を迎えるHDDは耐故障性に優れたもののみが残る。そのため、利用率に関わらず、故障率は一定になるという説である。

もう一つは従来の利用率と故障率の間に相関があるという考えが間違っている可能性である。この相関は主にHDDメーカーの加速試験により得られたものだが、加速試験はFig.3の3ヶ月目のデータのような短い期間の傾向を強調する傾向があるため、長期間動作時の傾向には必ずしも一致しないという説だ。

どちらの原因であったとしても、HDDの利用率と故障率の間には大きな相関はないと考えて良さそうだデフラグがHDDの寿命を短くするとよく言われるが、このデータを見る限り、デフラグがHDDの寿命を短くすることはほぼないと考えて良いだろう。

Fig.4は温度と故障率の関係を示したものである。これをみると、平均温度が35℃から45℃程度がもっとも故障率が低く、30℃以下の低温環境下、あるいは50℃以上の高温環境下で故障率が高くなっている事がわかる。意外なことに、50℃の高温動作よりも20℃における動作の方が4倍程度故障率が高くなっている。Fig.5はHDDの利用年数ごとの平均温度と故障率の関係を示したものだが、3年目以降で高い温度が高い故障率と関係があるように見える一方、2年目まではほとんどグラフはフラットで、高温環境下における利用でも問題がなさそうに見える。サーバ室の設定温度を見直しても良いかもしれない。

近年のHDDはS.M.A.R.T.と呼ばれる複数の動作パラメータを出力する機能を有している。次にあげるのはフリーソフトHDD Smart Analyzerスクリーンショットである。Googleにより故障率と有意な相関があるとされたパラメタを赤で囲ってある。このパラメタに注目すればよい。

Googleの解析によれば、S.M.A.R.T値のうち、Scan Errors(読み込みエラー率)、Reallocation Counts(代替処理済みの不良セクタ数)、Offline Reallocation(回復不可能なセクタ数)、Probational Counts(代替処理待ちセクタ数)などが故障と有意な相関があることがわかった。

Scan Errorが発生した場合、そうでない場合に比べて年間故障率が10倍以上に跳ね上がり、8ヶ月後の生存率は70%を下回る。最初のscan errorが報告されてから60日以内に故障する確率はエラーがない場合に比べて39倍も悪化する。

Reallocation Countsが発生した場合、そうでない場合に比べて年間故障率が3倍〜6倍に上がり、8ヶ月後の生存率は85%程度となる。最初のReallocation Countsが報告されてから60日以内に故障する確率はエラーがない場合に比べて14倍に悪化する。Offline Reallocationが発生した場合はより深刻で、最初のOffline Reallocationが報告されてから60日以内に故障する確率はエラーがない場合に比べて21倍に悪化する。

Probational Countsは不良セクタの可能性を示す値であるが、上述のパラメタと似たような相関を示す。最初のProbational Countsが報告されてから60日以内に故障する確率はエラーがない場合に比べて16倍に悪化する。

さて、S.M.A.R.T.値を解析することによりHDDの故障確率や故障日を予測するソフトウェアが多く販売されている。たとえばSmartHDD Proなどが典型ソフトとしてあげられる。ところがGoogleの解析によれば、これらの故障日予測はほとんど当てにならないようだ。これらのソフトに金を出すのは無駄ということになる。

故障したHDDの56%は故障までに上記の強い相関がある4つのパラメタのいずれにもエラーがみられなかった。言い換えれば、S.M.A.R.T値による予測方法だと、半分のHDDの故障を予測できない。36%のHDDは故障するまですべてのS.M.A.R.T値は完璧だった。そのため、S.M.A.R.TだけでHDDの故障を予測することは困難であると考えられる。HDDの故障を正確に予測するモデルを構築するためには、S.M.A.R.T値に加えて、パフォーマンス異常や他のアプリケーションやOSの信号と組み合わせて解析する必要があるかもしれない。

Googleの調査結果は、温度や利用率がHDDの寿命と大きな相関がないことを示した一方、S.M.A.R.T値のいくつかのパラメタに有意な相関があることを示した。しかし、S.M.A.R.T値によるHDD寿命予測は事実上困難であり、半数のHDDが何の兆候も見せず突然死することも明らかにしたS.M.A.R.T値による健康度診断などを過信することなく、やはり常日頃からのバックアップが欠かせないようだ。これを機にRAIDを構築するのも良いか。