A SUN forradalmi módon akarta az adattárolást, volumekezelést, filesystem gondokat megoldani, amikor megalkotta a ZFS (Zettabyte File System)-t. Azóta eléggé meghatározóvá vált maga a ZFS és mindaz a szemlélet amit magával hozott. Erről szeretnék egy összefoglalót nyújtani.

Kezdjük az elején azon dolgok összegyűjtésével ami megnehezíti a tárhelykezelést:

    – Nevek, partíciók, volume-k, rendelekezésre állás, növelés, csökkentés, konfigurációs file-k tömege
    – Limitek kezelése filesystemek, volume-k, file méretek, file számosságok, snapshotok esetén
    – Külön 3rd party toolok a blokk és file alapú megosztások kezeléséhez
    – Portolási problémák különböző platformok esetén (x86, SPARC, PowerPC, ARM, …)
    – Lineáris létrehozási idő, fix blokk méretek, hosszadalmas RAID újraépítési idő, növekvő backup idők

Ezen dolgokon akar változtatni a SUN a zfs-el. Kezdjük az átlag felhasználó számára talán leglényegtelenebb dologgal, ami a Zettabyte névből fakad ami a tíz a huszonegyediket jelent. Ez a nagy szám már sok mindenre utal, többek között az új nagyságrendi korlátokkal is. A zfs ugyanis az átlag 64 bites rendszerekkel ellentétben 128 bites. Nézzük ez milyen új hatalmas korlátokat jelenthet a tárolásban:

  • 2^64 — Number of snapshots of any file system
  • 2^48 — Number of entries in any individual directory
  • 6 EiB (2^64 bytes) — Maximum size of a file system
  • 16 EiB — Maximum size of a single file
  • 6 EiB — Maximum size of any attribute
  • 256 ZiB (2^78 bytes) — Maximum size of any zpool
  • 2^56 — Number of attributes of a file (actually constrained to 248 for the number of files in a ZFS file system)
  • 2^64 — Number of devices in any zpool
  • 2^64 — Number of zpools in a system
  • 2^64 — Number of file systems in a zpool

ZFS Pool-ok

A ZFS szakítva a tradicionális volume managerekkel, amikre utána külön szeparált filesystem-et kellett rakni, egybeépítette a filesystem-et és a volumemanager-t. Viszont ezt nem úgy kell elképzelni, hogy egy termék, aminek van volume manager része, és filesystem része mint például a Veritas Storage Foundation-nek. A ZFS egy filesystem, ami egyben volume kezelésre is használható.

Hogy ezt jobban meg lehessen érteni bele kell magunkat ásni a szerkezetébe. A ZFS úgynevezett pool filozófiát követ. Egy közös zsákot, amibe egyik részről dobálunk erőforrásokat (diskeket), ezzel egy nagy közös név alatt létező adattömeget kapva, majd ebből az adat tömegből (pool-ból) oszthatunk ki tárolásra szánt filerendszereket.

Ez a pool dolog megfelel az SVM alatt egy metadevice-nak. A pool-t tehát maguk a fizikai diskek tesztesítik meg. A pool-nak lennie kell egy nevének, ami egy metadevice neveként funkcionálhat, amire hivatkozhatunk. A poolban pedig még azt kell tudnunk definiálni, hogy a fizikai diskek között milyen fajta RAID szintnek megfelelő kapcsolatot, tömbösítést kívánunk alkalmazni. Redundancia nélkül (hasonló mint a RAID 0), tükrözve (RAID 1) két vagy több eszközt, vagy RAID-Z csoportba három vagy több eszközt (egy elem kiesését tolerálja), vagy RAID-Z2 csoportba négy vagy több eszközt (két elem kiesését tolerálja). 2009 Júliusa óta a három paritásos RAID-Z3 technológia is elérhető az OpenSolaris-ban. Ezen túl poolokhoz opcionálisan adhatunk külön táró eszközöket hot spareként, illetve gyorsítótárként. Mint majd a lentebbi példákon látszik majd, nagyon könnyen megtehetjük ezt, egyszerű parancsok segítségével, a poolok bővítése, rendezése pedig szintén dinamikus és könnyű.

