NAS向けに購入したHDDの初期不良チェック

自宅で運用している BTRFS ファイルサーバの容量が不足してきたので、新しいHDDを購入しました。そのときの作業のうち、今回はハードディスク初期不良をチェックしたことについてメモしておきます。

HDD:TOSHIBA MN08ADA8

東芝NAS 向け 8TB ハードディスクです。

購入時の値段はXPRICE で 17,800 円。当時、XPRICE後払いで支払うと20%相当を請求から値引きというキャンペーンをやっており、これを活用し実質 14,240 円でした。 CMR で NAS 用途の 8TB HDD としては破格だと思います。高信頼をうたう HDD がこの価格ならコスパの面でもかなり良好です。

なお私が運用しているのは NAS といっても相当のワークロードがあるわけではなく、利用者はほとんど私のみ、常時通電している倉庫ぐらいの使い方です。

今回用意したのは 1 台のみです。

初期不良チェック

ストレージプールに組み込む前に不良セクタのチェックを行います。 Western DigitalSeagate であれば自社ハードディスク向けのユーティリティツールがあるようなのですが、東芝は無いみたいなので、以下のサイトを参考に実施することにします。

このページによると、実際の内容は以下のリポジトリから確認ができ、スクリプトも公開されています。

このスクリプトの著者によると、以下の内容を実施しているようです。

  1. S.M.A.R.T. ショートテストを実施
  2. badblocks コマンドで全ブロック点検
  3. S.M.A.R.T. ロングテストを実施

せっかくなので、手動でやってみることにします。

S.M.A.R.T. ショートテスト

今回テストするハードディスクは /dev/sdb に接続されています。

$ sudo smartctl -t short /dev/sdb
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-91-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Wed Dec 15 20:36:18 2021 JST
Use smartctl -X to abort test.

言われたとおりに数分待ったあと、結果を確認します。

$ sudo smartctl -A /dev/sdb
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-91-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   050    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   100   100   050    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0027   100   100   001    Pre-fail  Always       -       12131
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       4
  5 Reallocated_Sector_Ct   0x0033   100   100   050    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000b   100   100   050    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   100   100   050    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       0
 10 Spin_Retry_Count        0x0033   100   100   030    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       4
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       2
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       4
194 Temperature_Celsius     0x0022   100   100   000    Old_age   Always       -       22 (Min/Max 15/24)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
220 Disk_Shift              0x0002   100   100   000    Old_age   Always       -       33554435
222 Loaded_Hours            0x0032   100   100   000    Old_age   Always       -       0
223 Load_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
224 Load_Friction           0x0022   100   100   000    Old_age   Always       -       0
226 Load-in_Time            0x0026   100   100   000    Old_age   Always       -       516
240 Head_Flying_Hours       0x0001   100   100   001    Pre-fail  Offline      -       0

badblocks コマンドで全ブロック点検

$ sudo nohup badblocks -b 4096 -e 1 -vsw -o sdb.bb /dev/sdb

Checking for bad blocks in read-write mode
From block 0 to 1953506645
Testing with pattern 0xaa: done
Reading and comparing: done
Testing with pattern 0x55: done
Reading and comparing: done
Testing with pattern 0xff: done
Reading and comparing: done
Testing with pattern 0x00:  99.13% done, 75:55:37 elapsed. (0/0/0 errors)

Interrupted at block 1936496128

オプションの意味は以下の通りです。(作者のページにもあります)

  • -b 4096: ブロックサイズを指定する。S.M.A.R.T. 情報により1ブロック4096バイトであることを確認できているので、4096を指定。
  • -e 1: 1つ以上の不良セクタが見つかったら途中終了。
  • -v: 詳細出力。
  • -s: 進捗を表示。
  • -w: 各ブロックにパターンを書き込み、その通りに読み込みができるかを確認する。(0xaa, 0x55, 0xff, 0x00 の4パターン) これを指定するとディスクの内容が消えます。
  • -o sdb.bb: sdb.bb ファイルに不良セクタを記録。

このログは途中終了していますが、原因は ssh で接続していたターミナルウィンドウを間違って閉じてしまったことによるものです。全ブロックを3週チェックできたみたいなので、OK としました。75 時間以上やってるし。

一応、不良ブロックファイルに何も記録されていないことを確認します。

$ ls -l sdb.bb
-rw-r--r-- 1 root root 0 Dec 15 20:42 sdb.bb

S.M.A.R.T. ロングテスト

$ sudo smartctl -t long /dev/sdb
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-91-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Extended self-test routine immediately in off-line mode".
Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 680 minutes for test to complete.
Test will complete after Sun Dec 19 12:07:26 2021 JST
Use smartctl -X to abort test.

