zfsを使ってみた

最近zfsに関する話をあちこちで見掛けたので,自分のノートPCのFreeBSDzfsにしてみることにした.ルートからzfsというのが流行っているようなのでそのようにしてみた.しかしそうすると,またクリーンインストールだな….まあいいか.

PC-BSD 8.1 を使って ZFS boot な FreeBSD をインストールするを参考にさせて頂き初めてPC-BSDを使ってみた.sysinstall に比べたら格段に分かり易くなっている.しかしGUIの見た目がちょっと古いのが気になってしまう.

これまでは ufs で /, /var, /usr, /home とかに分けてた.こうしておくとOSのメジャーバージョンアップの時とかに「スッキリさせたいので /home 以外は newfs からやり直し!!」とかできて便利だったので.
これに比べて,ルートからzfsで使うというのはあっけないくらいに簡単.容量配分で悩む必要もない(実際は「本当にこんな簡単で良いんだろうか?」としばらく悩んでいたが).

更に,ネイティブにFreeBSDをブートしたときとVMwareのゲストOSとしてブートした時で,ディスクコントローラの番号(ad0 とか ad4)が変わってしまう問題から開放されて,どちらの環境でもすんなり起動するようになった.

最後に,FreeBSD-8.0でEeePCが蘇った件を参考にさせて頂き,compression の設定などしてみた.なるほど,確かに /usr の下とか圧縮するとかなり縮むんだ.これは素晴しい.

# gpart show
=>       63  500118129  ad0  MBR  (238G)
         63       1985       - free -  (993K)
       2048   24576000    1  !45  (12G)
   24578048     614400    2  !45  (300M)
   25192448  104856688    3  !45  (50G)
  130049136  370069056    4  freebsd  [active]  (176G)

=>        0  370069056  ad0s4  BSD  (176G)
          0  370057216      1  freebsd-ufs  (176G)
  370057216      11840         - free -  (5.8M)


# zpool list
NAME    SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
tank0   176G  86.7G  89.3G    49%  ONLINE  -


# zfs get compression
NAME                       PROPERTY     VALUE                      SOURCE
tank0                      compression  off                        default
tank0/home                 compression  off                        default
tank0/usr                  compression  gzip                       local
tank0/usr/local            compression  gzip                       inherited from tank0/usr
tank0/usr/local/man        compression  off                        local
tank0/usr/obj              compression  lzjb                       local
tank0/usr/ports            compression  lzjb                       local
tank0/usr/ports/distfiles  compression  off                        local
tank0/usr/share            compression  gzip                       local
tank0/usr/share/man        compression  off                        local
tank0/usr/src              compression  gzip                       local
tank0/var                  compression  lzjb                       local