Ahogy SVM esetében, úgy ZFS esetében is vannak meta adatbázisok. Mi több a ZFS esetében ez sokkal fontosabb szereppel bír, mert az egész ZFS egy adminisztráció alapú meta adatbázis gyakorlatilag. Az úgynevezett Copy-on-Write alapú paradigmára épül, amit leegyszerűsítve úgy lehetne lehetne definiálni, mely fordítása talán „írás esetén másolás” lehetne – egy széles körben alkalmazott módszer a I/O műveleteinek optimalizálására. A copy-on-write jó példája az ún. lusta kiértékelés/végrehajtás (lazy evaluation) elvnek, ami azt mondja, hogy a rendszerben a költséges, vagyis sok erőforrást igénylő műveleteket el kell halasztani mindaddig, amíg azok végrehajtása már ténylegesen kikerülhetetlen nem lesz. Tehát a magát a műveletet lekönyveli a meta adabázisába, majd amikor jut idő, energia akkor ténylegesen kiírja lemezre is.

Ez az adminisztráció gyakorlatilag teljes optimalizálást tesz lehetővé a poolunk előlünk elrejtve megfelelőképp írja ki az adatokat a lemezekre, végez menetközbe optimalizálást, átszervezést, anélkül, hogy mi tudnánk, illetve, hogy foglalkozunk kellene vele.

Ebből a teljes adminisztrációból következik, hogy elég egyszerűen lehet klónozni, illetva snapshotot készíteni, hisz csak a megfelelő meta adatokat kell megduplikálni, és az utána következő módosításokat kezelni, amit a copy-on-write megoldás nagyben segít.

Limitációk és attribútomok

Az SVM-es hasonlatnál maradva, amikor létrejön egy metadevice az ugyan úgy használható, mint egy zpool. Persze a zpool a /ZPOOL_NEVE alatt egyből elérhető lesz, míg a metadevice esetében külön filesystem-et kell tennünk rá, és mountolni ahová szeretnénk. Szintén hasonló kép mint a softpartíciók esetében, a zpool esetében is lehetőségünk van filesystem-eket létrehozni a zpoolból. Amikor egy filesystemet csinálunk, az a /ZPOOL/FILESYSTEM_NEVE alatt egyből elérhető is lesz.

Alapvetően ez csak egy újabb meta adminisztrációs elem lesz. A létrejövő filesystem teljes semmilyen beállítással, vagy limitációval nem rendelkezik, így a pool összes erőforrását uralni tudja. Tehát az új filesystem-et testre kell szabnunk minden féle attributum, beállítás, limitáció megadásával. Talán a legfontosabb néhány:

mountpoint path (mivel alapvetően a leírt struktúrában érhető el az új filesystem a mountpoint beállítás segítségével adhatjuk meg, amennyiben máshová szeretnénk mountolni)
reservation (az adatmennyiség amit le akarunk foglalni ennek a filesystemnek, függetlenül hogy ki van e használva hogy nem)
– quota (ez csak egy felső limit amit nem léphet túl a filesystem, cserébe amennyiben más filesystemek felélik a zpool szabad kapacitását, hiába a filesystemünk nem érte el a quota határát előfordulhat, hogy nem tudunk majd már bele írni)
compression (lehetőségünk van adattömörítés használatára, azaz x adatot ténylegesen csak y tárhelyre írunk ki, értelemszerűen x nagyobb y . Több féle tömörítő algoritmus is létezik)
sharenfs/sharesmb (a meglővő filesystem-et egy kapcsoló segítségével meg is oszthatjuk hálózatunkon)

Deduplikáció

Megemlíteném ezt a nagyon friss újdonságot, ami jelenleg még csak a legújabb OpenSolarisokban érhető el. Ez a deduplikáció, és ahogy a nevéből is fakad az egyező adatok többszörös tárolását kivédendő szolgáltatás lenne. Kicsit talán hasonlíthatnám a tömörítéshez, de természetesen ez teljesen más.

Mikor hol használhatom a ZFS-t?

A Solaris 10 update 6 óta szerves része a ZFS a Solaris-nak, sőt még root filerendszernek is használható. Portolták már FreeBSD-re is. Sajnos a licenselése miatt a Linux kernel része nem lehet, csak userspace-ben futtatható FUSE rendszerekkel. A ZFS ennek ellenére, nyílt és szabadon fejleszthető bárki számára.

