2010/09/19

zfsでRAID10 at FreeBSD ディスク交換

拡張カードにさらに1T*2を接続してディスクの交換をしてみる。

現在の状態

oscar# zpool status
  pool: tank
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            ad12    ONLINE       0     0     0
            ad14    ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            ad16    ONLINE       0     0     0
            ad18    ONLINE       0     0     0

errors: No known data errors


HDDの接続状況
追加した拡張カードの2ポートがad4とad6に見え、元からあったものは後ろにずれている。
2ポートだが、チャンネルは4つ?
oscar# atacontrol list
ATA channel 0:
    Master:  ad0 ATA/ATAPI revision 4
    Slave:       no device present
ATA channel 2:
    Master:  ad4 SATA revision 2.x
    Slave:       no device present
ATA channel 3:
    Master:  ad6 SATA revision 2.x
    Slave:       no device present
ATA channel 4:
    Master:      no device present
    Slave:       no device present
ATA channel 5:
    Master:      no device present
    Slave:       no device present
ATA channel 6:
    Master: ad12 SATA revision 2.x
    Slave:       no device present
ATA channel 7:
    Master: ad14 SATA revision 2.x
    Slave:       no device present
ATA channel 8:
    Master: ad16 SATA revision 2.x
    Slave:       no device present
ATA channel 9:
    Master: ad18 SATA revision 2.x
    Slave:       no device present
ATA channel 10:
    Master:      no device present
    Slave:       no device present
ATA channel 11:
    Master:      no device present
    Slave:       no device present


RAID10だからミラー単位で入れ替えるのか思ってたけどHDD1台単位で交換できた。
ad16を追加したad4と交換してみる。
zpool replace tank ad16 ad4

途中経過はこんな感じ。
oscar# zpool status
  pool: tank
 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.
 scrub: resilver in progress for 0h8m, 53.72% done, 0h7m to go
config:

        NAME           STATE     READ WRITE CKSUM
        tank           ONLINE       0     0     0
          mirror       ONLINE       0     0     0
            ad12       ONLINE       0     0     0
            ad14       ONLINE       0     0     0
          mirror       ONLINE       0     0     0
            replacing  ONLINE       0     0     0
              ad16     ONLINE       0     0     0
              ad4      ONLINE       0     0     0  34.8G resilvered
            ad18       ONLINE       0     0     0  40.4M resilvered

errors: No known data errors

完了するとこうなる。すばらしい。
oscar# zpool status
  pool: tank
 state: ONLINE
 scrub: resilver completed after 0h14m with 0 errors on Sun Sep 19 19:38:24 2010
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            ad12    ONLINE       0     0     0
            ad14    ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            ad4     ONLINE       0     0     0  63.6G resilvered
            ad18    ONLINE       0     0     0  63.6M resilvered

errors: No known data errors

ということは、マザーボードにはSATAは5ポートあり、ミラーリングで2つ使用中。
余っている1つは予備HDDとすれば

  • マザーボードでミラーリング*2
  • 拡張カードでミラーリング*PCIEの本数
  • マザーボードに控えHDDが1台 
が使えることになる。
控えHDDはいらないならSATAが6本ついているマザーボードにすればミラーを1つ増やせる。
でも、そんなマザーボードはちょっと高い。

拡張カードがFreeBSDで対応していないらしくSATA1.5Gbpsになってた…
チップはMarvell SE91XX。