ZFS なストレージサーバを構築した

FreeBSD 8.2-RELEASE amd64 で、ZFS なストレージサーバを構築しました。
もちろん ZFS root です。

ハードウェア構成

  • Intel Core i3-2100T
  • DDR3-1333 4GB x 2
  • DH67CL
  • WD2500BEVT
  • WD20EARS x 3

プール構成

システム用のプールです。

ルートファイルシステムをどこまで細かく分割するのが良いのか、しばらく悩みました。
とりあえず、FreeBSD を sysinstall でインストールする際の、自動割り当てを参考にしました。
今後運用していく中で必要性が出てきたら、更に細かく分割したいと思います。

現在、ディスク 1 本でプールを構成していますが、後にミラー化する予定です。

# gpart show -l ada0
=>       34  488397101  ada0  GPT  (233G)
         34        128     1  (null)  (64K)
        162   16777216     2  swap0  (8.0G)
   16777378  209715200     3  sys0  (100G)
  226492578  261904557        - free -  (125G)

# zpool status zroot
  pool: zroot
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        zroot       ONLINE       0     0     0
          gpt/sys0  ONLINE       0     0     0

errors: No known data errors

# zfs list -r zroot
NAME        USED  AVAIL  REFER  MOUNTPOINT  
zroot      1.45G  96.5G   290M  legacy  
zroot/tmp    76K  96.5G    28K  /tmp  
zroot/usr  1.16G  96.5G  1.16G  /usr  
zroot/var  1.03M  96.5G   802K  /var  

ストレージ用のプールです。

WD20EARS (2TB) を 3 本で、raidz1 構成です。
4.0TB = 3.6TiB なのが、なんとも悲しい所です。

AFT (Advanced Format Technology) におけるアライメントのずれが起きないように、40 セクタ目から GPT パーティションを切っています。

# gpart show -l ada1 ada2 ada3
=>        34  3907029101  ada1  GPT  (1.8T)
          34           6        - free -  (3.0K)
          40  3907029095     1  hdd0  (1.8T)

=>        34  3907029101  ada2  GPT  (1.8T)
          34           6        - free -  (3.0K)
          40  3907029095     1  hdd1  (1.8T)

=>        34  3907029101  ada3  GPT  (1.8T)
          34           6        - free -  (3.0K)
          40  3907029095     1  hdd2  (1.8T)

# zpool status zpool0
  pool: zpool0
 state: ONLINE
 scrub: none requested
config:

        NAME          STATE     READ WRITE CKSUM
        zpool0        ONLINE       0     0     0
          raidz1      ONLINE       0     0     0
            gpt/hdd0  ONLINE       0     0     0
            gpt/hdd1  ONLINE       0     0     0
            gpt/hdd2  ONLINE       0     0     0

errors: No known data errors

# zfs list -r zpool0
NAME     USED  AVAIL  REFER  MOUNTPOINT  
zpool0  93.9K  3.56T  28.0K  /zpool0  

ちょっとした工夫点

HDD 本体に、GPT のラベル名と対応したシールを貼りました。
交換・増設時にディスクの順序が入れ替わってしまっても、特定が楽になります。

参考