Egy hosszú példa a ZFS használatára

Parancs kimenetMagyarázat
$ man zpool
$ man zfs
Dokumentáció
$ su
Password:
# cd /
# mkfile 100m disk1 disk2 disk3 disk5
# mkfile 50m disk4
# ls -l disk*
-rw——T 1 root root 104857600 Sep 11 12:15 disk1
-rw——T 1 root root 104857600 Sep 11 12:15 disk2
-rw——T 1 root root 104857600 Sep 11 12:15 disk3
-rw——T 1 root root 52428800 Sep 11 12:15 disk4
-rw——T 1 root root 104857600 Sep 11 12:15 disk5
Csinálunk pár file-t amit virtuális diskként fogunk használni, természetesen ezek lehetnek slice-k is.
# zpool create myzfs /disk1 /disk2
# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
myzfs 191M 94K 191M 0% ONLINE –
Létrehozunk egy storage poolt, és ellenőrizzük a státuszát
# zpool status -v
pool: myzfs
state: ONLINE
scrub: none requested
config:

NAME STATE READ WRITE CKSUM
myzfs ONLINE 0 0 0
/disk1 ONLINE 0 0 0
/disk2 ONLINE 0 0 0

errors: No known data errors

Részletesebb információk a poolról.
# zpool destroy myzfs
# zpool list
no pools available
Egy storage pool megsemmisítése.
# zpool create myzfs mirror /disk1 /disk4
invalid vdev specification
use ‘-f’ to override the following errors:
mirror contains devices of different sizes
Különböző méretü diskek esetén a -f kapcsolóval kell eröltetnünk a tükör létrehozását. Ilyenkor persze a kisebb disk méretét használja csupán a rendszer.
# zpool create myzfs mirror /disk1 /disk2 /disk3
# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
myzfs 95.5M 112K 95.4M 0% ONLINE –
# zpool status -v
pool: myzfs
state: ONLINE
scrub: none requested
config:

NAME STATE READ WRITE CKSUM
myzfs ONLINE 0 0 0
mirror ONLINE 0 0 0
/disk1 ONLINE 0 0 0
/disk2 ONLINE 0 0 0
/disk3 ONLINE 0 0 0

errors: No known data errors

Egy három utas mirror storage pool létrehozása.
# zpool detach myzfs /disk3
# zpool status -v
pool: myzfs
state: ONLINE
scrub: none requested
config:

NAME STATE READ WRITE CKSUM
myzfs ONLINE 0 0 0
mirror ONLINE 0 0 0
/disk1 ONLINE 0 0 0
/disk2 ONLINE 0 0 0

errors: No known data errors

Egy device lecsatolása a poolból.
# zpool attach myzfs /disk1 /disk3
# zpool status -v
pool: myzfs
state: ONLINE
scrub: resilver completed with 0 errors on Tue Sep 11 13:31:49 2007
config:

NAME STATE READ WRITE CKSUM
myzfs ONLINE 0 0 0
mirror ONLINE 0 0 0
/disk1 ONLINE 0 0 0
/disk2 ONLINE 0 0 0
/disk3 ONLINE 0 0 0

errors: No known data errors

Egy új devicet adunk a poolhoz, ezzel egy három utas tükröt hozva létre.
# zpool remove myzfs /disk3
cannot remove /disk3: only inactive hot spares can be removed
# zpool detach myzfs /disk3
Alap esetben ezzel lehet egy device-t eltávolítani a poolból, de mirror esetén a zpool detach használandó.
# zpool add myzfs spare /disk3
# zpool status -v
pool: myzfs
state: ONLINE
scrub: none requested
config:

NAME STATE READ WRITE CKSUM
myzfs ONLINE 0 0 0
mirror ONLINE 0 0 0
/disk1 ONLINE 0 0 0
/disk2 ONLINE 0 0 0
spares
/disk3 AVAIL

errors: No known data errors

Hot spare disk hozzáadása a poolhoz.
# zpool remove myzfs /disk3
# zpool status -v
pool: myzfs
state: ONLINE
scrub: none requested
config:

NAME STATE READ WRITE CKSUM
myzfs ONLINE 0 0 0
mirror ONLINE 0 0 0
/disk1 ONLINE 0 0 0
/disk2 ONLINE 0 0 0