11時間かかると。こちらも言われたとおりの時刻まで待ってから結果を確認します。

$ sudo smartctl -A /dev/sdb
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-91-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   050    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   100   100   050    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0027   100   100   001    Pre-fail  Always       -       12131
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       4
  5 Reallocated_Sector_Ct   0x0033   100   100   050    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000b   100   100   050    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   100   100   050    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       88
 10 Spin_Retry_Count        0x0033   100   100   030    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       4
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       2
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       4
194 Temperature_Celsius     0x0022   100   100   000    Old_age   Always       -       17 (Min/Max 15/28)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
220 Disk_Shift              0x0002   100   100   000    Old_age   Always       -       84934658
222 Loaded_Hours            0x0032   100   100   000    Old_age   Always       -       87
223 Load_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
224 Load_Friction           0x0022   100   100   000    Old_age   Always       -       0
226 Load-in_Time            0x0026   100   100   000    Old_age   Always       -       516
240 Head_Flying_Hours       0x0001   100   100   001    Pre-fail  Offline      -       0

これの確認ポイントですが、東芝ハードディスク販売代理店のフィールドレイク社のFAQによると、以下の値が重要とのことです。

  • 05(0x05) Reallocated Sectors Count
  • 187(0xBB) Reported Uncorrectable Errors
  • 188(0xBC) Command Timeout
  • 197(0xC5) Current Pending Sector Count
  • 198(0xC6) Uncorrectable Sector Count

187/188 の値は確認できませんが、他は 0 なので問題なさそうです。 S.M.A.R.T. の見方には諸説あるようですけども、販売代理店が情報を公開してくれているのは心強いですね。

まとめ

めっちゃ時間がかかった。

「新しいハードディスクを運用する前は初期不良チェックすべし」という話題は何度か見聞きしたことがあったのですが、実際に自分でやってみたのは初めてでした。今後も実施するかもしれないので自分用のメモとして記録しました。

ahamo からの転出をしようとしてドコモ関連サービスの廃止に苦労した話

私はahamoを契約していたのですが、ドコモの家族割の代表にもなっていたので、MNPの手続きに少々苦労しました。そのあたりの出来事を紹介します。

ahamo 解約の経緯

データ容量を持て余している

ahamoは、20GB 2970円(税込)という、docomo本体としては思い切った価格設定で話題を集め、私もほどなくして契約しました。 ですが、私のデータ使用料はせいぜい月1-2GBであることが分かっていたので、利用実態からしたら割高となることは分かっていました。

最近になって、競合であるKDDIからはpovo2.0、LINEMOであればミニプランが出るなどの動きもあり、ahamoも同様に低容量プランを出してくれればいいのですが、一向にその気配はありません。まぁ「ドコモのエコノミーMVNO」とやっているぐらいなので、ドコモとして格安・低容量のプランは出せないなどの事情はあるのかもしれません。

ahamoの良いところはMNOならではの通信品質の良さだと思っています。ただ、MNOの通信品質が欲しければ低容量かつ割安なUQ mobileなどがあるわけですし、MNO品質にこだわらないなら、それこそエコノミーMVNOたるOCNを契約するなどの選択肢があります。これが、ahamo から転出しようという主な理由です。

docomo を継続するメリットがない

各社がMNPに力を入れ、総務省から問題視されるほどの還元を行っていたころ、家族でドコモに乗り換えました。そのままドコモを7年使っていますが、継続することのメリットを感じませんし、なんならdocomo/ahamoの切り替え3回目から割高な料金を請求されるといった契約を継続することのデメリットをドコモが設定しました。私はドコモのみんな家族割・ドコモ光セット割を活かすことでドコモ本家でもそこそこ安く運用ができるのですが、docomo/ahamo切り替えのペナルティを考えると解約でいいやって気分になりました。継続のメリットもないし。またahamoに戻したかったら改めてMNPすればいいのです。この記事を書いている現在ですとahamoへMNPすると10000ポイント貰えるようですし、そういった傾向は今後も続くでしょう。長期契約者に対する優遇についても総務省がよく思っていない、という背景もあるのだと思います。

手続き

苦労ポイント:ahamo の回線にドコモの割引サービスなどをまとめていた

先の理由で料金が高いと感じた私は、代表となっている ahamo の転出を試みるわけですが、docomo/ahamo から転出するには以下の条件を満たしている必要があります。

  • ファミリー割引の代表ではないこと
  • 一括請求グループの代表ではないこと
  • ドコモ光のペア回線ではないこと

