2016年12月9日金曜日

FreeBSD 11のインストール(zfs root/mirrorの場合) - 4

このサーバーには以下のように6台のHDDがあり、ada0とada1はルートファイルシステムとして使っています。
# camcontrol devlist
<ST4000DM000-2AE166 0001>          at scbus0 target 0 lun 0 (pass0,ada0)
<ST4000DM000-2AE166 0001>          at scbus1 target 0 lun 0 (pass1,ada1)
<ST2000DM001-9YN164 CC4C>          at scbus2 target 0 lun 0 (pass2,ada2)
<ST2000DM001-9YN164 CC4C>          at scbus3 target 0 lun 0 (pass3,ada3)
<WDC WD20EZRX-00DC0B0 80.00A80>    at scbus4 target 0 lun 0 (pass4,ada4)
<WDC WD20EZRX-00DC0B0 80.00A80>    at scbus5 target 0 lun 0 (pass5,ada5)
#
パーティション情報はada0とada1だけに設定されています。
# gpart show
=>        40  7814037088  ada0  GPT  (3.6T)
          40        1600     1  efi  (800K)
        1640        1024     2  freebsd-boot  (512K)
        2664        1432        - free -  (716K)
        4096  7814031360     3  freebsd-zfs  (3.6T)
  7814035456        1672        - free -  (836K)

=>        40  7814037088  ada1  GPT  (3.6T)
          40        1600     1  efi  (800K)
        1640        1024     2  freebsd-boot  (512K)
        2664        1432        - free -  (716K)
        4096  7814031360     3  freebsd-zfs  (3.6T)
  7814035456        1672        - free -  (836K)
#
残りの4台をZFSで利用するには以下にようにします。

まず最初はパーティションタイプを設定します。
# gpart create -s gpt ada2
ada2 created
# gpart create -s gpt ada3
ada3 created
# gpart create -s gpt ada4 

ada4 created
# gpart create -s gpt ada5

ada5 created
# gpart show
=>        40  7814037088  ada0  GPT  (3.6T)
          40        1600     1  efi  (800K)
        1640        1024     2  freebsd-boot  (512K)
        2664        1432        - free -  (716K)
        4096  7814031360     3  freebsd-zfs  (3.6T)
  7814035456        1672        - free -  (836K)

=>        40  7814037088  ada1  GPT  (3.6T)
          40        1600     1  efi  (800K)
        1640        1024     2  freebsd-boot  (512K)
        2664        1432        - free -  (716K)
        4096  7814031360     3  freebsd-zfs  (3.6T)
  7814035456        1672        - free -  (836K)

=>        40  3907029088  ada2  GPT  (1.8T)
          40  3907029088        - free -  (1.8T)

=>        40  3907029088  ada3  GPT  (1.8T)
          40  3907029088        - free -  (1.8T)

=>        40  3907029088  ada4  GPT  (1.8T)
          40  3907029088        - free -  (1.8T)

=>        40  3907029088  ada5  GPT  (1.8T)
          40  3907029088        - free -  (1.8T)

#
次にパーティションを設定します。このとき-lでラベル名disk2、-tでパーティションタイプfreebsd-zfs、-a 4kで4k境界での割り当てを指定しています。
# ls /dev/gpt
disk0        efiboot0    gptboot0
disk1        efiboot1    gptboot1
# gpart add -t freebsd-zfs -l disk2 -a 4k ada2
ada2p1 added
# gpart show
=>        40  7814037088  ada0  GPT  (3.6T)
          40        1600     1  efi  (800K)
        1640        1024     2  freebsd-boot  (512K)
        2664        1432        - free -  (716K)
        4096  7814031360     3  freebsd-zfs  (3.6T)
  7814035456        1672        - free -  (836K)

=>        40  7814037088  ada1  GPT  (3.6T)
          40        1600     1  efi  (800K)
        1640        1024     2  freebsd-boot  (512K)
        2664        1432        - free -  (716K)
        4096  7814031360     3  freebsd-zfs  (3.6T)
  7814035456        1672        - free -  (836K)

=>        40  3907029088  ada2  GPT  (1.8T)
          40  3907029080     1  freebsd-zfs  (1.8T)
  3907029120           8        - free -  (4.0K)

=>        40  3907029088  ada3  GPT  (1.8T)
          40  3907029080        - free -  (4.0K)

=>        40  3907029088  ada4  GPT  (1.8T)
          40  3907029088        - free -  (1.8T)

=>        40  3907029088  ada5  GPT  (1.8T)
          40  3907029088        - free -  (1.8T)

# ls /dev/gpt
disk0        disk2        efiboot1    gptboot1
disk1        efiboot0     gptboot0
#
次にZFSプールを作ります。
# zpool create -m /disk/kona/zkona10 zkona10 gpt/disk2
# zpool status zkona10
  pool: zkona10
 state: ONLINE
  scan: none requested
config:

    NAME         STATE     READ WRITE CKSUM
    zkona10      ONLINE       0     0     0
      gpt/disk2  ONLINE       0     0     0

errors: No known data errors
#
-mでマウントポイントを、gpt/disk2でラベル名を使ってデバイスを指定しています。

ルートファイルシステムと同じようにミラー構成にするには以下のようにします。
まずada3をada2と同じパーティションにします。
# gpart show ada2 ada3
=>        40  3907029088  ada2  GPT  (1.8T)
          40  3907029080     1  freebsd-zfs  (1.8T)
  3907029120           8        - free -  (4.0K)

=>        40  3907029088  ada3  GPT  (1.8T)
          40  3907029088        - free -  (1.8T)

# gpart add -t freebsd-zfs -l disk3 -a 4k ada3
ada3p1 added
# gpart show ada2 ada3
=>        40  3907029088  ada2  GPT  (1.8T)
          40  3907029080     1  freebsd-zfs  (1.8T)

  3907029120           8        - free -  (4.0K)

=>        40  3907029088  ada3  GPT  (1.8T)
          40  3907029080     1  freebsd-zfs  (1.8T)
  3907029120           8        - free -  (4.0K)

# ls /dev/gpt
disk0        disk2        efiboot0    gptboot0
disk1        disk3        efiboot1    gptboot1
次にzkona10のgpt/disk3をattachします。
# zpool attach zkona10 gpt/disk2 gpt/disk3
# zpool status zkona10
  pool: zkona10
 state: ONLINE
  scan: resilvered 324K in 0h0m with 0 errors on Fri Dec  9 14:57:41 2016
config:

    NAME           STATE     READ WRITE CKSUM
    zkona10        ONLINE       0     0     0
      mirror-0     ONLINE       0     0     0
        gpt/disk2  ONLINE       0     0     0
        gpt/disk3  ONLINE       0     0     0

errors: No known data errors
#
ada4、ada5についても同じように作業します。