Samsung SSD 840 120GBを使い潰す(中編)
前編
現状と結果
延々と回して気付きましたが Wear_Leveling_Count
は 1
が最小値となっている模様
[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を継続使用することは無いとは思いますが即全データ死亡ともならないようです
次回は後編として、ログ内容をスプレッドシートでグラフにしようかと思います