ZFS auf Linux einsetzen: Unterschied zwischen den Versionen

Aus rü5
Wechseln zu:Navigation, Suche
imported>Meap
imported>Meap
Keine Bearbeitungszusammenfassung
 
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 3: Zeile 3:
ZFS steht unter der freien Sun-eigenen CDDL Lizenz, die sich leider nicht für Distibutoren mit der GPL vereinbaren läßt.
ZFS steht unter der freien Sun-eigenen CDDL Lizenz, die sich leider nicht für Distibutoren mit der GPL vereinbaren läßt.
Diese Dilemma kann man als Linux-Nutzer umgehen, indem man die zfs-Pakete selber baut _(auch als DEB/RPM Pakete)_
Diese Dilemma kann man als Linux-Nutzer umgehen, indem man die zfs-Pakete selber baut _(auch als DEB/RPM Pakete)_
Es ist noch anzumerken, dass die ZFS-Versionen mit der Übernahme von SUN durch Oracle ggf. auseinander laufen werden _(sprich unter Linux eine kleinere ZFS-Version existiert, wie unter Solaris oder Nexenta/SmartOS/...)_
Es ist noch anzumerken, dass die ZFS-Versionen mit der Übernahme von SUN durch Oracle ggf. auseinander laufen werden ''(sprich unter Linux eine kleinere ZFS-Version existiert, wie unter Solaris oder Nexenta/SmartOS/...)''


== Links ==
== Links ==
Zeile 15: Zeile 15:


<pre>
<pre>
# falls man auf dem Rechner bereits ZFS im Einsatz hat, dies deaktivieren, die Module und DEB-Pakete entfernen
test -x /etc/init.d/zfs && /etc/init.d/zfs stop
lsmod | grep zfs # -> dann mittels rmmod die Module entfernen
rmmod zfs
aptitude purge zfs zfs-devel zfs-dracut zfs-modules zfs-modules-devel zfs-test spl spl-modules spl-modules-devel
# Vorbereitung des Systems
# Vorbereitung des Systems
aptitude install build-essential gawk alien fakeroot linux-headers-$(uname -r)
aptitude install build-essential dkms linux-headers-$(uname -r)
aptitude install zlib1g-dev uuid-dev libblkid-dev libselinux-dev parted lsscsi
aptitude install uuid-dev
# erleichterungen fuer neue Versionen
version=0.6.0-rc13
basedir=/root/zfs
debdir=$basedir/deb-${version}
urlbase="archive.zfsonlinux.org/downloads/zfsonlinux"
 
# herunterladen der aktuellen pakete
mkdir -pv $debdir
cd $basedir
wget -p http://$urlbase/spl/spl-${version}.tar.gz
wget -p http://$urlbase/zfs/zfs-${version}.tar.gz
ln -s $urlbase/{spl,zfs}/*${version}.tar.gz .


# auspacken
# aktuelles initiales Paket installieren
cd $basedir && tar -xzf spl-${version}.tar.gz && tar -xzf zfs-${version}.tar.gz
# @see http://zfsonlinux.org/debian.html
mkdir /root/zfs
cd /root/zfs
wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_5_all.deb
dpkg -i zfsonlinux_5_all.deb


# bauen & installieren der deb-Pakete
aptitude update
cd $basedir/spl-${version} && ./configure && make deb && mv *.deb $debdir && dpkg -i $debdir/spl*deb && cd $basedir
aptitude install debian-zfs
cd $basedir/zfs-${version} && ./configure && make deb && mv *.deb $debdir && dpkg -i $debdir/zfs*deb && cd $basedir
aptitude dist-upgrade
rm -rf $basedir/spl-${version} $basedir/zfs-${version}


# automatisches Mounten beim Booten
insserv /etc/init.d/zfs
</pre>
</pre>


Zeile 62: Zeile 41:
Nehmen wir nun mal an, wir haben folgende Inhalt in ''/dev/disk/by-id/''
Nehmen wir nun mal an, wir haben folgende Inhalt in ''/dev/disk/by-id/''
<pre>
<pre>
/dev/disk/by-id/ata-HDS725050KLA360_KRVN65ZAHMMZBF      -> ../../sda # Root Filesystem
ls -l /dev/disk/by-id/ata* | sed s,'^.*/ata-','ata-',1 | sort | grep -v '[0-9]$'
/dev/disk/by-id/ata-HL-DT-ST_DVDRAM_GSA-H10N_K1B66FL2131 -> ../../sr0  # CDRom
 
