SSDが死んだときの症状です。
立て続けに死ぬなんてついてない。この前は、HDDとSDカードがお亡くなりになったのですが、SSDも死にました。私の使い方は荒っぽいですかねえ。dd とか rsync とかガンガンやってるしnginxのキャッシュに使ってたしphpのキャッシュに使ってたし、lvm キャッシュに使ってたし。書き込み量は半端なかったとおもう。
ELFヘッダが無い、つまりファイルが崩壊しています。
resolve.conf もこのザマ。
ファイルが壊れたんです。データが書き込めてないんです。
cat したらnull しか出てこないんです。
まじで書き込めてない。
ELFエラーになってるので /libを全部上書きすれば読めるんだろうけど。
Debianが最新バージョンになっていれば、いま新規で最新バージョンを入れても、ファイルが一致するので、インストールはできると思うんだよね。上書きインストールをすることもできるけど、まずはサルベージして別のHDD/SSD上でやらないとね。
読み込み専用でサルベージ(救出)
一部ファイルが読めるうちに、読み出す。
慌てずに、READ ONLY。
ただし、慌てない。 READ ONLYでマウント する。
noatime 未設定ならなおさらです。読む前に、読み込み専用にするべき。
もしくは、取り外した上で、完全にシステムから切り離して、全くアクセスが起きないようにする。
dd/ddrescue/で取り出しておきます。 dump / tar で読むときは、必ずリードオンリー。
故障前の具体的な症状。
大量ファイルの書き込みがやたら遅い。
apt upgrade / apt install
などでめっちゃ時間がかかる。
今回は、gitlabc-ce をアップグレードが1時間とか掛かってた。気づけば終わらずに半日過ぎてました。 最初は、なんかプロセスのロック競合かと思ってたんだ。でもよく考えたら、SSDの寿命だったんです。
いつ起きたか。
apt dist-uprrade で判明した。が、 /etc/resolv.conf が壊れてDNSが引けなくなって気づきました。
dist-upgrade
などで 一気に大量にファイルの更新が入ったので。書き込み上限に達したと思われる。
こう考えると、npm / yarn はSSDを殺しに来てますね。npm はSSDでは使わないことにする。npm するときは結果をキャッシュするかビルド済みをpush することにする。
mysql は返ってきませんでした。
一部破損くらいなら、ジャーナルでなんとかなるかと思ったけどだめですね。データベースのファイルごと飛んでいました。
smartのエラーメッセージ
完全に死んだあとにS.M.A.R.Tのメッセージが飛んできました。遅かった。
This message was generated by the smartd daemon running on: host name: server DNS domain: [Empty] The following warning/error was logged by the smartd daemon: Device: /dev/nvme0, number of Error Log entries increased from 0 to 2 Device info: CT500P1SSD8, S/N:18XXXXX, FW:P3CR010 For details see host's SYSLOG. You can also use the smartctl utility for further investigation. Another message will be sent in 24 hours if the problem persists.
メッセージをみると、 , number of Error Log entries increased from 0 to 2
とエラーが出てるのがはっきりわかるのでsmartmontoolsはあてになるようです。死んだあとでメール来たので遅かったけど。
死んだSSDについて
購入日 2019/2/5 でした。わずか2年半の短い命でした。
Crucial SSD M.2 500GB P1シリーズ Type2280 PCIe3.0x4 NVMe 5年保証 CT500P1SSD8
保証は効かない
商品には5年保証と書いてあるが、CrucialのSSDは、販売店を経由した保証しか申請できない模様です。Amazonで購入したつもりが、マケプレでした。当然ですが、ショップに連絡は付きませんし、保証申請は絶望的な状況です。
保証付きでも申請できないという事実に心が折れたので、もう二度とcrucial は買いません。
SSD購入時の反省点
マケプレは絶対避ける。まともな正規代理店から買う。
保証申請してもデータは帰ってきませんが、金銭的に余裕ができます。保証申請ができるものを買うとき、保証が効く商品を購入する。海外輸入品とかそういうのは使い捨てです。保証はありません。
容量に余裕を持って購入する。
カツカツな容量で回すと、速度低下と寿命縮小を招くので少し余裕を持って買う。SSDは容量が大きいほど書き込みが高速になるのですこし容量に余裕を持って買う必要があると実感した。
SSD使用時の注意点
速いからと安易にキャッシュに使わない。
SSDは書き込み時にいい感じにローテーションしてくれるが、容量を半分以上使い切ると、ローテーションがうまく回らないらしい。つねに空き容量を持っておく必要がある。
discard / trim の実行を気にかける。
いい感じに trim する。trim するときは、全体がちゃんと trim されているか注意する 。Systemdで有効化されているはずなので動作チェックしておく。
fstrim --verbose --all
バックアップを取る。
常識ですが、バックアップやスナップショットを常に持っておく必要があります。
式年遷宮する。
ストレージには寿命があります。式年遷宮しましょう。