WD SN640のファームウェア更新とかベンチマークとか
こちらのページによれば、Western Digital Ultrastar DC SN640 U.2 NVMe SSDシリーズの初期ファームには、まれにSSDがタイムアウトし、機能不全を引き起こす可能性のあるバグがあるらしい。回復手段はSSDのフォーマットで、言わずもがなデータは失われることになる。あな恐ろし。
配布されている修正版ファームウェアはR1110021, R1410004で、手持ちのSN640はR1110012なので発生する可能性がありそう。というわけで更新してみる。
やり方は上記サイトに書いてある通り。Linux環境ならnvmeコマンドでSSDのFWをダウンロードし、適用し、マシンを再起動する。
nvme fw-download /dev/nvme0 --fw=FW.vpkg nvme fw-commit /dev/nvme0 -a 1
こんな感じでR1110021に更新されていることが分かる。
# nvme list | grep WUS4 /dev/nvme2n1 /dev/ng2n1 A06F8XYZ WUS4BB076D7P3E3 1 7.68 TB / 7.68 TB 4 KiB + 0 B R1110021 /dev/nvme1n1 /dev/ng1n1 A066EXYZ WUS4BB076D7P3E3 1 7.68 TB / 7.68 TB 4 KiB + 0 B R1110021 /dev/nvme0n1 /dev/ng0n1 A0647XYZ WUS4BB076D7P3E3 1 7.68 TB / 7.68 TB 4 KiB + 0 B R1110021
なお、このSN640たちは例によって中古で、いずれも2PB以上読み書きされている。データシート上の寿命は11210TBW(4kランダムライト時)であるから、S.M.A.R.T.が示すとおりまだまだ余裕がありそう。
CrystalDiskMarkとCrystalDiskInfoの結果は以下の通り。PCIeパススルーでVMで測定したものなので、値は参考程度に。
シーケンシャルは概ねデータシートどおりだが、ランダムのIOPSが1/2~1/3と振るわないのはパススルーの影響なのかしら?
参考サイト
5年半使ったIntel DC S3500 240GBの状態とベンチマーク
ファイルサーバで使ってたInte SSD DC S3500 240GB (SSDSC2BB240G4)がお役御免となった。購入記録を採ってるわけじゃないけど、たぶんこの時のSSD⇒Intel SSDSC2BB240G4 (DC S3500 240GB) のベンチマーク。のちに同じSSDを中古購入し、2台でRAID組んでWindows Serverのシステム領域兼記憶域階層のSSD層として使っていた。先に買った方、つまり当時のベンチマークがある方の使用時間は5年半ほどになる。
経年でどの程度パフォーマンスが変わったのか比較してみた。
ランダムリード・ライトが若干遅くなっているように見えなくもないが、4KiB 32QT1は速くなって良くわからん。240GBのSSDに対して93TB書き込んでるけど、問題になるような性能低下はなさそう。損耗率から計算すると残り280TBほど書き込めるようだ。
かたわれのSSDは結構深刻な状態で、ランダムライト速度が半分以下になってしまっている。
------------------------------------------------------------------------------
CrystalDiskMark 8.0.4 x64 (C) 2007-2021 hiyohiyo
Crystal Dew World: https://crystalmark.info/
------------------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes
[Read]
SEQ 1MiB (Q= 8, T= 1): 496.475 MB/s [ 473.5 IOPS] < 16845.23 us>
SEQ 1MiB (Q= 1, T= 1): 399.525 MB/s [ 381.0 IOPS] < 2621.80 us>
RND 4KiB (Q= 32, T= 1): 312.067 MB/s [ 76188.2 IOPS] < 418.81 us>
RND 4KiB (Q= 1, T= 1): 30.675 MB/s [ 7489.0 IOPS] < 133.11 us>
[Write]
SEQ 1MiB (Q= 8, T= 1): 285.882 MB/s [ 272.6 IOPS] < 29174.83 us>
SEQ 1MiB (Q= 1, T= 1): 285.205 MB/s [ 272.0 IOPS] < 3673.12 us>
RND 4KiB (Q= 32, T= 1): 92.268 MB/s [ 22526.4 IOPS] < 1419.45 us>
RND 4KiB (Q= 1, T= 1): 43.706 MB/s [ 10670.4 IOPS] < 93.19 us>
Profile: Default
Test: 2 GiB (x3) [D: 0% (0/224GiB)]
Mode: [Admin]
Time: Measure 5 sec / Interval 5 sec
Date: 2023/10/10 22:06:50
OS: Windows 10 Professional [10.0 Build 19045] (x64)
Comment: Intel DC S3500 240GB (SSDSC2BB240G4)
セキュアイレースしても目立った改善は見られなかった。
S.M.A.R.T.はメディア消耗指標は問題なさそうだが、電源断保護失敗で異常が検出されており、そのためか電源投入回数が跳ね上がっている。
電源断保護失敗でパフォーマンス低下ってのも良くわからんけど、内蔵の電源回路が不調→コントローラリセット→すぐ回復→辛うじて書き込みは継続、って感じなのかなー?
若干の不安はありつつも、別サーバでZFSのRAID-1構成で引き続き頑張ってもらう予定。
NVMe SSDのRelative Performanceについて
smartmontoolsでNVMe SSDの出力結果を見てた際、Supported LBA Sizesの「Rel_Perf」という項目に目が止まった。
調べてみたところ、NVMe規格の定める「Relative Performance」(RP)を表す値のようだ。
NVMe SSD製品には複数のLBAサイズ(セクタサイズ)に対応し、切り替えて使えるものがある。構成するハードウェアの状況に合わせ、SSDが512バイトセクタや4kセクタのように振る舞うことができるというわけ。主にエンタープライズ用途で使われる機能と思われる。
こうした複数のLBAサイズが選択可能な状況で、RP値はそのデバイスにおけるLBA設定間の相対性能を表す指標とされている。2ビット値につき、取りうる値は0~3で、意味は下表のとおりである。
| RP値 | 意味 |
|---|---|
| 0 | 最高性能 (Best Performance) |
| 1 | より良い性能 (Better Performance) |
| 2 | 良い性能 (Good Performance) |
| 3 | 低下した性能 (Degraded Performance) |
LBAサイズ設定時は、基本的にRPが0に近いものを選定しとけばよさそう。
Micron 9200 MAXの場合、図にあるように512バイトLBAより4k LBAの方が性能が良いことを示唆している。
ところで、なんでこのSSDはLBAサイズが4つもあるの…?それ自体はエンプラ向けでは珍しくないことだが、0~1と2~3の違いは無いように見えるんですけど……謎。
Micron 9200 MAX 1.6TBのベンチマーク
MicronのU.2接続なSSD、9200 MAX 1.6TB (MTFDHAL1T6TCU)を買ったので恒例のベンチマーク。
公称スペックは以下のとおり。
- シーケンシャル
- 読み込み 3500 MB/s
- 書き込み 1900 MB/s
- ランダム
- 読み込み 680000 IOPS
- 書き込み 255000 IOPS
- TBW: 17.5PB
もちろん中古購入でS.M.A.R.T.はこんな感じ。
使用時間10047時間≒418日で、電源投入回数45回ってことは間違いなくどこかのサーバに積まれてたものだろうけど、その割に投入回数が多いような気がしなくもない。単純計算で10日に1回でしょ?読み書き量が少なめなのも謎。
CrystalDiskMark 8.0.0 x64
設定:デフォルト
設定:NVMe
AS SSD Benchmark 2.0.6485.19676
気になった点
ベンチしてて気になったのは、S.M.A.R.T.が報告する温度が高めということ。
最初、バラック状態でやってたら70℃近くまで上がったため、急遽ファンで直接風をあてた。本当に70℃まで上がってたら熱くて触れないハズだが、実際は多少熱いくらいの温度感だった。15mm厚のSSDかつゴツい金属製筐体なので放熱性は良さそうなんですがね…。
ドライブ内部の一番ホットな部分の温度を示してるのか、センサー故障で高めの値なのか真相は不明。
それと、PCIeのリンク状態が割とシビアな気がする。2台のマシンで、PCIeスロットにマウントするタイプの変換カード、PCIe→SFF-8643→SFF-8639ケーブルのそれぞれで接続したが、どちらとも最初はPCIe 2.0でのリンクアップとなってしまった。コネクタ抜き差しでPCIe 3.0で繋がったものの、少々気がかりではある。
Supermicro X10DRiは普通にNVMeブート対応してるっぽい?
Supermicroのマザボ、X10DRiは普通にNVMeデバイスからのブートに対応しているようだ。
何をいまさらと思われるかもしれないが、M.2スロットは載ってないし、公式の明確な対応情報も見当たらないばかりか、FAQでも(姉妹モデルのだけど)対応/非対応の情報が載ってて良くわからなかったのよ。
- してない。本M/BのAMIネイティブモジュールは970非対応
- できない。本M/BはM.2のネイティブサポートはしてない。エンプラ向けのOption ROM付きのM.2 SSDならブートできる。
- できない。BIOSはNVMeのネイティブ対応してない。起動デバイスのOption ROMないと無理。
- UEFIモードで対応してる。PCIeのOption ROMをLegacyからUEFIに変更せよ。
こんな具合。とりあえずOption ROM使えばブートできるのは間違いない。
Supermicroだし鯖向けマザーだし当然NVMeブート対応してるだろうと、大して深く考えずにPM983をポチっちゃったのが前回というわけでして。まぁ、後の調査で、Samsung DC Toolkitなるものを使えばPM983にOption ROMのダウンロードできそうだし、最悪Clover EFI bootloaderでどうにかなるだろうと思いつつ組み込んでみたら、余裕で対応してた。
Option ROMをDisabledにしても、変わらずBIOSで認識されるのでネイティブ対応してると思う。多分。
BIOS Revision: 3.1bでの結果でござる。もし使えなかったらさーせん。




