ところが私は過去に家族でドコモに乗り換えており、両親・妻・私と全員ドコモです。このうち、私の ahamo に以下のドコモサービスが紐づいていました。

  • ファミリー割引の代表回線
  • ドコモ光
  • dカードMNPには影響なし)
  • dポイント共有グループ(MNPには影響なし)

かつては請求代表も私でしたが、ahamo にする直前にバラバラにしました。ですがファミリー割引は私がコントロールしたい事情もあり、ahamo にステイさせました。

MNPを行うには、ファミリー割引とドコモ光をなんとかする必要があります。少し前に iPhone の安さに目がくらみMNP転入したドコモ新回線があるので、ファミリー割引とドコモ光を新回線に紐付けしなおすことにしました。

ファミリー割引の主回線変更

ahamoのFAQに案内されている通り、郵送での手続きとなります。新代表からの電話手続きでなんとかならないかドコモに聞いてみたものの、現代表から手続きを行う必要があるとのことでした。

郵送以外の手段としては、一度ドコモのギガプランに変更してから電話などで手続きを行う方法も考えました。ですがなんとahamoからドコモプランに変更するにはドコモショップ店頭での手続きが必要とのことで、来店予約し店頭に出向くのは面倒すぎたので、郵送にてファミリー割引の代表を変更することにしました。というかオンライン手続きを推進しているはずのahamoなのに本家プランに戻すには店頭手続きだとか、正直よくわかりません....

ahamoサイトから申込書をダウンロードし印刷します。自宅にプリンタがないのでコンビニで印刷しました。急ぎめに手続きしたかったのでレターパックライトも購入しました。

f:id:ds-dsv:20211221231220j:plain
ドコモのファミリー割引の郵送申込書

以下の要領で申込書を記入します。この申込書で複雑なファミリー割引関連の手続きもできるのだと思いますが、ここで不備があると何らかの方法で突き返されるでしょうから、とりあえず代表変更だけにしておくのが無難だと思います。代表を ahamo から外すことができれば電話や店頭でどうにでもなります。以下の例は、本人名義の回線から別の同名義に代表を移す際の記入方法です。

f:id:ds-dsv:20211221231008p:plain
ファミリー割引代表回線変更の記入例

これをポストに投函。

手続きが終わったかどうかは、ahamo または my docomo のサイトで、手続き履歴のページを見ることで分かります。特に終わったことを知らせる通知はありませんでしたが、ファミリー割引の変更ですから同グループ回線にメッセージRなどが飛んでいるのかもしれません。

私がポストに投函したのは12/18(土)で、12/19(日)にドコモへ到着。12/20(月)の夕方ごろに手続き完了。日曜日に郵送担当が稼働しているのは分かりませんので、郵送手続きのリードタイムとしては到着から1営業日と見ておくのがよいかもしれません。

ドコモ光のペア回線の変更

こちらはahamoのままドコモ光の手続きが可能です。ファミリー割引は電話受付NGなのにドコモ光は電話受付OKなのはよくわかりませんが、想像するに、ペア回線変更はahamoの手続きではなくドコモ光の手続きでなので電話受付OKということなのだと思います。こちらはドコモインフォメーションセンターに電話し、現ペア回線と新ペア回線を申告することで即時に変更ができます。名義は同じである必要があるようです。ペア変更の際に理由を尋ねられましたが「ペア回線を他社に転出したい」と素直に伝えました。

なお、この手続きのときに知ったことがあるので以下にメモしておきます。あくまで手続きを行った当時(2021年12月)であることに注意いただきたいのですが、

  1. ペア回線の変更は月に1回まで。
  2. ペア回線の変更を行った当月から、ドコモ光の請求は新ペア回線と合算となる。
  3. ペア回線を設定しないドコモ光の単独契約も可能

特に3点目の単独契約可能であることは私にとって新情報でした。最近のフレッツ光回線契約では、光コラボが出てきてから「フレッツ光回線+プロバイダ」のセット契約を取ることに各プロバイダが力を入れており、2年契約やら工事費やらの縛りもあるので、プロバイダの品質に不満が生じたとしてもプロバイダの変更が行いにくいことはデメリットだと感じていました。ドコモ光の優れているところは(手数料はかかりますが)プロバイダの変更が容易なところで、この1点だけでドコモ光を選ぶ価値があると感じていたので、単独契約が可能であることは朗報でした。

MNP予約番号の発行

ここまでやって、MNP予約番号を発行することができるようになりました。my docomo から手続きが可能です。

f:id:ds-dsv:20211221230955p:plain
MNP予約の直前まで到達成功

とりあえず、これで思い立ったときにいつでも転出ができる状態になりました。