/dev/disk/by-id/ata-ST3000DM001-1CH166_Z1F0ZPTW          -> ../../sdd  # fuer ZFS
ata-Samsung_SSD_840_EVO_250GB_S1DBNSBF316431M -> ../../sda
/dev/disk/by-id/ata-ST3000DM001-1CH166_Z1F0ZTQC          -> ../../sdj  # fuer ZFS
ata-Samsung_SSD_840_EVO_250GB_S1DBNSBF316431M-part4 -> ../../sda4  # -> zfsCacheWrite on SSD
/dev/disk/by-id/ata-ST3000DM001-1CH166_Z1F1076E          -> ../../sdc  # fuer ZFS
ata-Samsung_SSD_840_EVO_250GB_S1DBNSBF316431M-part5 -> ../../sda5  # -> zfsCacheRead on SSD
/dev/disk/by-id/ata-ST3000DM001-9YN166_W1F0NA2S          -> ../../sdg  # fuer ZFS
ata-ST4000VN000-1H4168_Z300YR10 -> ../../sdc  # -> raidz-pool 1
/dev/disk/by-id/ata-ST3000DM001-9YN166_W1F0TZ5T          -> ../../sdh  # fuer ZFS
ata-ST4000VN000-1H4168_Z300Z1A3 -> ../../sdg  # -> raidz-pool 1
/dev/disk/by-id/ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ0966140 -> ../../sdi  # fuer ZFS
ata-ST4000VN000-1H4168_Z300Z3SK -> ../../sdi  # -> raidz-pool 1
/dev/disk/by-id/ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ0987954 -> ../../sdb  # fuer ZFS
ata-ST4000VN000-1H4168_Z302CFMQ -> ../../sdl  # -> raidz-pool 1
ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0654079 -> ../../sdd  # -> raidz-pool 2
ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0741381 -> ../../sdh  # -> raidz-pool 2
ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0753907 -> ../../sdf  # -> raidz-pool 2
ata-WDC_WD40EFRX-68WT0N0_WD-WCC4EKKVJDSP -> ../../sdm  # -> raidz-pool 2
ata-WDC_WD60EFRX-68MYMN1_WD-WX11D2405034 -> ../../sdj  # -> raidz-pool 3
ata-WDC_WD60EFRX-68MYMN1_WD-WX11D4428361 -> ../../sde  # -> raidz-pool 3
ata-WDC_WD60EFRX-68MYMN1_WD-WX11D4440120 -> ../../sdb  # -> raidz-pool 3
ata-WDC_WD60EFRX-68MYMN1_WD-WX11D74RH68A -> ../../sdk  # -> raidz-pool 3
 
</pre>
</pre>


Nun erstellen wir ein Raid-Z ''(entspricht einem Raid-5)'' mit Namen 'hd' wie folgt:
Nun erstellen wir drei Raid-Z ''(entspricht einem Raid-5)'' mit Namen 'zfs' wie folgt:
<pre>
<pre>
i=/dev/disk/by-id
zpool create zfs                                                \
    raidz                                                      \
        ata-ST4000VN000-1H4168_Z300YR10                        \
        ata-ST4000VN000-1H4168_Z300Z1A3                        \
        ata-ST4000VN000-1H4168_Z300Z3SK                        \
        ata-ST4000VN000-1H4168_Z302CFMQ                        \
    raidz                                                      \
        ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0654079                \
        ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0741381                \
        ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0753907                \
        ata-WDC_WD40EFRX-68WT0N0_WD-WCC4EKKVJDSP                \
    raidz                                                      \
        ata-WDC_WD60EFRX-68MYMN1_WD-WX11D2405034                \
        ata-WDC_WD60EFRX-68MYMN1_WD-WX11D4428361                \
        ata-WDC_WD60EFRX-68MYMN1_WD-WX11D4440120                \
        ata-WDC_WD60EFRX-68MYMN1_WD-WX11D74RH68A                \
    log                                                        \
        ata-Samsung_SSD_840_EVO_250GB_S1DBNSBF316431M-part4    \
    cache                                                      \
        ata-Samsung_SSD_840_EVO_250GB_S1DBNSBF316431M-part5
 


