在汉澳sinox2014建立ZFS高可靠文件存储系统





汉澳sinox2014能够用比較小的固态硬盘安装,文件系统能够用zfs系统存放。

请准备一些硬盘,比方三块SCSI硬盘:da0,da1,da2



如今開始





添加例如以下一行内容到你的/etc/rc.conf里面

# echo 'zfs_enable="YES"' >> /etc/rc.conf

使用raidz1创建一个zpool,命名为tank

# zpool create tank raidz da0 da1 da2

此时,这个zpool会被自己主动挂接到 /tank,而且我们能够訪问到他。



设置磁盘限额





创建一个文件夹/tank/home,并设置他的限制不超过10G

# zfs create tank/home

# zfs set quota=10G tank/home

# zfs get quota tank/home

NAME       PROPERTY  VALUE      SOURCE

tank/home  quota     10G        local

设置预留空间





创建一个文件夹/tank/home/reserva,设置5G为预留/tank/home下的预留空间

# zfs create tank/home/reserva

# zfs set reservation=5G tank/home/reserva

# zfs get reservation tank/home/reserva

NAME               PROPERTY     VALUE              SOURCE

tank/home/reserva  reservation  5G                 local

设置压缩





设置一个文件夹使用压缩,能够简单的启用压缩,也能够特别指定以什么方式进行压缩,可选的方式有gzip,lzjb,gzip-[1-9]。

# zfs set compression=on tank/home

# zfs set compression=off tank/home/reserva

# zfs get -r compression tank/home

NAME               PROPERTY     VALUE              SOURCE

tank/home          compression  on                 local

tank/home/reserva  compression  off                local

snapshot、rollback和clone





ZFS提供snapshot功能,理论上你最多能够给你的文件系统做2^64次方个快照,并能通过这些快照对文件系统进行恢复。

在这里我们创建一些測试文件,创建快照之后再删除他们,然后再恢复这些文件。

# mkdir /tank/home/reserva/test /tank/home/reserva/tt

# dd if=/dev/zero of=/tank/home/reserva/aaaa bs=1024 count=100000

# zfs snapshot tank/home/reserva@20071119

# zfs list -t snapshot

NAME                         USED  AVAIL  REFER  MOUNTPOINT

tank/home/reserva@20071119      0      -  97.7M  -

# rm -fr /tank/home/reserva/*

# zfs rollback tank/home/reserva@20071119

从创建的snapshot中clone一份出来

# zfs clone tank/home/reserva@20071119 tank/clone

# zfs list

NAME                         USED  AVAIL  REFER  MOUNTPOINT

tank                        5.00G   129G  30.6K  /tank

tank/clone                      0   129G  97.7M  /tank/clone

tank/home                   5.00G  5.00G  28.0K  /tank/home

tank/home/reserva 97.7M 9.90G 97.7M /tank/home/reserva

tank/home/reserva@20071119      0      -  97.7M  -



ZFS快照让数据恢复很easy。

如今能够依据须要把/usr/,/var,/tmp等文件夹链接分配到zfs文件上去。

05-07 15:08