errors: No known data errors

Hot spare disk eltávolítása a poolból.

# zpool offline myzfs /disk1
# zpool status -v
pool: myzfs
state: DEGRADED
status: One or more devices has been taken offline by the administrator.
Sufficient replicas exist for the pool to continue functioning
in a degraded state.
action: Online the device using ‘zpool online’ or replace the device
with ‘zpool replace’.
scrub: resilver completed with 0 errors on Tue Sep 11 13:39:25 2007
config:

NAME STATE READ WRITE CKSUM
myzfs DEGRADED 0 0 0
mirror DEGRADED 0 0 0
/disk1 OFFLINE 0 0 0
/disk2 ONLINE 0 0 0

errors: No known data errors

Egy kiválasztott disk állapotát offlinera állíthatjuk. Ebben az esetben nem történik rá írás illetve olvasás. A -t kapcsolót használva a következő rebootnál újra online állapotba jön fel.
# zpool online myzfs /disk1
# zpool status -v
pool: myzfs
state: ONLINE
scrub: resilver completed with 0 errors on Tue Sep 11 13:47:14 2007
config:

NAME STATE READ WRITE CKSUM
myzfs ONLINE 0 0 0
mirror ONLINE 0 0 0
/disk1 ONLINE 0 0 0
/disk2 ONLINE 0 0 0

errors: No known data errors

Egy kiválasztott disket online-ba tenni.
# zpool replace myzfs /disk1 /disk3
# zpool status -v
pool: myzfs
state: ONLINE
scrub: resilver completed with 0 errors on Tue Sep 11 13:25:48 2007
config:

NAME STATE READ WRITE CKSUM
myzfs ONLINE 0 0 0
mirror ONLINE 0 0 0
/disk3 ONLINE 0 0 0
/disk2 ONLINE 0 0 0

errors: No known data errors

Egy disk kicserélése a poolban egy másik diskre.
# zpool scrub myzfsScrub futtatása esetén a metaadabázis ellenörzi a checksumokat és ha szükséges javítja az eltéréseket.
FIGYELEM:A scrub nagyon I/O igényes művelet.
# zpool export myzfs
# zpool list
no pools available
Exportálni egy poolt az egyik rendszerből, hogy azt egy másik rendszer tudja importálni.
# zpool import -d / myzfs
# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
myzfs 95.5M 114K 95.4M 0% ONLINE –
Import a previously exported storage pool. If -d is not specified, this command searches /dev/dsk. As we’re using files in this example, we need to specify the directory of the files used by the storage pool.
# zpool upgrade
This system is currently running ZFS pool version 8.

All pools are formatted using this version.
# zpool upgrade -v
This system is currently running ZFS pool version 8.

The following versions are supported:

VER DESCRIPTION
— ——————————————————–
1 Initial ZFS version
2 Ditto blocks (replicated metadata)
3 Hot spares and double parity RAID-Z
4 zpool history
5 Compression using the gzip algorithm
6 pool properties
7 Separate intent log devices
8 Delegated administration
For more information on a particular version, including supported
releases, see:

http://www.opensolaris.org/os/community/zfs/version/N

Where ‘N’ is the version number.

A pool verziójának megjelenítése és szükség esetén upgrade-lése.
# zpool iostat 5
capacity operations bandwidth
pool used avail read write read write
———- —– —– —– —– —– —–
myzfs 112K 95.4M 0 4 26 11.4K
myzfs 112K 95.4M 0 0 0 0
myzfs 112K 95.4M 0 0 0 0
I/O statisztika kérése a poolról.
# zfs create myzfs/colin
# df -h
Filesystem kbytes used avail capacity Mounted on

myzfs/colin 64M 18K 63M 1% /myzfs/colin
Filerendszer készítése. A df -h parancs jól mutatja, hogy nincs még limitáció beállítva, és automatikusan mountolódott.
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzfs 139K 63.4M 19K /myzfs
myzfs/colin 18K 63.4M 18K /myzfs/colin
ZFS lista lekérése.

# zpool add myzfs /disk1
invalid vdev specification
use ‘-f’ to override the following errors:
mismatched replication level: pool uses mirror and new vdev is file