zpool create hd raidz                        \
$i/ata-ST3000DM001-1CH166_Z1F0ZPTW          \
$i/ata-ST3000DM001-1CH166_Z1F0ZTQC          \
$i/ata-ST3000DM001-1CH166_Z1F1076E          \
$i/ata-ST3000DM001-9YN166_W1F0NA2S          \
$i/ata-ST3000DM001-9YN166_W1F0TZ5T          \
$i/ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ0966140 \
$i/ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ0987954 \
</pre>
</pre>


Dies wird nun durch den ZFS-Treiber direkt gemountet nach ''/hd''. Den Zustand des ZFS-Pools können wir uns nun anzeigen lassen mittels:
Dies wird nun durch den ZFS-Treiber direkt gemountet nach ''/zfs''. Den Zustand des ZFS-Pools können wir uns nun anzeigen lassen mittels:
<pre>
<pre>
zpool status -v hd
zpool status -v zfs


   pool: hd
   pool: zfs
  state: ONLINE
  state: ONLINE
scan: not scanned
  scan: none requested
config:
config:


        NAME                                         STATE    READ WRITE CKSUM
NAME                                                   STATE    READ WRITE CKSUM
        hd-0                                         ONLINE      0    0    0
zfs                                                    ONLINE      0    0    0
            ata-ST3000DM001-1CH166_Z1F0ZTQC           ONLINE      0    0    0
  raidz1-0                                            ONLINE      0    0    0
            ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ0987954  ONLINE      0    0    0
    ata-ST4000VN000-1H4168_Z300YR10                    ONLINE      0    0    0
            ata-ST3000DM001-1CH166_Z1F1076E           ONLINE      0    0    0
    ata-ST4000VN000-1H4168_Z300Z1A3                    ONLINE      0    0    0
            ata-ST3000DM001-1CH166_Z1F0ZPTW           ONLINE      0    0    0
    ata-ST4000VN000-1H4168_Z300Z3SK                    ONLINE      0    0    0
            ata-ST3000DM001-9YN166_W1F0TZ5T           ONLINE      0    0    0
    ata-ST4000VN000-1H4168_Z302CFMQ                    ONLINE      0    0    0
            ata-ST3000DM001-9YN166_W1F0NA2S           ONLINE      0    0    0
  raidz1-1                                            ONLINE      0    0     0
            ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ0966140 ONLINE      0    0    0
    ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0654079          ONLINE      0    0    0
    ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0741381          ONLINE      0    0    0
    ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0753907           ONLINE      0    0    0
    ata-WDC_WD40EFRX-68WT0N0_WD-WCC4EKKVJDSP          ONLINE      0    0    0
  raidz1-2                                            ONLINE      0    0    0
    ata-WDC_WD60EFRX-68MYMN1_WD-WX11D2405034           ONLINE      0    0    0
    ata-WDC_WD60EFRX-68MYMN1_WD-WX11D4428361           ONLINE      0    0    0
    ata-WDC_WD60EFRX-68MYMN1_WD-WX11D4440120           ONLINE      0    0    0
    ata-WDC_WD60EFRX-68MYMN1_WD-WX11D74RH68A           ONLINE      0    0    0
logs
  ata-Samsung_SSD_840_EVO_250GB_S1DBNSBF316431M-part4  ONLINE      0    0    0
cache
  ata-Samsung_SSD_840_EVO_250GB_S1DBNSBF316431M-part5 ONLINE      0    0    0


errors: No known data errors
errors: No known data errors
Zeile 122: Zeile 134:
# temporaeres ZFS-Volume erstellen und dedub+compression ausstellen
# temporaeres ZFS-Volume erstellen und dedub+compression ausstellen
#
#
zfs create              hd/tmp
zfs create              zfs/tmp
zfs set compression=off hd/tmp
zfs set compression=off zfs/tmp
zfs set dedup=off      hd/tmp
zfs set dedup=off      zfs/tmp




# nun diese Datei so oft als möglich in den Pool schreiben
# nun diese Datei so oft als möglich in den Pool schreiben
#
#
while date >&2 +" neue Datei @ %Y-%m-%d %H:%M:%S" ; do cat /tmp/rand ; done > /hd/tmp/rand &
while date >&2 +" neue Datei @ %Y-%m-%d %H:%M:%S" ; do cat /tmp/rand ; done > /zfs/tmp/rand &




