[[FreeBSD]]
&color(red){未完成。試行錯誤中};
必要なHDDは追加した。っでzfsを作ってみる。root領域はufsのままです。
ここでは5つのHDDで
HDDをGPTスキーマでパーティションテーブルを作成して、
#code(nonumber){{
[root@bsd ~]# gpart create -s GPT da1
da1 created
(中略)
[root@bsd ~]# gpart create -s GPT da5
da5 created
[root@bsd ~]#
}}
各HDDに全量のパーティションを一つ作成する
#code(nonumber){{
[root@bsd ~]# gpart add -t freebsd-zfs da1
da1p1 added
(中略)
[root@bsd ~]# gpart add -t freebsd-zfs da5
da5p1 added
[root@bsd ~]#
}}
っで確認は&color(green){gpart show};で行える。
***zpool [#h6b4b06e]
この記憶域プールを作成する際、raid5的な要素[raid-z]、raid6的な要素[raid-z2]、ミラーリング、raid10的な要素らで構築することが可能。
この作成した記憶域プールを丸ごと、もしくは&color(blue,yellow){フォルダ};を作って、&color(yellow,blue){ファイルシステム}; にアサインする。
&ref(2013y12m08d_214936144.png,nolink);
まず、raid-zな記憶域プールを作ってみる。記憶域を作ると自動的に&color(yellow,blue){ファイルシステム}; にマウントされる(ここでは /zfspool)。
/etc/fstabを調整する必要はなくzfsが勝手に行ってくれる。
#code(nonumber){{
[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を消し去る
#code(nonumber){{
[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でマウントしたいのなら、&color(white,green){-m legacy}; を適用して記憶域プールを作成する。
#code(nonumber){{
[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 ~]#
}}
&color(red){*};マウント方法をzfs管理下に置くか、従来の/etc/fstabでするかが問われる。まあzfs管理下が楽なのかな?
***zfs [#o3c5ae2a]
記憶域プールに&color(blue,yellow){フォルダ};を作って&color(yellow,blue){ファイルシステム}; にアサインしてみる。
まずは現状確認。
#code(nonumber){{
[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を作成する。
#code(nonumber){{
[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 ~]#
}}
っというように、ご丁寧に&color(blue,yellow){フォルダ};を作ると&color(yellow,blue){ファイルシステム}; にアサインしてくれます。
でも、、あれ/zfspoolの配下のフォルダなのだから、別にマウントする意味なくね?現にファイルシステムからは
#code(nonumber){{
[root@bsd ~]# ls -lh /zfspool
total 2
drwxr-xr-x 2 root wheel 2B Dec 9 18:22 AERS/
[root@bsd ~]#
}}
のように/zfspool/AERSな&color(yellow,blue){ファイルシステム}; と作成されるんだからさぁ。っとも思う。
ごもっとも、でもここからがzfsの持ち味なようで、まずマウントポジションの変更
#code(nonumber){{
[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とか。
例えば
|BGCOLOR(YELLOW):記憶域プール|BGCOLOR(YELLOW):フォルダ名|BGCOLOR(YELLOW):マウントポイント|BGCOLOR(YELLOW):属性|
|zfspool|/|/zfspool||
|~|AERS|/Appl/AERS|quota=5g|
|~|archive|/mnt/archive|quota=10g compress=on|
な感じで。
#code(nonumber){{
[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 ~]#
}}
他、[[スナップショット>/FreeBSD/snapshot]]も撮影できる。
&color(yellow,blue){ファイルシステム}; に/zfspoolが存在するのが嫌なら
#code(nonumber){{
[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
zfspool/AERS zfs 5.0G 46k 5G 0% /Appl/AERS
[root@bsd ~]#
}}
で外せる。
&color(red){*};当初、zfs create -V サイズでフォルダのサイズが制限されるかと思ったのだが、どうやら
#code(nonumber){{
[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で行うようだった。