FreeBSD/ZFS on RaspberryPi2

FreeBSD/ZFS on
RaspberryPi2
@bsd-hacker
ZFS を RaspberryPi2 で使ってみました
• 外付け USB SSD を zfs pool にした
• 素のままだと zfs の module はありません
• いくつかコードの修正が必要
• cpu_id の定義を修正
• sys/modules/Makefile で disabled になっている zfs, opensolaris を有効化
• 面倒なら https://github.com/bsd-hacker/freebsd.git を使ってください
• github.com への commit は @BSDHackerCommit で流れるようにしてます
• なぜかフォロワーが 56人
使ってみて…
• 動くことは動く
• でも安定しない
• やっぱり 1G じゃメモリが少ない…
• メモリが少ないのでいろいろパラメータを調整する必要がある
• https://wiki.freebsd.org/ZFSTuningGuide の i386 を参考にしてみる
• どっかで排他制御ができていない?
• zrl_destroy() で abort する
• https://github.com/bsdhacker/freebsd/blob/shigeru_work/sys/cddl/contrib/opensolaris/uts/commo
n/fs/zfs/zrlock.c#L65
ZFS root 化
• 中途半端だけどできないわけではない
• ZFS へのインストールはインストーラーが無いので手作業
• https://wiki.freebsd.org/RootOnZFS を見ながらやる
• うまく root を見つけられない場合は loader で明示的に設定する必
要があります
• vfs.root.mountfrom を明示的に設定しておく
現状の boot の順番
• U-boot
• ubldr
• SD上の /boot/kernel/
• Bootしてから zfs の root に切り替え
スクリーンショット
完全 ZFS root に必要なこと
• u-boot の ZFS 対応
• 本家には入っているっぽい
• ubldr の ZFS 対応
• zfs の pool から root を見つけて /boot/kernel/ を読み込む
おまけ FreeBSD/RaspberryPi の状況
• pkg binary がだいぶそろいました
• pkg install でだいたいインストールできます
• http://pkg.freebsd.org/FreeBSD:11:armv6/latest/All/