オプション:dカード・dポイント

必要に応じて、dカードやdポイント共有グループの紐づけなども変更しておきます。このあたりは解約後でも可能ですが、解約前のほうがドコモ側での契約確認がスムーズです。なおdアカウントに関する手続きはahamoでも電話受け付けしてもらえます

このあたりを後日行うとしても、最低限、dアカウントに連絡先メールアドレスを設定しておいたほうがよいです。いざ解約後にdアカウントを触りたくなったとき、2段階認証のワンタイムパスワードを送る先のメールアドレスが未登録であるとドコモショップでの手続きになり、不便な思いをします。

まとめ

ahamo の発表当時、「20代の単身世帯に向けたプラン」とアナウンスしていたことを記憶しています。Web手続き・大容量・割安という特徴からしたら若者向けなのは理解するのですが、単身者に向けたプランだからといって家族割や請求代表に関する手続きが郵送なのは理不尽な不便さだなぁというのが率直な感想です。ただし郵送手続きが必要になることはahamoのサイトでもアナウンスしている通り事前手続き推奨なので、そこを理解しながら申し込んだ私の否でもあります。まぁ、ahamo は当初はサブブランドとしてサービス設計されたような印象を受けますので家族割を申し込めるだけ親切だと思うべきなのかもしれません。ただ、やはり従前からWeb受付できない手続きぐらいはahamoであっても電話で受付してほしいなあ....ahamo チャットで受け付けて続きは電話とかでもいいのでは....そのあたりは今後に期待ですね。

転出先は未定です。最近だと家電量販店でauiPhone 12 miniが格安で購入できそうですので、au経由でUQ mobileにしようかと目論んでいます。もしくは安さ重視でOCNでもいいかな。

BTRFS で運用していた HDD に不良セクタが目立ってきたので交換した話

私はbtrfsで自作NASを運用しています。そのHDDに不良セクタが目立つようになってきたので交換した話です。

現在のディスク構成

2台のディスクでミラーリングを行っており、ディスクは以下の2台です。

  • 1台目: 東芝 DT01ACA300 ※普通のデスクトップ用HDD
  • 2台目: Western Digital Blue 3TB (WDC WD30EZRZ-00Z5HB0)

この2台目(WD Blue)の健康状態が怪しいので、別の同型番のHDDに交換します。 そもそも Blue は NAS に向けたハードディスクではありませんが、それを承知の上で使用しています。メーカーの違うHDDとミラーリングしているし、同時故障する可能性はほとんどないだろうと思った上での導入です。Blue の 3TB は当時はお手頃だった(1万円くらい)ので倉庫用としてたくさん購入しており、より大容量のものと買い替えて余ったので、NAS に転用しました。

交換前のディスクの使用状況はこんな感じ。3TBのHDDを2台でミラーリングしています。

$ sudo btrfs fi usage /storage/nas
Overall:
    Device size:                   5.46TiB
    Device allocated:              2.83TiB
    Device unallocated:            2.62TiB
    Device missing:                  0.00B
    Used:                          2.83TiB
    Free (estimated):              1.31TiB      (min: 1.31TiB)
    Data ratio:                       2.00
    Metadata ratio:                   1.67
    Global reserve:              512.00MiB      (used: 0.00B)
:
:

交換するディスクの S.M.A.R.T. 情報は以下。

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   176   172   021    Pre-fail  Always       -       6158
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       365
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       14
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   084   084   000    Old_age   Always       -       11953
 10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   100   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       169
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       95
193 Load_Cycle_Count        0x0032   199   199   000    Old_age   Always       -       3789
194 Temperature_Celsius     0x0022   126   098   000    Old_age   Always       -       24
196 Reallocated_Event_Count 0x0032   189   189   000    Old_age   Always       -       11
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       93
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       88
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   200   200   000    Old_age   Offline      -       344
  • Reallocated_Sector_Ct: 14
  • Current_Pending_Sector: 93
  • Offline_Uncorrectable: 88

まあまあ目立ってると思います。稼働時間は11953Hr(1.4年)。感覚的にはNAS用として3年ほど使用したと思います。hdparm -S を使用して無アクセスのときスピンダウンするような運用も行っていましたので、その時間がカウント外になっているのかもしれません。 S.M.A.R.T のログによると、3週間前は以下の数値でした。なんか爆増にように見えます。

  • Current_Pending_Sector: 86
  • Offline_Uncorrectable: 81

ただ、btrfsで特段の不都合やエラーがあったわけではなさそうです。

