# ZFS
###### tags: `NTUToolmenLab`
## Intro
[raid](https://zh.wikipedia.org/zh-tw/RAID)
[raid z](https://en.wikipedia.org/wiki/ZFS#ZFS'_approach:_RAID-Z_and_mirroring)
中文介紹 https://www.freebsd.org/doc/zh_TW/books/handbook/zfs.html
## setup
ubuntu
https://tutorials.ubuntu.com/tutorial/setup-zfs-storage-pool#0
```
sudo apt install zfsutils-linux
```
debian
https://unix.stackexchange.com/questions/383566/install-zfs-on-debian-9-stretch
```
sudo sed -i 's/main/main contrib non-free/g' /etc/apt/sources.list
sudo apt update
sudo apt -y install zfs-dkms
```
## create
```
fdisk -l
zpool create example /dev/sde
zpool add example /dev/sdf
zpool destroy example
```
ZFS can also use part of disk, you can use fdisk cut it first.
```
zpool add example /dev/sda3
```
## set volume
```
zfs create backup/tmp
zfs set quota=2G backup/tmp
zfs create -o quota=2G backup/tmp1
zfs get quota
```
## create raidz1
```
zpool create example raidz1 /dev/sdc /dev/sdd
```
Doesn't support adding disk to raids pool yet
https://www.reddit.com/r/freenas/comments/a1dt4s/adding_disk_to_raidz_pool/
Note: raid level meaning
http://www.zfsbuild.com/2010/05/26/zfs-raid-levels/
## mount
```
zfs set mountpoint=/backup example
zfs mount example
zfs umount /example
```
## snapshot
```
zfs snapshot example@123
zfs list -t snapshot
zfs rollback examle@123
```
## some command
```
zpool list
zfs list
zpool status
zfs status
df -h
```
## Build system on zfs
https://github.com/zfsonlinux/zfs/wiki/Ubuntu-18.04-Root-on-ZFS
https://github.com/zfsonlinux/pkg-zfs/wiki/HOWTO-install-Ubuntu-18.04-to-a-Whole-Disk-Native-ZFS-Root-Filesystem-using-Ubiquity-GUI-installer
## Zfs use lot of memory
```
options zfs zfs_arc_max=4294967296 > /etc/modprobe.d/zfs.conf
sudo update-initramfs -u
sudo reboot
````