FreeBSDサーバ、こんなエラーを吐くようになって。
(ada0:ahcich0:0:0:0): READ_FPDMA_QUEUED. ACB: 60 80 10 be 14 40 09 00 00 00 00 00 (ada0:ahcich0:0:0:0): CAM status: ATA Status Error (ada0:ahcich0:0:0:0): ATA status: 41 (DRDY ERR), error: 40 (UNC ) (ada0:ahcich0:0:0:0): RES: 41 40 40 be 14 00 09 00 00 80 00 (ada0:ahcich0:0:0:0): Retrying command (ada0:ahcich0:0:0:0): READ_FPDMA_QUEUED. ACB: 60 80 10 be 14 40 09 00 00 00 00 00
zpoolもCKSUMエラーが出た。
        NAME           STATE     READ WRITE CKSUM
        zvm0           ONLINE       0     0     0
          raidz1-0     ONLINE       0     0     0
            gpt/pool0  ONLINE       0     0    20
            gpt/pool1  ONLINE       0     0     0
            gpt/pool2  ONLINE       0     0     0
諦めて交換するか。練習したとき はVirtualBoxテスト環境だったが、今回はバリバリの実運用機なので慎重に。 まず元のHDDのGPTを見ておく。
gpart show ada0
=>        40  7814037088  ada0  GPT  (3.6T)
          40        1024     1  freebsd-boot  (512K)
        1064    16777216     2  freebsd-ufs  (8.0G)
    16778280    16777216     3  freebsd-swap  (8.0G)
    33555496    16777216     4  freebsd-ufs  (8.0G)
    50332712    67108864     5  freebsd-ufs  (32G)
   117441576  7696595544     6  freebsd-zfs  (3.6T)
  7814037120           8        - free -  (4.0K)
gpart create -s gpt da0 gpart add -t freebsd-boot -s 512k -l boot3 da0 da0p1 added gpart add -t freebsd-ufs -s 8g -l root3 da0 da0p2 added gpart add -t freebsd-swap -s 8g -l swap3 da0 da0p3 added gpart add -t freebsd-ufs -s 8g -l var3 da0 da0p4 added gpart add -t freebsd-ufs -s 32g -l usr3 da0 da0p5 added gpart add -t freebsd-zfs -l pool3 da0 da0p6 added gpart show da0 => 40 7814037088 da0 GPT (3.6T) 40 1024 1 freebsd-boot (512K) 1064 16777216 2 freebsd-ufs (8.0G) 16778280 16777216 3 freebsd-swap (8.0G) 33555496 16777216 4 freebsd-ufs (8.0G) 50332712 67108864 5 freebsd-ufs (32G) 117441576 7696595552 6 freebsd-zfs (3.6T)
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 da0
     起動パーティションはzfsでなくufsなので gptboot を使う。
gmiror status
       Name    Status  Components
mirror/root  COMPLETE  ada2p2 (ACTIVE)
                       ada4p2 (ACTIVE)
                       ada0p2 (ACTIVE)
 mirror/var  COMPLETE  ada2p4 (ACTIVE)
                       ada4p4 (ACTIVE)
                       ada0p4 (ACTIVE)
 mirror/usr  COMPLETE  ada2p5 (ACTIVE)
                       ada4p5 (ACTIVE)
                       ada0p5 (ACTIVE)
mirror/ssd0  COMPLETE  ada1p1 (ACTIVE)
                       ada3p1 (ACTIVE)
     今作った da0p{2,4,5} を入れて、対応する ada0* を抜く。
gmirror insert root da0p2 gmirror remove root ada0p2 gmirror insert var da0p4 gmirror remove var ada0p4 gmirror insert usr da0p5 gmirror remove usr ada0p5
zpool replace zvm0 gpt/pool0 gpt/pool3
     えぃっ、ままよ!
zpool status
  pool: zvm0
 state: ONLINE
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Thu Sep 19 19:15:55 2019
        2.88T scanned at 3.86G/s, 17.7G issued at 97.7M/s, 2.88T total
        5.86G resilvered, 0.60% done, 0 days 08:32:17 to go
config: 
        NAME             STATE     READ WRITE CKSUM
        zvm0             ONLINE       0     0     0
          raidz1-0       ONLINE       0     0     0
            replacing-0  ONLINE       0     0     0
              gpt/pool0  ONLINE       0     0    20
              gpt/pool3  ONLINE       0     0     0
            gpt/pool1    ONLINE       0     0     0
            gpt/pool2    ONLINE       0     0     0
errors: No known data errors
     おお、進んでる進んでる。
翌朝確認、resilver 無事完了。
電源を落とし、外付けでつないだHDDを筐体内のものと交換し ハードウェア的にもリプレースした。手順的に全て完了。
  pool: zvm0
 state: ONLINE
status: Some supported features are not enabled on the pool. The pool can
        still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
        the pool may no longer be accessible by software that does not support
        the features. See zpool-features(7) for details.
  scan: resilvered 981G in 0 days 10:17:32 with 0 errors on Fri Sep 20 05:33:27 2019
config: 
        NAME           STATE     READ WRITE CKSUM
        zvm0           ONLINE       0     0     0
          raidz1-0     ONLINE       0     0     0
            gpt/pool3  ONLINE       0     0     0
            gpt/pool1  ONLINE       0     0     0
            gpt/pool2  ONLINE       0     0     0
errors: No known data errors
ついでに zpool upgrade もしておいた。
zpool upgrade zvm0
This system supports ZFS pool feature flags.
Enabled the following features on 'zvm0':
  device_removal
  obsolete_counts
  zpool_checkpoint
  spacemap_v2
ん? device_removal? これ間違ってaddしちゃったのを外せるの? あとで調べよう。