NVMe SSDの寿命消費率(Percentage Used)が増えたので調べてみた

# はじめに
　NVMe仕様には、ホストが取得可能なSelf-Monitoring Analysis and Reporting Technology (S.M.A.R.T.)の情報に「寿命消費率(Percentage Used)」があります（[以前の記事](https://qiita.com/ken-yossy/items/4d1f84f3c783caccc336)参照）。

　この「寿命消費率」は、NVMe仕様で規定された標準項目中で唯一寿命を直接的に表現した数値です。

　私は仕事で使用しているノートPCのNVMe SSDについて、2021年はじめから毎日この「寿命消費率」を記録していたのですが、とうとうこの数値が増えました！

　ということで、今回は私の実例を交えてこの"Percentage Used"についてまとめます。

　なお、「寿命消費率」という呼びかたは"Percentage Used"に対して私が勝手に付けたものであり、公式な呼びかた（日本語訳）ではありません。

# まとめ
* "Percentage Used"は、「メーカーが保証する寿命」に対する消費率で、計算方法はメーカー依存
* 「SSDにやさしい使いかた」をすれば"Percentage Used"の増加は緩やかになる
* "Percentage Used"が100を超えても警告などは出ないので注意！
 
# 寿命消費率(Percentage Used)とは
　NVMe仕様のSelf-Monitoring Analysis and Reporting Technology (S.M.A.R.T.)情報における「寿命消費率(Percentage Used)」を改めて確認します。

表1：NVMe仕様<sup>[1]</sup>におけるPerecentage Usedの定義
![NVMe仕様におけるPerecentage Usedの定義](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439683/412e964a-3f58-7eeb-4354-52655864b1d3.png "NVMe仕様におけるPerecentage Usedの定義")

　直訳するとこんな感じでしょうか。

> 　実際の使用状況と製造者による不揮発性メモリ(Non-Volatile Memory, NVM)の寿命(life)予測に基づく、ベンダ依存の、NVMサブシステムの寿命使用度見積もり（百分率表示）。100という値は、NVMサブシステム内の不揮発性メモリについて見積もられた保証寿命(endurance)を消費したことを示す。ただし、NVMサブシステムの故障(failure)を示すとは限らない。この値は100を超えても良い。254を超える値は255と表示すること。この値は、電源オン時間（コントローラが休止状態ではない時間）1時間ごとに1回更新されるようにすること。
> 　SSDの寿命および保証期間の測定技術はJEDECのJESD218Aを参照のこと。

　「NVMサブシステム」は聞き慣れない単語ですが、ここではSSDが搭載する不揮発性メモリ（例：NANDフラッシュメモリ）のことだと考えれば大丈夫です。

　"life"と"endurance"という2つの単語が登場していて、ニュアンスがわかりにくいですね。

　この定義における"life"と"endurance"は図1のようなイメージです。

![Percentage Usedの定義におけるlifeとenduranceのイメージ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439683/dcf94d3a-1959-ff8e-e102-d3c4f5e5a828.png "Percentage Usedの定義におけるlifeとenduranceのイメージ")
図1：Percentage Usedの定義におけるlifeとenduranceのイメージ

　"Endurance"は「メーカーが保証する寿命」で"life"は「実寿命」というイメージです。

　ですので、SSDの"life"は"endurance"よりも一般的に長い（大きい）です。メーカーが定める信頼性基準を満足できる期間（サイズ）が"endurance"です。

　このことから、このPercentage Usedの値は、保証寿命(endurance)を使い尽くした状態が100になるように実寿命(life)を正規化した値、とも言えます。

　表1に示した定義にもある通り、Percentage Usedは100を超えることもあり得ます（100を超えることを仕様として許容している）。これは、図1に示した通り、"life"が"endurance"より長い（大きい）ために起こり得ることです。

　表1および図1の通り、Percentage Usedが100を超えるとすぐにSSDが壊れる（読み書きできなくなる）わけではありませんが、メーカーの保証範囲外となりますので、交換などの措置をなるべく早く講じる必要があります。

# Percentage Usedは実使用上どんな値になるのか？
　日々の仕事で使用しているノートPCに搭載されたNVMe SSDのS.M.A.R.T.情報を毎日モニタしていたところ、Percentage Usedが13から14に増えたのを観測しました。

　ちなみにこのPCの使用期間は約2年半です。つまり2年半経過して漸くメーカー保証寿命の14%を消費した、ということになります。

　今年（2021年）の具体的な累積書き込み量の様子は図2のようになります。

![当該NVMe SSDに対する2021年の書き込みデータ量](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439683/68d6ecfd-2ad5-9346-7117-1211cb8d830e.png "当該NVMe SSDに対する2021年の書き込みデータ量")
図2：当該NVMe SSDに対する2021年の書き込みデータ量

　図2の棒グラフはS.M.A.R.T.情報のData Units Writtenから求めた値になります。実際の値はおよそ96,519,094,000 KB、つまり使用開始（2年半前）からおよそ96.51 TBだけホストから書き込んだ、ということになります。

　Percentage Usedが12から13に増えた瞬間は記録していませんが、2021年1月1日時点では既にPercentage Usedが13でした。そして2021年1月1日時点でのData Units Writtenと、Percentage Usedが13から14に増えた時のData Units Writtenの差は4,844,194,000 KBで、約4.8 TBでした。

　このSSDのカタログスペック上のTBWは300 TBですので、Data Units Writtenの値による単純計算では30%強消費したことになりますが、S.M.A.R.T.情報ではそれよりも低い値が示されています。

　また、同じくTBWとData Units Writtenが一致した時にPercentage Usedが100になると仮定すると、単純計算ではPercentage Usedの1%は3 TBなので3 TB書き込むとPercentage Usedが1増えるはずですが、実際にはPercentage Usedが1増える間にそれより多いデータを書き込んでいます。

　つまり、この製品ではTBWの値に対するData Units Writtenの値（割合）がそのままPercentage Usedになるのではないようです。このあたりもメーカー（製品）依存ですので、このように実際に値を見てみないとわかりません。

　TBWもこのPercentage Usedも「SSDの使いかた」に依存する値ですので、この数値の「ずれ」が「**ここまでの私のSSDの使いかたがTBW算出時の使いかたよりもSSDにやさしい使いかただった**」ことを示しているのは確かです。

　しかし、このことはあくまで測定時点までの過去の話であり、Percentage Usedの値が今後も同じペースで増えていくとは限りません。

　今後「SSDにやさしくない使いかた」を続けているとPercentage Usedの増加スピードが上昇する可能性はあります。

　とはいえ、当分このSSDの寿命については気にしないで良さそうであることがわかり、ホッとしました。

# Percentage Usedは100を超えても警告などが出ない！
　NVMe仕様では、S.M.A.R.T.情報として"Critical Warning"と呼ばれる「警告情報」を定義しています。

　この警告情報には「温度が上限を超過した」や「余剰領域量が閾値未満に低下した」などが定義されていて、"Asynchronous Event Request"コマンドにより、これらの事象が生起した時にドライブが通知するよう設定可能です。

　しかし、"Critical Warning"には「Percentage Usedが100を超えた」という事象は含まれていません。これは、表1の定義の通り「Percentage Usedは100を超えることがある」（100を超えても良い）と規定しており、**NVMe仕様としてはPercentage Usedが100を超えた状態を異常な状態とは考えていないため**だと推測されます。

　とはいえ、今回説明した通り「Percentage Usedが100に到達した」ことは「メーカーが保証する寿命を使い果たした」ことを意味しますので、見逃してよい事象ではありません。

　Percentage Usedが100に到達することがあり得る使いかたをされる場合や、Percentage Usedの値が気になる場合は、Percentage Usedの値を定期的にモニタするなどの対策が必要です。

# まとめ
　今回の記事では、私が実際に使用しているノートPCに搭載されているNVMe SSDを例に、NVMe仕様のSelf-Monitoring Analysis and Reporting Technology (S.M.A.R.T.)の情報に規定されている「寿命消費率(Percentage Used)」について、どんな値になるのか、そしてどんな意味を持つのか、どんな風に解釈すれば良いのか、ということを説明しました。

　S.M.A.R.T.情報がメーカー依存であるSATA SSDに比べて、NVMeでは標準仕様で"Percentage Used"が規定されました。

　今回実例を示したオフィスユースなどであればまず課題が生じることはありませんが、Percentage Usedが100を超えてもNVMe仕様では警告などの通知が発生しませんので、使いかたに応じてPercentage Usedの値を定期的なモニタするなどの対応が必要です。

# References
[1] NVM Express, _"NVM Express Base Specification,"_ Revision 2.0a, July, 2021

# ライセンス表記
<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="クリエイティブ・コモンズ・ライセンス" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />この記事は<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンス</a>の下に提供されています。