2020年04月02日 06時00分 ハードウェア

新しいHDDを使用する時に執り行うべき「儀式」とは？



自分のPCや会社のサーバーのHDDを交換するために購入した新しいHDDが「信頼に値する」かどうかの判断は難しいものです。そうしたHDDを新しく購入した際に行う「儀式」について、ここ10年間Linuxのサーバーを管理し、20台を超えるHDDを交換してきた経験を持つIronicBadger氏が語っています。



New Hard Drive rituals

https://blog.linuxserver.io/2018/10/29/new-hard-drive-rituals/



IronicBadger氏は2009年にSeagate製のHDDの故障に見舞われ、HDDに保存していた全てのデータを失ってしまったのこと。また、購入した時は問題ないように見えたHDDも、しばらくすると不良セクタが発生したり、ひどい場合は電源を入れて1日足らずで故障したりしたこともあったそうです。





そうした経験から、IronicBadger氏はbadblocksを用いたHDDのストレステストを毎回行い、テストをクリアするまではHDDにデータを一切保存しないようにしているとのこと。badblocksの基本的な使い方も紹介されています。「w」オプションは「破壊的な書き込みテストを実行」、「s」オプションは「プログレスバーを表示」、「v」オプションは「標準出力に検出された不良セクタを出力」するために指定するとArchWikiに記載されています。





badblocks -b 4096 -wsv /dev/sdX



IronicBadger氏がbadblocksを利用する際のシェルスクリプトは以下。このスクリプトを実行すれば、smartctlとbadblocksを組み合わせてテストを行うことが可能で、「HDDがしばらくは故障しない」という比較的確度の高い確信を得られるとのこと。



GitHub - Spearfoot/disk-burnin-and-testing: Shell script for burn-in and testing of new or re-purposed drives

https://github.com/Spearfoot/disk-burnin-and-testing



badblocksを利用したテストは、8TBのHDDの場合は完了するのに丸一週間ほどかかるそうで、時間に余裕を持ってテストする必要があります。また、IronicBadger氏はこの「儀式」を行う際には、tmuxを利用したサーバー接続を推奨しています。tmuxを使用すれば、ターミナルウィンドウを分割して複数のHDDに対するテストの状況を同時に監視したり、サーバーと接続が切断しても再接続してコマンドの実行状況を再び確認したりすることができます。

