NetBSDサーバ 4TB HDD入れ換えRAID再構築

前年度夏に導入した Opteron 64コアサーバのうちひとつのHDDがRAIDミラーから外れた。 代替品をささっと送ってくれたので交換。 既存の4TBディスクはこんな構成。

gpt show wd2
       start        size  index  contents
           0           1         PMBR
           1           1         Pri GPT header
           2          32         Pri GPT table
          34          46         
          80   209715200      1  GPT part - NetBSD RAIDFrame component
   209715280     8388608      2  GPT part - NetBSD swap
   218103888  7595933247      3  GPT part - NetBSD RAIDFrame component
  7814037135          32         Sec GPT table
  7814037167           1         Sec GPT header
dkctl wd2 listwedges
/dev/rwd2d: 3 wedges:
dk3: boot2, 209715200 blocks at 80, type: raidframe
dk4: swap2, 8388608 blocks at 209715280, type: swap
dk5: toy2, 7595933247 blocks at 218103888, type: raidframe

システム領域=100GB、swap=4GB、 データ(仮想化ゲストイメージ等)領域=残り全部、という感じ。 新品wd0にも同じようにGPTを作成し、wedgeを打ち込む。

gpt create wd0
gpt add -i 1 -b 80 -s 100g -l boot0 -t raid wd0
dkctl wd0 addwedge boot0 80 209715200 raidframe
dk7 created successfully.
gpt add -s 4g -l swap0 -t swap wd0
dkctl wd0 addwedge swap0 209715280 8388608 swap
dk8 created successfully.
: gpt show wd0 で空きブロック数を確認 → 7595933247
gpt add -s 7595933247 -l data0 -t raid wd0
dkctl wd0 addwedge data0 218103888 7595933247 raidframe
dk9 created successfully.
: ブートブロック書き込み
gpt biosboot -i 1 wd0
installboot -v -o console=com0kbd,speed=115200 /dev/rdk0 /usr/mdec/bootxx_ffsv2

続いてスペアとして既存RAID1に参加させる。

: dk7は /dev/raid0 に
raidctl -a /dev/dk7 raid0
: dk9は /dev/raid1 に
raidctl -a /dev/dk9 raid1

あとは頃合を見て raidctl -F してスペアを本番メンバーにすり替えておしまい。