# die Beobachtung starten (abbrechen, wenn die Platte voll ist)
# die Beobachtung starten (abbrechen, wenn die Platte voll ist)
#
#
zpool iostat -v hd 10
zpool iostat -v zfs 10




# wenn die Platte (fast) voll ist die Kontrolle starten
# wenn die Platte (fast) voll ist die Kontrolle starten
#
#
zpool scrub hd
zpool scrub zfs




# das scrubbing im Auge behalten
# das scrubbing im Auge behalten
#
#
while sleep 60 ; do zpool status -v hd ; done
while sleep 60 ; do zpool status -v zfs ; done


# am Ende kann man das Volume wieder entfernen
# am Ende kann man das Volume wieder entfernen
#
#
zfs destroy hd/tmp
zfs destroy zfs/tmp
 
</pre>
 
== reale Verzeichnisse anlegen ==
<pre>
zfs create zfs/app
zfs create zfs/audio
zfs create zfs/home
zfs create zfs/lxc
zfs create zfs/srv
zfs create zfs/systemBackup
zfs create zfs/tv
zfs create zfs/video
 
# auf einigen Kompression einschalten
zfs set compress=lz4 zfs/app
zfs set compress=lz4 zfs/home
zfs set compress=lz4 zfs/lxc
zfs set compress=lz4 zfs/srv
zfs set compress=lz4 zfs/systemBackup
 
# auf einigen Deduplizierung anschalten (svn-Basis-Verzeichnisse / LXC-Zonen/Backup-Bereiche)
zfs set dedup=on zfs/app
zfs set dedup=on zfs/audio
zfs set dedup=on zfs/home
zfs set dedup=on zfs/lxc
zfs set dedup=on zfs/srv
zfs set dedup=on zfs/systemBackup
zfs set dedup=on zfs/video
 
# Abschalten, dass alle Daten durch die SSD geschoben werden
zfs set secondarycache=metadata zfs/audio
zfs set secondarycache=metadata zfs/systemBackup
zfs set secondarycache=metadata zfs/video
</pre>
 
== ZFS-Speicher begrenzen ==
''/etc/modprobe.d/zfs.conf''
<pre>
# 8GB RAM -> 128MB min + 1GB max
#options zfs zfs_arc_min=134217728 zfs_arc_max=1073741824
# 16GB RM -> 1GB min + 4GB max
#options zfs zfs_arc_min=1073741824  zfs_arc_max=4294967296
# 32GB RM -> 1GB min + 8GB max
options zfs zfs_arc_min=1073741824  zfs_arc_max=8589934592
# 400GB RAM -> 24GB min + 32GB max
#options zfs zfs_arc_min=25769803776 zfs_arc_max=34359738368


</pre>
</pre>

Aktuelle Version vom 21. April 2015, 06:53 Uhr


ZFS steht unter der freien Sun-eigenen CDDL Lizenz, die sich leider nicht für Distibutoren mit der GPL vereinbaren läßt. Diese Dilemma kann man als Linux-Nutzer umgehen, indem man die zfs-Pakete selber baut _(auch als DEB/RPM Pakete)_ Es ist noch anzumerken, dass die ZFS-Versionen mit der Übernahme von SUN durch Oracle ggf. auseinander laufen werden (sprich unter Linux eine kleinere ZFS-Version existiert, wie unter Solaris oder Nexenta/SmartOS/...)

Links

Homepage......................: http://zfsonlinux.org/
Dokumentation.................: http://zfsonlinux.org/docs.html 
Wikipedia.....................: http://de.wikipedia.org/wiki/ZFS_(Dateisystem)

ZFS auf Linux bauen

(hier am Beispiel von Debian - es wird aber auch für RPM-Pakete beschrieben)

# Vorbereitung des Systems
aptitude install build-essential dkms linux-headers-$(uname -r)

# aktuelles initiales Paket installieren
# @see http://zfsonlinux.org/debian.html
mkdir /root/zfs
cd /root/zfs
wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_5_all.deb
dpkg -i zfsonlinux_5_all.deb

aptitude update
aptitude install debian-zfs
aptitude dist-upgrade

ZPool erstellen

Dies bedarf des Studiums der Manpage von [1] (wobei die Linux-Version ggf. einen älteren Version hat) Es stellt sich hierbei die Frage, welche Device-Bezeichnung man verwenden sollte. Meiner Meinung nach ist es nicht so geschickt, /dev/sda, /dev/sdb zu verwenden, da diese ggf. auch das Root-FS beinhalten könnten und ggf. Festplatten andere Bezeichnungen bekommen können (z.B. beim Umstecken der SATA-Ports)

