ZFS

From HackerNet
Jump to: navigation, search

ZFS är filsystem kombinerat med volymhanterare. Det körs främst på BSD men finns även till Linux.

Installation

Ubuntu

sudo apt-add-repository -y ppa:zfs-native/stable
sudo apt-get update && sudo apt-get -y install ubuntu-zfs

Fedora

sudo dnf install --nogpgcheck http://archive.zfsonlinux.org/fedora/zfs-release$(rpm -E %dist).noarch.rpm
sudo dnf install kernel-devel zfs 
sudo /sbin/modprobe zfs

Debian

su -
apt-get install lsb-release
wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_6_all.deb
dpkg -i zfsonlinux_6_all.deb
apt-get update && apt-get install debian-zfs

Konfiguration

Pool

zpool create POOL raidz1 \
        /dev/disk/by-id/ata-WDC_WD.. \
        /dev/disk/by-id/ata-WDC_WD.. \
        /dev/disk/by-id/ata-WDC_WD.. \
        -o ashift=12 -o failmode=continue

Lägg till -f om det inte finns någon EFI label.

 zfs set atime=off POOL

Show

zpool list
zpool status
zfs get all
zpool iostat -v POOL

Mount point

zfs set mountpoint=/path/pool POOL
chown -R user:user /path/pool

Dataset

zfs create POOL/test

Compression

zfs set compression=on POOL/test

Dedup

zfs set dedup=on POOL/test

SSD

Read och write

zpool add -f POOL cache sdf
zpool add -f POOL log sdg

Scrub

zpool scrub

IO intensive

Snapshots

Snapshot kan tas både på pools och datasets, varje snapshot kräver ett unikt namn.

Dataset snapshot

zfs snapshot POOL/test@NAME

Pool snapshot

zfs snapshot POOL@NAME

Lista snapshots

zfs list -t snapshot

Rollback till snapshot

zfs rollback POOL/test@NAME

Ta bort snapshot

zfs destroy POOL/test@NAME

Automatiska snapshots
Det finns ett antal olika paket/skript för att sköta automatisering av snapshots för ZFS. Här beskrivs användning av det cron-baserade zfs-auto-snapshot som skapats av ZFS on Linux-utvecklarna. Nedan följer ett antal kommandon för justering av frekvens och historik:

zfs set com.sun:auto-snapshot=true POOL/test Enable/disable av automatiska snapshots på ett dataset.

zfs set com.sun:auto-snapshot:monthly=false POOL/test Enable/disable av månatliga snapshots, som mest bevaras tolv snapshots.

zfs set com.sun:auto-snapshot:weekly=false POOL/test Enable/disable av veckovisa snapshots, som mest bevaras åtta snapshots.

zfs set com.sun:auto-snapshot:daily=true POOL/test Enable/disable av dagliga snapshots, som mest bevaras 31 snapshots.

zfs set com.sun:auto-snapshot:hourly=false POOL/test Enable/disable av snapshots varje timme, som mest bevaras 24 snapshots.

zfs set com.sun:auto-snapshot:frequent=false POOL/test Enable/disable av snapshots varje kvart, som mest bevaras fyra snapshots.