$ sudo btrfs device stat /storage/nas
[/dev/sdd].write_io_errs    0
[/dev/sdd].read_io_errs     0
[/dev/sdd].flush_io_errs    0
[/dev/sdd].corruption_errs  0
[/dev/sdd].generation_errs  0
[/dev/sda].write_io_errs    0
[/dev/sda].read_io_errs     0
[/dev/sda].flush_io_errs    0
[/dev/sda].corruption_errs  0
[/dev/sda].generation_errs  0

しばらく続投できると思うのですが、不良セクタの気味が悪いのでディスクを交換します。

なお、ペアとなっている東芝(/dev/sdd)の S.M.A.R.T. は以下です。

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   016    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   140   140   054    Pre-fail  Offline      -       67
  3 Spin_Up_Time            0x0007   144   144   024    Pre-fail  Always       -       387 (Average 411)
  4 Start_Stop_Count        0x0012   100   100   000    Old_age   Always       -       433
  5 Reallocated_Sector_Ct   0x0033   100   100   005    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000b   100   100   067    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   119   119   020    Pre-fail  Offline      -       35
  9 Power_On_Hours          0x0012   095   095   000    Old_age   Always       -       37105
 10 Spin_Retry_Count        0x0013   100   100   060    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       187
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       902
193 Load_Cycle_Count        0x0012   100   100   000    Old_age   Always       -       902
194 Temperature_Celsius     0x0002   230   230   000    Old_age   Always       -       26 (Min/Max 9/47)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x000a   200   200   000    Old_age   Always       -       0
  • Reallocated_Sector_Ct: 0
  • Current_Pending_Sector: 0
  • Offline_Uncorrectable: 0

このディスクは2017年3月に購入したものでした。稼働時間は37105Hr(4.2年)。 素晴らしいですね。私の中での東芝HDDの信頼性が爆上がりです。

でもまあ、このディスクのプレスリリースによると、Western Digital から買収した製造設備を活用して作った製品のようですから、東芝ではなく Western Digital の実力なのかもしれません。

交換作業

今回は交換元/交換先の両方が使用可能な状態なので、btrfs replace コマンドを使用します。 もし交換元が死んでいたりする場合は、btrfs add/remove を使用するようです。

コマンドの構文を確認。

$ btrfs replace
usage: btrfs replace <command> [<args>]

    btrfs replace start [-Bfr] <srcdev>|<devid> <targetdev> <mount_point>
        Replace device of a btrfs filesystem.
    btrfs replace status [-1] <mount_point>
        Print status and progress information of a running device replace
    btrfs replace cancel <mount_point>
        Cancel a running device replace operation.

replace a device in the filesystem

/dev/sda を、 /dev/sdc に交換。

$ sudo btrfs replace start /dev/sda /dev/sdc /storage/nas
/dev/sdc appears to contain a partition table (gpt).
ERROR: use the -f option to force overwrite of /dev/sdc

交換先のディスクは元倉庫ですのでGPTテーブルがありNTFSパーティションがあります。 このディスク全体をパーティションレスbtrfsで使用するので、指示された通り -f オプションをつけて再実行します。

$ sudo btrfs replace start /dev/sda /dev/sdc /storage/nas -f
$ sudo btrfs replace status /storage/nas
0.1% done, 0 write errs, 0 uncorr. read errs

始まったようです。 朝まで放置したところ、3時間半で終わっておりました。

$ sudo btrfs replace status /storage/nas
Started on  6.Dec 21:04:39, finished on  7.Dec 00:44:39, 0 write errs, 0 uncorr. read errs

ちなみに、交換先のディスクの S.M.A.R.T. 情報は以下の通り。

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   183   176   021    Pre-fail  Always       -       5841
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       212
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   099   099   000    Old_age   Always       -       858
 10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   100   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       171
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       125
193 Load_Cycle_Count        0x0032   185   185   000    Old_age   Always       -       46662
194 Temperature_Celsius     0x0022   129   100   000    Old_age   Always       -       21
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   200   200   000    Old_age   Offline      -       0

使用時間たったの858時間。そのわりには、Load_Cycle_Count の値がやたら高いです。例の IntelliPark によるものでしょう。 このままNAS用として使用するのは気持ち悪いので、IntelliPark のタイマーを、8秒から300秒に変更します。 300秒の根拠は分かりませんが、どこかで Linux では300秒を推奨とのことを見たことがあるので、それに従うことにします。

$ sudo idle3ctl -s 138 /dev/sdc

なぜ -s 138 で300秒なのかはよくわかりませんが (0x138 = 312)、ググったところ 138 で良いらしいので、そのようにします。

ディスク交換としての作業は終了。長持ちしてくれるといいなあ。