Ich favorisiere die Namen unter /dev/disk/by-id/ata..., da diese die Festplatte eindeutig kennzeichnen. Der Nachteil ist sicherlich, die etwas lange Schreibform.

Beispiel: Nehmen wir nun mal an, wir haben folgende Inhalt in /dev/disk/by-id/

ls -l /dev/disk/by-id/ata* | sed s,'^.*/ata-','ata-',1 | sort | grep -v '[0-9]$'

ata-Samsung_SSD_840_EVO_250GB_S1DBNSBF316431M -> ../../sda
ata-Samsung_SSD_840_EVO_250GB_S1DBNSBF316431M-part4 -> ../../sda4   # -> zfsCacheWrite on SSD
ata-Samsung_SSD_840_EVO_250GB_S1DBNSBF316431M-part5 -> ../../sda5   # -> zfsCacheRead on SSD
ata-ST4000VN000-1H4168_Z300YR10 -> ../../sdc   # -> raidz-pool 1
ata-ST4000VN000-1H4168_Z300Z1A3 -> ../../sdg   # -> raidz-pool 1
ata-ST4000VN000-1H4168_Z300Z3SK -> ../../sdi   # -> raidz-pool 1
ata-ST4000VN000-1H4168_Z302CFMQ -> ../../sdl   # -> raidz-pool 1
ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0654079 -> ../../sdd   # -> raidz-pool 2
ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0741381 -> ../../sdh   # -> raidz-pool 2
ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0753907 -> ../../sdf   # -> raidz-pool 2
ata-WDC_WD40EFRX-68WT0N0_WD-WCC4EKKVJDSP -> ../../sdm   # -> raidz-pool 2
ata-WDC_WD60EFRX-68MYMN1_WD-WX11D2405034 -> ../../sdj   # -> raidz-pool 3
ata-WDC_WD60EFRX-68MYMN1_WD-WX11D4428361 -> ../../sde   # -> raidz-pool 3
ata-WDC_WD60EFRX-68MYMN1_WD-WX11D4440120 -> ../../sdb   # -> raidz-pool 3
ata-WDC_WD60EFRX-68MYMN1_WD-WX11D74RH68A -> ../../sdk   # -> raidz-pool 3

Nun erstellen wir drei Raid-Z (entspricht einem Raid-5) mit Namen 'zfs' wie folgt:

zpool create zfs                                                \
    raidz                                                       \
        ata-ST4000VN000-1H4168_Z300YR10                         \
        ata-ST4000VN000-1H4168_Z300Z1A3                         \
        ata-ST4000VN000-1H4168_Z300Z3SK                         \
        ata-ST4000VN000-1H4168_Z302CFMQ                         \
    raidz                                                       \
        ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0654079                \
        ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0741381                \
        ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0753907                \
        ata-WDC_WD40EFRX-68WT0N0_WD-WCC4EKKVJDSP                \
    raidz                                                       \
        ata-WDC_WD60EFRX-68MYMN1_WD-WX11D2405034                \
        ata-WDC_WD60EFRX-68MYMN1_WD-WX11D4428361                \
        ata-WDC_WD60EFRX-68MYMN1_WD-WX11D4440120                \
        ata-WDC_WD60EFRX-68MYMN1_WD-WX11D74RH68A                \
    log                                                         \
        ata-Samsung_SSD_840_EVO_250GB_S1DBNSBF316431M-part4     \
    cache                                                       \
        ata-Samsung_SSD_840_EVO_250GB_S1DBNSBF316431M-part5


Dies wird nun durch den ZFS-Treiber direkt gemountet nach /zfs. Den Zustand des ZFS-Pools können wir uns nun anzeigen lassen mittels:

zpool status -v zfs

  pool: zfs
 state: ONLINE
  scan: none requested
