USBメモリから起動したFreeBSDで、ZFSのNASを作ったときのメモ。(インストールとOSの設定編)

全力で脱線しまして、FreeBSDNAS作ったときのメモ。
ちなみに、うっかりIYHした機種はこちら。
NEC Express5800/120Li
あまりの爆音っぷりにファンを交換した話はまた別の機会に。

すでに周回遅れだし、先人の知恵のコピペ。
有用なサイトは山ほどあるので、自分で入力する内容のメモ。

とりあえずドライブとかはこんな感じ。元々ハードウェアRAIDが組まれていましたが、無効化しておきます。だって、da0とda1でRAID1、da2-5は単独接続みができないんだもの。

  • SASドライブ
    • da0 SAS
    • da1 SAS
    • da2 SAS
    • da3 SAS
    • da4 SAS
      • 全部HitachiUltraStarの78G。まとめてZFSの/zpoolにする予定。あとでSATAも追加予定。
  • USBメモリ(余り物)
    • da5
      • 512M /swap
    • da6
      • 2G / 1024M /
    • da7
      • 2G /usr
    • da8

事前にFreeBSDのサイトからダウンロードしたimgファイルをddやDDforWindowsとかブート可能なUSBを作れるライティングソフトで書きこむ。(FreeBSDのハンドブック参照)
うまくda8にインストール用USBメモリが認識されたけれど、これが違ったらまた面倒なことになりそう。

解決策

本体メモリが4Gあるから/swapレスでも行けるような気がするけど、余ってたメモリを使っておきます。正しいかといえば多分正しくない。

distributerはcustomで、kernelとbase,portsだけインストール。

sysinstallの内容はまぁ適当に。inetでSSHを有効にするのと、sysinstall中でSSHログインの有無を聞かれたときにYesにすると、あとでエラーが大量に吐かれるので、どっちかにしておく。

Packageの追加で、とりあえずbashだけインストール。
Userの権限はwheel。

あとは適当に選んで再起動。

再起動後、ログインしたらrootになる。

$ su
PassWord:
ry) to root on /dev/ttyv0
#

zfs.koのロード

# kldload zfs.ko
# kldstat
Id Refs Address Size Name
1 12 0xffffffff8010000 c9fe20 Kernel
2 1 0xffffffff8e22000 c46 warp_server.ko
3 1 0xffffffff8e23000 c9fe20 zfs.ko
4 1 0xffffffff80f2800 c9fe20 opensoralis.ko

da0からda4をクリーンにする。

# gpart create -s GPT da0
# gpart create -s GPT da1
# gpart create -s GPT da2
# gpart create -s GPT da3
# gpart create -s GPT da4

ここでGPTにしておかないとZFSにできないようです。
パーティションが残っているなら、gpart delete -i 1 da0とかでパーティションを削除してから、gpart destroy da0。

zpoolの作成

#zpool create zpool da0 da1 da2 da3 da4
invalid vdev specification
use '-f' to override the following errors:
/dev/gpt/da0 is part of potentially active pool 'zroot'

あれ。前に試した情報がda0とかにのこているようです。

  • fで強制的に実行。

#zpool create -f zpool da0 da1 da2 da3 da4

# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
zpool 340G 79.5K 340G 0% ONLINE -

5つのドライブが連結しました。

色々設定していきます。
/etc/rc.confに追加

dumpdev="NO"
powerd_enable="YES"
powerd_flags="-a adp -n adp"
clear_tmp_enable="YES"
zfs_enables="YES"

/boot/loader.confに追加(というか新規作成)

kern.cam.boot_delay=10000
cpufreq_load="YES"
ahci_load="YES"
zfs_load="YES"

1行目はUSBメモリを認識してもらうためにちょっと待たせる設定。