Egy szimpla device hozzáadása nem lehetséges a tükörhöz.
# zpool add myzfs mirror /disk1 /disk5
# zpool status -v
pool: myzfs
state: ONLINE
scrub: none requested
config:

NAME STATE READ WRITE CKSUM
myzfs ONLINE 0 0 0
mirror ONLINE 0 0 0
/disk3 ONLINE 0 0 0
/disk2 ONLINE 0 0 0
mirror ONLINE 0 0 0
/disk1 ONLINE 0 0 0
/disk5 ONLINE 0 0 0

errors: No known data errors

Egy Mirror párral már bővíthető a tükör pool.
# zfs create myzfs/colin2
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzfs 172K 159M 21K /myzfs
myzfs/colin 18K 159M 18K /myzfs/colin
myzfs/colin2 18K 159M 18K /myzfs/colin2
Egy második filesystem-et hozunk létre. Jól látszik, hogy mindegyik mérete azonos, hisz még nem állítottunk limitációt. Természetesen a filesystemek mérete a pooléval nő ilyenkor.
# zfs set reservation=20m myzfs/colin
# zfs list -o reservation
RESERV
none
20M
none
Egy speciális méretű tárterületet fentartani ennek a filesystemnek, ha használja ha nem.
# zfs set quota=20m myzfs/colin2
# zfs list -o quota myzfs/colin myzfs/colin2
QUOTA
none
20M

Quota beállítása és megtekintése
# zfs set compression=on myzfs/colin2
# zfs list -o compression
COMPRESS
off
off
on
Tömörítés engedélyezése, és ellenőrzése.
# zfs set sharenfs=on myzfs/colin2
# zfs get sharenfs myzfs/colin2
NAME PROPERTY VALUE SOURCE
myzfs/colin2 sharenfs on local
Filesystem megosztása NFS-el. Nem szükséges a /etc/dfs/dfstab filet szerkeszteni.
# zfs set sharesmb=on myzfs/colin2
# zfs get sharesmb myzfs/colin2
NAME PROPERTY VALUE SOURCE
myzfs/colin2 sharesmb on local
Filesystem megosztása SMB/CIFS. Ezáltal Windows felhasználók is el tudják érni.
# zfs snapshot myzfs/colin@test
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzfs 20.2M 139M 21K /myzfs
myzfs/colin 18K 159M 18K /myzfs/colin
myzfs/colin@test 0 – 18K –
myzfs/colin2 18K 20.0M 18K /myzfs/colin2
Snapshot készítése test néven.
# zfs rollback myzfs/colin@test

Visszaállás egy snapshotra.
# zfs clone myzfs/colin@test myzfs/colin3
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzfs 20.2M 139M 21K /myzfs
myzfs/colin 18K 159M 18K /myzfs/colin
myzfs/colin@test 0 – 18K –
myzfs/colin2 18K 20.0M 18K /myzfs/colin2
myzfs/colin3 0 139M 18K /myzfs/colin3
Egy snapshot direkt mód nem elérhető, de klónozhatunk belőle egy filesystemet, és úgy már igen.
# zfs destroy myzfs/colin2
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzfs 20.1M 139M 22K /myzfs
myzfs/colin 18K 159M 18K /myzfs/colin
myzfs/colin@test 0 – 18K –
myzfs/colin3 0 139M 18K /myzfs/colin3
Filesystem megsemmisítése
# zfs destroy myzfs/colin
cannot destroy ‘myzfs/colin’: filesystem has children
use ‘-r’ to destroy the following datasets:
myzfs/colin@test
Egy filesystem törlése aminek van még egy gyereke, azaz a filesystem, amit ebből klónoztunk, ilyenkor meg kell -r kapcsolóval erősítenünk, hogy valóban törölni akarjuk.
# zfs promote myzfs/colin3
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzfs 20.1M 139M 21K /myzfs
myzfs/colin 0 159M 18K /myzfs/colin
myzfs/colin3 18K 139M 18K /myzfs/colin3
myzfs/colin3@test 0 – 18K –
# zfs destroy myzfs/colin
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzfs 147K 159M 21K /myzfs
myzfs/colin3 18K 159M 18K /myzfs/colin3
myzfs/colin3@test 0 – 18K –
Előléptetjük a klónozott filesystemet így már nem fog függeni az eredeti snapshottól.
# zfs rename myzfs/colin3 myzfs/bob
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzfs 153K 159M 21K /myzfs
myzfs/bob 18K 159M 18K /myzfs/bob
myzfs/bob@test 0 – 18K –
# zfs rename myzfs/bob@test myzfs/bob@newtest
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzfs 146K 159M 20K /myzfs
myzfs/bob 18K 159M 18K /myzfs/bob
myzfs/bob@newtest 0 – 18K –
Filesystem átnevezése és külön a snapshot átnevezése.
# zfs get all
NAME PROPERTY VALUE SOURCE
myzfs type filesystem –
myzfs creation Tue Sep 11 14:21 2007 –
myzfs used 146K –
myzfs available 159M –
myzfs referenced 20K –
[…]
Az összes dataset beállításainak lekérése.
# zpool destroy myzfs
cannot destroy ‘myzfs’: pool is not empty
use ‘-f’ to force destruction anyway
Nem lehet olyan poolt megsemmisíteni, aminek vannak aktív filesystemei.
# zfs unmount myzfs/bob
# df -h
myzfs 159M 20K 159M 1% /myzfs
ZFS filesystem lemountolása.
# zfs mount myzfs/bob
# df -h
myzfs 159M 20K 159M 1% /myzfs
myzfs/bob 159M 18K 159M 1% /myzfs/bob

