FreeBSD
未完成。試行錯誤中
必要なHDDは追加した。っでzfsを作ってみる。root領域はufsのままです。
ここでは5つのHDDで
HDDをGPTスキーマでパーティションテーブルを作成して、
[root@bsd ~]# gpart create -s GPT da1
da1 created
(中略)
[root@bsd ~]# gpart create -s GPT da5
da5 created
[root@bsd ~]#各HDDに全量のパーティションを一つ作成する
[root@bsd ~]# gpart add -t freebsd-zfs da1
da1p1 added
(中略)
[root@bsd ~]# gpart add -t freebsd-zfs da5
da5p1 added
[root@bsd ~]#っで確認はgpart showで行える。
この記憶域プールを作成する際、raid5的な要素[raid-z]、raid6的な要素[raid-z2]、ミラーリング、raid10的な要素らで構築することが可能。
この作成した記憶域プールを丸ごと、もしくはフォルダを作って、ファイルシステム にアサインする。

まず、raid-zな記憶域プールを作ってみる。記憶域を作ると自動的にファイルシステム にマウントされる(ここでは /zfspool)。
/etc/fstabを調整する必要はなくzfsが勝手に行ってくれる。
[root@bsd ~]# zpool create zfspool raidz da1 da2 da3 da4 da5 *記憶域プール名zfspoolとしてraidzで構築
[root@bsd ~]# df -lTh
Filesystem Type Size Used Avail Capacity Mounted on
/dev/da0p3 ufs 3.9G 842M 2.8G 23% /
devfs devfs 1.0k 1.0k 0B 100% /dev
zfspool zfs 62G 46k 62G 0% /zfspool *記憶域プール名zfspoolが使われる。-m /zfsと変更可能
[root@bsd ~]#
[root@bsd ~]# zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
zfspool 79.5G 220K 79.5G 0% 1.00x ONLINE -
[root@bsd ~]#
[root@bsd ~]# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zfspool 360K 62.5G 46.3K /zfspool
[root@bsd ~]#16[GB] x ( 5[本] - 1[本] ) = 64[GB] だから大体合っている。
作り直しするには、zpool destroy を用いて記憶域プールzfspoolを消し去る
[root@bsd ~]# zpool destroy zfspool
[root@bsd ~]# df -lTh
Filesystem Type Size Used Avail Capacity Mounted on
/dev/da0p3 ufs 3.9G 842M 2.8G 23% /
devfs devfs 1.0k 1.0k 0B 100% /dev
[root@bsd ~]#もし記憶域プール全体を/etc/fstabでマウントしたいのなら、-m legacy を適用して記憶域プールを作成する。
[root@bsd ~]# zpool create -m legacy zfspool raidz da1 da2 da3 da4 da5
[root@bsd ~]# df -lTh
Filesystem Type Size Used Avail Capacity Mounted on
/dev/da0p3 ufs 3.9G 842M 2.8G 23% /
devfs devfs 1.0k 1.0k 0B 100% /dev */zfspoolが存在しない
[root@bsd ~]# zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
zfspool 79.5G 310K 79.5G 0% 1.00x ONLINE -
[root@bsd ~]# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zfspool 169K 62.5G 46.3K legacy
[root@bsd ~]# mount -t zfs zfspool /mnt
[root@bsd ~]# df -lTh
Filesystem Type Size Used Avail Capacity Mounted on
/dev/da0p3 ufs 3.9G 842M 2.8G 23% /
devfs devfs 1.0k 1.0k 0B 100% /dev
zfspool zfs 62G 46k 62G 0% /mnt
[root@bsd ~]#*マウント方法をzfs管理下に置くか、従来の/etc/fstabでするかが問われる。まあzfs管理下が楽なのかな?
記憶域プールにフォルダを作ってファイルシステム にアサインしてみる。
まずは現状確認。
[root@bsd ~]# df -lTh
Filesystem Type Size Used Avail Capacity Mounted on
/dev/da0p3 ufs 3.9G 842M 2.8G 23% /
devfs devfs 1.0k 1.0k 0B 100% /dev
zfspool zfs 62G 46k 62G 0% /zfspool
[root@bsd ~]#
[root@bsd ~]# zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
zfspool 79.5G 220K 79.5G 0% 1.00x ONLINE -
[root@bsd ~]# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zfspool 154K 62.5G 46.3K /zfspool
[root@bsd ~]#の状態で、記憶域プールzfspoolにフォルダAERSを作成する。
[root@bsd ~]# zfs create zfspool/AERS
[root@bsd ~]# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zfspool 234K 62.5G 46.3K /zfspool
zfspool/AERS 46.3K 62.5G 46.3K /zfspool/AERS
[root@bsd ~]#
[root@bsd ~]# df -lTh
Filesystem Type Size Used Avail Capacity Mounted on
/dev/da0p3 ufs 3.9G 842M 2.8G 23% /
devfs devfs 1.0k 1.0k 0B 100% /dev
zfspool zfs 62G 48k 62G 0% /zfspool
zfspool/AERS zfs 62G 46k 62G 0% /zfspool/AERS *自動でマウントされる。再起動しても継承される
[root@bsd ~]#っというように、ご丁寧にフォルダを作るとファイルシステム にアサインしてくれます。
でも、、あれ/zfspoolの配下のフォルダなのだから、別にマウントする意味なくね?現にファイルシステムからは
[root@bsd ~]# ls -lh /zfspool
total 2
drwxr-xr-x 2 root wheel 2B Dec 9 18:22 AERS/
[root@bsd ~]#のように/zfspool/AERSなファイルシステム と作成されるんだからさぁ。っとも思う。
ごもっとも、でもここからがzfsの持ち味なようで、まずマウントポジションの変更
[root@bsd ~]# zfs set mountpoint=/Appl/AERS zfspool/AERS
[root@bsd ~]# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zfspool 244K 62.5G 46.3K /zfspool
zfspool/AERS 46.3K 62.5G 46.3K /Appl/AERS
[root@bsd ~]#
[root@bsd ~]# df -lTh
Filesystem Type Size Used Avail Capacity Mounted on
/dev/da0p3 ufs 3.9G 842M 2.8G 23% /
devfs devfs 1.0k 1.0k 0B 100% /dev
zfspool zfs 62G 46k 62G 0% /zfspool
zfspool/AERS zfs 62G 46k 62G 0% /Appl/AERS
[root@bsd ~]#ができて、加えてこのフォルダにはzfs get all zfspool/AERS で定義される各種プロパティーを調整できる。
透過的圧縮とかquotaとか。
例えば
| 記憶域プール | フォルダ名 | マウントポイント | 属性 |
| zfspool | / | /zfspool | |
| AERS | /Appl/AERS | quota=5g | |
| archive | /mnt/archive | quota=10g compress=on |
な感じで。
[root@bsd ~]# zfs set quota=5g zfspool/AERS
[root@bsd ~]# zfs create -o mountpoint=/mnt/archive -o compress=on zfspool/archive
[root@bsd ~]# zfs set quota=10g zfspool/archive
[root@bsd ~]# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zfspool 349K 62.5G 47.9K /zfspool
zfspool/AERS 46.3K 5.00G 46.3K /Appl/AERS
zfspool/archive 46.3K 10.0G 46.3K /mnt/archive
[root@bsd ~]#
[root@bsd ~]# df -lTh
Filesystem Type Size Used Avail Capacity Mounted on
/dev/da0p3 ufs 3.9G 842M 2.8G 23% /
devfs devfs 1.0k 1.0k 0B 100% /dev
zfspool zfs 62G 48k 62G 0% /zfspool
zfspool/AERS zfs 5.0G 46k 5G 0% /Appl/AERS *サイズが5GBに制限されている
zfspool/archive zfs 10G 46k 10G 0% /mnt/archive *サイズが10GBに制限されている
[root@bsd ~]#他、スナップショットも撮影できる。
ファイルシステム に/zfspoolが存在するのが嫌なら
[root@bsd ~]# zfs set mountpoint=none zfspool
[root@bsd ~]# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zfspool 366K 62.5G 47.9K none
zfspool/AERS 46.3K 5.00G 46.3K /Appl/AERS
zfspool/archive 46.3K 10.0G 46.3K /mnt/archive
[root@bsd ~]#
[root@bsd ~]# df -lTh
Filesystem Type Size Used Avail Capacity Mounted on
/dev/da0p3 ufs 3.9G 842M 2.8G 23% /
devfs devfs 1.0k 1.0k 0B 100% /dev
zfspool/AERS zfs 5.0G 46k 5G 0% /Appl/AERS
zfspool/archive zfs 10G 46k 10G 0% /mnt/archive
[root@bsd ~]#で外せる。
*当初、zfs create -V サイズでフォルダのサイズが制限されるかと思ったのだが、どうやら
[root@bsd ~]# zfs create -s -b 16k -V 20G zfspool/AERS *シンプロビジョニング(-s)適用
[root@bsd ~]# zfs create -b 16k -V 20G zfspool/AERS2 *-sを指定しないと領域確保されるは、swap領域とかiSCSIとして切り出す場合のものだったみたい。フォルダのサイズ制限はquotaで行うようだった。