Samsung SSD 840 120GBを使い潰す(中編)

前編

e6zout.hatenablog.jp

現状と結果

延々と回して気付きましたが Wear_Leveling_Count1 が最小値となっている模様

[comicsong@comicsong ~]$ sudo smartctl -A /dev/sda | grep ^177
177 Wear_Leveling_Count     0x0013   001   001   000    Pre-fail  Always       -       1240

既に 2 から 1 になる書き込み量の倍以上を行っていますが 0 になる気配は無し
まだ書き込みはできているようですが一旦これでテストを回すのは終了とします

記録について

SMART、ddコマンドによるIO、fioによる結果をログファイルに書き出していたのでそこから開始時・終了時の比較を行います

SMART値の比較

開始前

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  9 Power_On_Hours          0x0032   096   096   000    Old_age   Always       -       18975
 12 Power_Cycle_Count       0x0032   099   099   000    Old_age   Always       -       36
177 Wear_Leveling_Count     0x0013   083   083   000    Pre-fail  Always       -       200
190 Airflow_Temperature_Cel 0x0032   054   048   000    Old_age   Always       -       46
235 POR_Recovery_Count      0x0012   099   099   000    Old_age   Always       -       17
241 Total_LBAs_Written      0x0032   099   099   000    Old_age   Always       -       44047993640

終了時

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  9 Power_On_Hours          0x0032   096   096   000    Old_age   Always       -       19372
 12 Power_Cycle_Count       0x0032   099   099   000    Old_age   Always       -       36
177 Wear_Leveling_Count     0x0013   001   001   000    Pre-fail  Always       -       1240
190 Airflow_Temperature_Cel 0x0032   051   042   000    Old_age   Always       -       49
235 POR_Recovery_Count      0x0012   099   099   000    Old_age   Always       -       17
241 Total_LBAs_Written      0x0032   099   099   000    Old_age   Always       -       317487645326

Wear_Leveling_Count 以外の値に大きな変化は無し。

開始時と終了時でのIO劣化

上からシーケンシャルのread,write/ランダムのread,write/シーケンシャルのIOミックス

開始時

[comicsong@comicsong ~]$ grep -A1 -E "noop_" SMART_LOG | grep iops  | head -n5
  read : io=22896MB, bw=390753KB/s, iops=97688, runt= 60001msec
  write: io=7870.7MB, bw=134323KB/s, iops=33580, runt= 60001msec
  read : io=19965MB, bw=340738KB/s, iops=85184, runt= 60001msec
  write: io=6270.5MB, bw=107013KB/s, iops=26753, runt= 60001msec
  read : io=1336.2MB, bw=22803KB/s, iops=5700, runt= 60003msec

終了時

[comicsong@comicsong ~]$ grep -A1 -E "noop_" SMART_LOG | grep iops  | tail -n5
  read : io=9134.7MB, bw=155874KB/s, iops=38968, runt= 60009msec
  write: io=7615.3MB, bw=129965KB/s, iops=32491, runt= 60001msec
  read : io=15733MB, bw=268504KB/s, iops=67126, runt= 60002msec
  write: io=6068.6MB, bw=103561KB/s, iops=25890, runt= 60005msec
  read : io=1305.4MB, bw=22276KB/s, iops=5568, runt= 60004msec

IOスケジューラはnoopでの比較
予想ではwrite系は劣化が大きくread系の劣化は大きくないと予想していました
実際は反して特にシーケンシャルのreadが劣化しwrite系はそこまで大きくありませんでした

Read劣化のポイント

ログを確認すると徐々に落ちているのではなく625周目を境に急激に落ちていることが分かりました

count: 623
  read : io=22869MB, bw=390292KB/s, iops=97573, runt= 60001msec
count: 624
  read : io=22908MB, bw=390953KB/s, iops=97738, runt= 60001msec
count: 625
  read : io=13124MB, bw=223959KB/s, iops=55989, runt= 60004msec
count: 626
  read : io=12345MB, bw=210672KB/s, iops=52668, runt= 60002msec
count: 627
  read : io=11170MB, bw=190624KB/s, iops=47655, runt= 60004msec
count: 628
  read : io=11141MB, bw=190115KB/s, iops=47528, runt= 60005msec

wearlevelingcountはこの前後は3 で減少無し
その他もreadの劣化は以外は大きな変動はありませんでした
詳細は次回のグラフに譲るとしてこのwearlevelingcount3がこのSSDの寿命という判断でよさそうです

簡易の整合テスト

ではまだ実際に利用できるのかの確認を
手持ちでサイズの大きい6.7GBのファイルをコピーし正常に書き込めるかを確認しました

[root@comicsong benchmark]# cp  /var/www/html/epgrec/video/hoge  /mnt/benchmark/
[root@comicsong benchmark]# md5sum /var/www/html/epgrec/video/hoge  /mnt/benchmark/hoge
37e025122a3755563279ca68dbb5e659  /var/www/html/epgrec/video/hoge
37e025122a3755563279ca68dbb5e659  /mnt/benchmark/hoge
[root@comicsong benchmark]# sha512sum /var/www/html/epgrec/video/hoge  /mnt/benchmark/hoge
5e7bae62f9b028be8e26aaa3fd337dc168a065417a1f684f212d261b4f6690984bd19d048b5c059238976c101e45945b876c72a2512f69ea254eb1aae824d5e5  /var/www/html/epgrec/video/hoge
5e7bae62f9b028be8e26aaa3fd337dc168a065417a1f684f212d261b4f6690984bd19d048b5c059238976c101e45945b876c72a2512f69ea254eb1aae824d5e5  /mnt/benchmark/hoge

意外にも問題なくコピー完了。不整合も無し
寿命切れのSSDを継続使用することは無いとは思いますが即全データ死亡ともならないようです

次回は後編として、ログ内容をスプレッドシートでグラフにしようかと思います