ZFS filesystem mountolása. Boot folyamán automatikusan megtörténik.
# zfs send myzfs/bob@newtest | ssh localhost zfs receive myzfs/backup
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzfs 172K 159M 20K /myzfs
myzfs/backup 18K 159M 18K /myzfs/backup
myzfs/backup@newtest 0 – 18K –
myzfs/bob 18K 159M 18K /myzfs/bob
myzfs/bob@newtest 0 – 18K –
Snapshot átküldése ssh-n keresztül egy másik gépre, ahol egy filesystem készül belőlle. Itt a másik gépet a localhost reprezentálja.
# zpool history
History for ‘myzfs’:
2007-09-11.15:35:50 zpool create myzfs mirror /disk1 /disk2 /disk3
2007-09-11.15:36:00 zpool detach myzfs /disk3
2007-09-11.15:36:10 zpool attach myzfs /disk1 /disk3
2007-09-11.15:36:53 zpool detach myzfs /disk3
2007-09-11.15:36:59 zpool add myzfs spare /disk3
2007-09-11.15:37:09 zpool remove myzfs /disk3
2007-09-11.15:37:18 zpool offline myzfs /disk1
2007-09-11.15:37:27 zpool online myzfs /disk1
2007-09-11.15:37:37 zpool replace myzfs /disk1 /disk3
2007-09-11.15:37:47 zpool scrub myzfs
2007-09-11.15:37:57 zpool export myzfs
2007-09-11.15:38:05 zpool import -d / myzfs
2007-09-11.15:38:52 zfs create myzfs/colin
2007-09-11.15:39:27 zpool add myzfs mirror /disk1 /disk5
2007-09-11.15:39:38 zfs create myzfs/colin2
2007-09-11.15:39:50 zfs set reservation=20m myzfs/colin
2007-09-11.15:40:18 zfs set quota=20m myzfs/colin2
2007-09-11.15:40:35 zfs set compression=on myzfs/colin2
2007-09-11.15:40:48 zfs snapshot myzfs/colin@test
2007-09-11.15:40:59 zfs rollback myzfs/colin@test
2007-09-11.15:41:11 zfs clone myzfs/colin@test myzfs/colin3
2007-09-11.15:41:25 zfs destroy myzfs/colin2
2007-09-11.15:42:12 zfs promote myzfs/colin3
2007-09-11.15:42:26 zfs rename myzfs/colin3 myzfs/bob
2007-09-11.15:42:57 zfs destroy myzfs/colin
2007-09-11.15:43:23 zfs rename myzfs/bob@test myzfs/bob@newtest
2007-09-11.15:44:30 zfs receive myzfs/backup
Egy pool történetének kilistázása, lehetőség van csak egy bizonyos pool történéseinek limitálására, de ha egy poolt megsemmisítünk ezen információk is el fognak tűnni.
# zpool destroy -f myzfs
# zpool status -v
no pools available
A -f kapcsolóval filesystemekkel együtt megsemmisíthető egy pool.