在汉澳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文件上去。