config:

	NAME                                                   STATE     READ WRITE CKSUM
	zfs                                                    ONLINE       0     0     0
	  raidz1-0                                             ONLINE       0     0     0
	    ata-ST4000VN000-1H4168_Z300YR10                    ONLINE       0     0     0
	    ata-ST4000VN000-1H4168_Z300Z1A3                    ONLINE       0     0     0
	    ata-ST4000VN000-1H4168_Z300Z3SK                    ONLINE       0     0     0
	    ata-ST4000VN000-1H4168_Z302CFMQ                    ONLINE       0     0     0
	  raidz1-1                                             ONLINE       0     0     0
	    ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0654079           ONLINE       0     0     0
	    ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0741381           ONLINE       0     0     0
	    ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0753907           ONLINE       0     0     0
	    ata-WDC_WD40EFRX-68WT0N0_WD-WCC4EKKVJDSP           ONLINE       0     0     0
	  raidz1-2                                             ONLINE       0     0     0
	    ata-WDC_WD60EFRX-68MYMN1_WD-WX11D2405034           ONLINE       0     0     0
	    ata-WDC_WD60EFRX-68MYMN1_WD-WX11D4428361           ONLINE       0     0     0
	    ata-WDC_WD60EFRX-68MYMN1_WD-WX11D4440120           ONLINE       0     0     0
	    ata-WDC_WD60EFRX-68MYMN1_WD-WX11D74RH68A           ONLINE       0     0     0
	logs
	  ata-Samsung_SSD_840_EVO_250GB_S1DBNSBF316431M-part4  ONLINE       0     0     0
	cache
	  ata-Samsung_SSD_840_EVO_250GB_S1DBNSBF316431M-part5  ONLINE       0     0     0

errors: No known data errors


Pool testen

Um zu sehen, ob die Festplatten alle in Ordnung sind, kann man zu beginn gut den Pool voll schreiben und dann das 'ZFS-Scrubbing' anwerfen (das eignet sich bei raidz oder mirror)

# erstmal eine Datei mit zufälligen Werten von 1G erstellen
#
openssl rand 1073741824 > /tmp/rand


# temporaeres ZFS-Volume erstellen und dedub+compression ausstellen
#
zfs create              zfs/tmp
zfs set compression=off zfs/tmp
zfs set dedup=off       zfs/tmp


# nun diese Datei so oft als möglich in den Pool schreiben
#
while date >&2 +" neue Datei @ %Y-%m-%d %H:%M:%S" ; do cat /tmp/rand ; done > /zfs/tmp/rand &


# die Beobachtung starten (abbrechen, wenn die Platte voll ist)
#
zpool iostat -v zfs 10


# wenn die Platte (fast) voll ist die Kontrolle starten
#
zpool scrub zfs


# das scrubbing im Auge behalten
#
while sleep 60 ; do zpool status -v zfs ; done

# am Ende kann man das Volume wieder entfernen
#
zfs destroy zfs/tmp

reale Verzeichnisse anlegen

zfs create zfs/app
zfs create zfs/audio
zfs create zfs/home
zfs create zfs/lxc
zfs create zfs/srv
zfs create zfs/systemBackup
zfs create zfs/tv
zfs create zfs/video

# auf einigen Kompression einschalten
zfs set compress=lz4 zfs/app
zfs set compress=lz4 zfs/home
zfs set compress=lz4 zfs/lxc
zfs set compress=lz4 zfs/srv
zfs set compress=lz4 zfs/systemBackup

# auf einigen Deduplizierung anschalten (svn-Basis-Verzeichnisse / LXC-Zonen/Backup-Bereiche)
zfs set dedup=on zfs/app
zfs set dedup=on zfs/audio
zfs set dedup=on zfs/home
zfs set dedup=on zfs/lxc
zfs set dedup=on zfs/srv
zfs set dedup=on zfs/systemBackup
zfs set dedup=on zfs/video

# Abschalten, dass alle Daten durch die SSD geschoben werden
zfs set secondarycache=metadata zfs/audio
zfs set secondarycache=metadata zfs/systemBackup
zfs set secondarycache=metadata zfs/video

ZFS-Speicher begrenzen

/etc/modprobe.d/zfs.conf

# 8GB RAM -> 128MB min + 1GB max
#options zfs zfs_arc_min=134217728 zfs_arc_max=1073741824
# 16GB RM -> 1GB min + 4GB max
#options zfs zfs_arc_min=1073741824  zfs_arc_max=4294967296
# 32GB RM -> 1GB min + 8GB max
options zfs zfs_arc_min=1073741824  zfs_arc_max=8589934592
# 400GB RAM -> 24GB min + 32GB max
#options zfs zfs_arc_min=25769803776 zfs_arc_max=34359738368