--- trunk/zfs-foredrag.tex	2013/12/23 19:29:45	6
+++ trunk/zfs-foredrag.tex	2014/01/03 12:51:58	10
@@ -131,7 +131,7 @@
   \tableofcontents[part=2]%[pausesections]
 \end{frame}
 
-\part{Del 1: ZFS?}
+\part{ZFS?}
 
 \begin{frame}
   \partpage
@@ -148,11 +148,14 @@
   \frametitle{Hva er ZFS?}
   \pause
   \begin{itemize}[<+->]
-  \item ZFS er både
+  \item ZFS er
     \begin{enumerate}[<+->]
     \item Logisk volumhåndterer\hfill(Logical Volume Manager, LVM)
-    \item Filsystem med snapshots og kloner
+    \item Filsystem med bl.a.\ snapshots, kloner, kompresjon og deduplisering
+    \item Tilbyr også «zvolumer» som lagringsenheter for andre
+      filsystemer
     \end{enumerate}
+  \item ZFS tar dataintegritet på alvor, deretter brukervennlighet; hastighet kommer i senere rekker
   \item Enklere organisering enn «Storage Spaces» i Microsoft Windows
     Server 2012
   \item Lagringen organiseres i pooler som kan bestå av
@@ -160,17 +163,57 @@
     \item Enkeltdisker\slash partisjoner
     \item Striping (RAID~0) mellom to eller flere disker\slash partisjoner
     \item Speiling (RAID~1) mellom to eller flere disker\slash partisjoner
-    \item \texttt{raidz1} (RAID~5) over tre eller flere disker\slash
-      partisjoner
-    \item \texttt{raidz2} (RAID~6) over seks eller flere disker\slash
-      partisjoner
-    \item \texttt{raidz3} («RAID~7») over ni eller flere disker\slash
-      partisjoner
+    \item \texttt{raidz1} (RAID~5, enkel paritet) over tre eller flere
+      disker\slash partisjoner
+    \item \texttt{raidz2} (RAID~6, dobbel paritet) over fire eller
+      flere disker\slash partisjoner
+    \item \texttt{raidz3} («RAID~7», trippel paritet) over fem eller
+      flere disker\slash partisjoner
     \end{enumerate}
   \item Visse kombinasjoner av det overstående er også mulig
+  \item Filsystemet blir opprettet samtidig med poolen
   \end{itemize}
 \end{frame}
 
+\section{Et eksempel på en pool}
+\begin{frame}[fragile]%[allowframebreaks]
+  \frametitle{Et eksempel på en pool}
+  \pause
+\begin{Verbatim}[commandchars=\\\{\},fontsize=\tiny]
+trond@enterprise:~>\Alert{3|handout:0}{zpool status enterprise_zdata}
+  pool: \Alert{4,7|handout:0}{enterprise_zdata}
+ state: \Alert{7|handout:0}{ONLINE}
+  scan: \Alert{10|handout:0}{scrub repaired 0 in 2h15m with 0 errors on Wed Jan  1 07:18:51 2014}
+config:
+
+        NAME              STATE     READ WRITE CKSUM
+        \Alert{4,7|handout:0}{enterprise_zdata}  \Alert{7|handout:0}{ONLINE}       \Alert{9|handout:0}{0}     \Alert{9|handout:0}{0}     \Alert{9|handout:0}{0}
+                \Alert{5,8|handout:0}{raidz1-0}  \Alert{8|handout:0}{ONLINE}       \Alert{9|handout:0}{0}     \Alert{9|handout:0}{0}     \Alert{9|handout:0}{0}
+                  \Alert{6,8|handout:0}{ada2}    \Alert{8|handout:0}{ONLINE}       \Alert{9|handout:0}{0}     \Alert{9|handout:0}{0}     \Alert{9|handout:0}{0}
+                  \Alert{6,8|handout:0}{ada3}    \Alert{8|handout:0}{ONLINE}       \Alert{9|handout:0}{0}     \Alert{9|handout:0}{0}     \Alert{9|handout:0}{0}
+                  \Alert{6,8|handout:0}{ada4}    \Alert{8|handout:0}{ONLINE}       \Alert{9|handout:0}{0}     \Alert{9|handout:0}{0}     \Alert{9|handout:0}{0}
+
+\Alert{11|handout:0}{errors: No known data errors}
+trond@enterprise:~>\Alert{11|handout:0}{zfs get creation enterprise_zdata}
+NAME              PROPERTY  VALUE                  SOURCE
+enterprise_zdata  creation  \Alert{11|handout:0}{Sun Jan  8 14:14 2012}  -
+\end{Verbatim}
+  \pause
+  \begin{multicols}{2}
+  \begin{itemize}[<+->]
+  \item Kommando for status%: \texttt{zpool status enterprise\_zdata}
+  \item Poolen heter \texttt{enterprise\_zdata}
+  \item Består av én «vdev» («virtual device»), \texttt{raidz1}, striping med enkel paritet
+  \item Medlemmene er de tre harddiskene \texttt{ada2}, \texttt{ada3} og \texttt{ada4}
+  \item Poolen har det bare bra og er \texttt{ONLINE}
+  \item Det samme gjelder for vdeven og dens tre medlemmer
+  \item Null i telleverkene
+  \item Siste skrubbing avsluttet 1.~januar 2014, kl.~07:18:15%, etter omlag 2 timer og 15 minutter med gjennomlesing
+  \item Ingen feil registrert siden 8.~januar 2012, kl.~14:14
+  \end{itemize}
+  \end{multicols}
+\end{frame}
+
 \section{Hva er grensene til ZFS?}
 \begin{frame}%[allowframebreaks]
   \frametitle{Hva er grensene til ZFS?}
@@ -179,15 +222,17 @@
   \item ZFS er stort sett grenseløs
     \begin{itemize}[<+->]
     \item 128-bit diskadresser
-    \item Maks.\ $2^{48}$ poster i hver katalog
+    \item Maks.\ \alert<9->{$2^{48}$} poster i hver katalog
     \item Maks.\ $2^{64}$ bytes (16~EiB, 16~exbibytes) for hver fil
     \item Maks.\ $2^{64}$ bytes for hvert attributt
     \item Maks.\ $2^{78}$ bytes (256~ZiB, 256~zebibytes) i hver pool
     \item Maks.\ $2^{56}$ attributter for hver fil (egentlig begrenset
-      til $2^{48}$ attributter)
+      til \alert<9->{$2^{48}$} attributter)
+    \pause
     \item Maks.\ $2^{64}$ enheter tilknyttet en gitt pool
     \item Maks.\ $2^{64}$ pooler i et og samme system
     \item Maks.\ $2^{64}$ filsystemer i samme pool
+    \item Ref.: \texttt{\url{http://en.wikipedia.org/wiki/ZFS}}
     \end{itemize}
   \item Vis meg det systemet som klarer å sprenge noen av disse
     grensene!
@@ -199,29 +244,31 @@
   \frametitle{Hvordan virker ZFS?}
   \pause
   \begin{itemize}[<+->]
-  \item ZFS unngår RAID~5-skrivehullet til typiske RAID-kontrollere
+  \item ZFS unngår RAID~5-skrivehullet til eldre RAID-kontrollere som
     \begin{enumerate}[<+->]
     \item Skriver nye data til de samme datablokkene som tidligere
-    \item Regner ut ny paritet
+    \item Leser gamle, urørte data fra de samme datablokkene
+    \item Regner ut ny paritet for datablokkene
     \item Skriver oppdatert paritet til de samme paritetsblokkene som
       tidligere
       \begin{itemize}[<+->]
-      \item Hva skjer hvis du får strømbrudd mellom 1 og 3?
+      \item Hva skjer \textit{nå\/} og \textit{senere\/} hvis du får
+        strømbrudd mellom punktene 1 og 4?
       \item Har diskkontrolleren batteribeskyttet minne?
       \end{itemize}
     \end{enumerate}
-  \item ZFS skriver fulle striper; data og paritet samtidig
+  \item ZFS skriver komplette striper; data og paritet samtidig
   \item ZFS bruker «copy-on-write»; skriver nye data til ledige
     diskblokker
-  \item Endringer som hører sammen, samles i transaksjonsgrupper
+  \item Endringer som hører sammen, samles i transaksjonsgrupper («txg»)
   \item Sjekksummer brukes for alt som blir lagret
     \begin{itemize}[<+->]
     \item ZFS kontrollerer at leste data er de samme som ble skrevet
     \item Oppdages avvik, leter ZFS etter alternativer
-    \item Finnes alternativer, enten speilkopier eller paritet
+    \item Finnes alternativer, enten speilkopier eller paritet, så
       \begin{enumerate}[<+->]
       \item Leveres korrekte data til applikasjonen, og
-      \item avviket korrigeres automatisk på den syke disken
+      \item Avviket korrigeres automatisk på den syke disken («resilver»)
       \end{enumerate}
     \item Finnes ingen alternativer, så må filene restaureres fra
       backup
@@ -235,9 +282,17 @@
   \pause
   \begin{itemize}[<+->]
   \item \alert{Ikke} bruk ZFS sammen med RAID-kontrollere!
-  \item I verste fall kan RAID-kontrolleren motarbeide ZFS
-  \item Sett kontrolleren i JBOD-modus, eller
-  \item la hver disk være sitt enslige RAID~0-volum
+  \item RAID-kontrolleren kan i verste fall motarbeide ZFS
+    \begin{itemize}[<+->]
+    \item RAID-kontrolleren kan finne på å
+      \begin{itemize}[<+->]
+      \item Stokke om på skriverekkefølgen
+      \item Utsette skriving av nye data
+      \end{itemize}
+    \item Har du skifta batteriet i RAID-kontrolleren?
+    \end{itemize}
+  \item Sett RAID-kontrolleren i JBOD-modus, eller
+  \item La hver harddisk være sitt enslige RAID~0-volum
   \end{itemize}
 \end{frame}
 
@@ -246,9 +301,10 @@
   \frametitle{Hvor kommer ZFS fra?}
   \pause
   \begin{itemize}[<+->]
-  \item Utviklet av Jeff Bonwick og kollegaer ved Sun Microsystems,
-    Inc.
-  \item Arbeidet begynte i 2001
+  \item Utviklet av Jeffrey Bonwick, Matthew Ahrens og flere kollegaer
+    ved Sun Microsystems, Inc.
+  \item Arbeidet begynte i 2001 og første prototyp ble ferdig 31.\ 
+    oktober 2001 (halloween)
   \item ZFS $\to$ Solaris, oktober 2005
   \item ZFS er lisensiert etter «Common Development and Distribution
     License» (CDDL)
@@ -262,31 +318,125 @@
     \end{itemize}
   \item ZFS var tilgjengelig i Mac OS~X 10.5, bare read-only, men har
     vært tilbaketrukket siden oktober 2009
+  \item Noen Mac OS~X-entusiaster har laget sine egne ZFS-varianter
   \item Andre OS med ZFS-støtte: OpenIndiana, FreeNAS, PC-BSD,
     GNU/kFreeBSD og NetBSD
   \end{itemize}
 \end{frame}
 
+\section{Versjonsnummer i ZFS}
+\begin{frame}%[allowframebreaks]
+  \frametitle{Versjonsnummer i ZFS}
+  \pause
+  \begin{itemize}[<+->]
+  \item Pool-versjonene 1--28 og filsystem-versjonene 1--5 er tilgjengelig
+    gjennom OpenSolaris og illumos
+  \item Pool-versjonene 29-34 og filsystem-versjon 6 er bare tilgjengelig
+    i Solaris 11 (Express)
+  \item OpenSolaris har gått videre til feature-flags og pool-versjon
+    1000
+  \item illumos har gått videre til feature-flags og pool-versjon 5000
+  \item De fleste OS-er utenom Solaris, samarbeider om
+    videreutviklingen av illumos-varianten
+  \item Listene på de neste slidene er kopiert fra
+    \texttt{\url{http://en.wikipedia.org/wiki/ZFS}}
+  \end{itemize}
+\end{frame}
+
+\subsection{Pool-versjonsnummer}
+\begin{frame}[allowframebreaks]
+  \frametitle{Versjonsnummer i ZFS}
+  \framesubtitle{Pool-versjonsnummer}
+  %\pause
+  \begin{enumerate}%[<+->]
+  \item First release
+  \item Ditto Blocks
+  \item Hot spares, double-parity RAID-Z (\texttt{raidz2}), improved RAID-Z
+    accounting
+  \item zpool history
+  \item gzip compression for ZFS datasets
+  \item "\texttt{bootfs}"\ pool property
+  \item ZIL: adds the capability to specify a separate Intent Log
+    device or devices
+  \item ability to delegate \texttt{zfs}(1M) administrative tasks to ordinary
+    users
+  \item CIFS server support, dataset quotas
+  \item Devices can be added to a storage pool as "cache devices"
+  \item Improved \texttt{zpool scrub}/resilver performance
+  \item Snapshot properties
+  \item Properties: \texttt{usedbysnapshots}, \texttt{usedbychildren},
+    \texttt{usedbyrefreservation}, and \texttt{usedbydataset}
+  \item passthrough-x aclinherit property support
+  \item Properties: \texttt{userquota}, \texttt{groupquota}, \texttt{userused} and \texttt{groupused};
+    also required FS v4
+  \item STMF property support
+  \item triple-parity RAID-Z
+  \item ZFS snapshot holds
+  \item ZFS log device removal
+  \item zle compression algorithm that is needed to support the ZFS
+    deduplication properties in ZFS pool version 21, which were
+    released concurrently
+  \item Deduplication
+  \item \texttt{zfs receive} properties
+  \item slim ZIL
+  \item System attributes. Symlinks now their own object type. Also
+    requires FS v5.
+  \item Improved pool scrubbing and resilvering statistics
+  \item Improved snapshot deletion performance
+  \item Improved snapshot creation performance (particularly recursive
+    snapshots)
+  \item Multiple virtual device replacements
+  \item RAID-Z/mirror hybrid allocator
+  \item ZFS encryption
+  \item Improved '\texttt{zfs list}' performance
+  \item One MB block support
+  \item Improved share support
+  \item Sharing with inheritance
+  \end{enumerate}
+\end{frame}
+
+\subsection{Filsystem-versjonsnummer}
+\begin{frame}[allowframebreaks]
+  \frametitle{Versjonsnummer i ZFS}
+  \framesubtitle{Filsystem-versjonsnummer}
+  %\pause
+  \begin{enumerate}%[<+->]
+  \item First release
+  \item Enhanced directory entries. In particular, directory entries
+    now store the object type. For example, file, directory, named
+    pipe, and so on, in addition to the object number.
+  \item Support for sharing ZFS file systems over SMB. Case
+    insensitivity support. System attribute support. Integrated
+    anti-virus support.
+  \item Properties: userquota, groupquota, userused and groupused
+  \item System attributes; symlinks now their own object type
+  \item Multilevel file system support
+  \end{enumerate}
+\end{frame}
+
 \section{Fremtiden for ZFS?}
 \begin{frame}%[allowframebreaks]
   \frametitle{Fremtiden for ZFS?}
   \pause
   \begin{itemize}[<+->]
-  \item Oracle kjøpte opp Sun Microsystems, 27.~januar 2010
-  \item Oracle ville gjøre OpenSolaris om til «ClosedSolaris»
-  \item Hele ZFS-teamet hos Oracle sa opp på dagen, 90 dager etter den
-    avgjørelsen
+  \item Oracle kjøpte opp Sun Microsystems, Inc., 27.~januar 2010
+  \item Oracle gjorde OpenSolaris om til «ClosedSolaris» i mai 2010
+  \item Hele ZFS-teamet hos Oracle sa opp på dagen, omtrent 90 dager
+    etter denne avgjørelsen ifølge Bryan Cantrill
   \item ZFS lever videre hos
     \begin{itemize}[<+->]
-    \item Oracle
-    \item illumos
-    \item OpenZFS
-    \item FreeBSD
-    \item Delphix
-    \item iXsystems
-    \item Joyent
-    \item NetBSD
-    \item Nexenta
+    \item Oracle Solaris
+    \item illumos\slash OpenZFS
+      \begin{itemize}[<+->]
+      \item OpenIndiana
+      \item FreeBSD
+      \item Delphix
+      \item iXsystems
+      \item Joyent
+      \item NetBSD
+      \item Nexenta
+      \item Linux
+      \end{itemize}
     \end{itemize}
   \end{itemize}
 \end{frame}
@@ -301,7 +451,7 @@
 %  \end{itemize}
 %\end{frame}
 
-\part{Del 2: ZFS!}
+\part{ZFS!}
 
 \begin{frame}
   \partpage
@@ -318,18 +468,256 @@
   \frametitle{Administrasjon av ZFS}
   \pause
   \begin{itemize}[<+->]
-  \item To kommandoer (med underkommandoer):
+  \item To kommandoer (med underkommandoer)
     \begin{enumerate}[<+->]
     \item \texttt{zpool}
+      \begin{itemize}[<+->]
+      \item Administrasjon av lagringspoolene
+      \end{itemize}
     \item \texttt{zfs}
+      \begin{itemize}[<+->]
+      \item Administrasjon av filsystemer, zvolumer, snapshots, kloner, m.m.
+      \end{itemize}
     \end{enumerate}
-  \item Det finnes en tredje kommando for de nysgjerrige: \texttt{zdb}
+  \item Det finnes en tredje kommando: \texttt{zdb}
     \begin{itemize}[<+->]
-    \item Brukes for å avlese indre ZFS-detaljer
+    \item Brukes for å avlese de indre detaljene til ZFS
+    \item Bør bare brukes av eksperter \dots
+    \item \dots\ eller av de nysgjerrige
     \end{itemize}
   \end{itemize}
 \end{frame}
 
+\subsection{\texttt{zpool}}
+\begin{frame}[allowframebreaks]
+  \frametitle{Administrasjon av ZFS}
+  \framesubtitle{\texttt{zpool}-kommandoer}
+  %\pause
+  \begin{itemize}%[<+->]
+  \item \texttt{zpool add}
+    \begin{itemize}%[<+->]
+    \item Brukes for å innføre en helt ny vdev-gruppe med harddisker\slash partisjoner
+    \end{itemize}
+  \item \texttt{zpool attach}
+    \begin{itemize}%[<+->]
+    \item Brukes for å tilføye en harddisk\slash partisjon til en eksisterende vdev-gruppe
+    \end{itemize}
+  \item \texttt{zpool clear}
+    \begin{itemize}%[<+->]
+    \item Brukes for å nullstille tellerne for lese-, skrive- og sjekksumfeil
+    \end{itemize}
+  \item \texttt{zpool create}
+    \begin{itemize}%[<+->]
+    \item Brukes for å opprette pooler
+    \end{itemize}
+  \item \texttt{zpool destroy}
+    \begin{itemize}%[<+->]
+    \item Brukes for å ødelegge pooler
+    \end{itemize}
+  \item \texttt{zpool detach}
+    \begin{itemize}%[<+->]
+    \item Brukes for å fjerne en harddisk\slash partisjon fra en vdev-gruppe
+    \end{itemize}
+  \item \texttt{zpool export}
+    \begin{itemize}%[<+->]
+    \item Brukes for å eksportere en pool, for senere import i samme eller et annet system
+    \end{itemize}
+  \item \texttt{zpool get}
+    \begin{itemize}%[<+->]
+    \item Brukes for å vise verdien til alle eller utvalgte \texttt{zpool}-egenskaper
+    \end{itemize}
+  \item \texttt{zpool history}
+    \begin{itemize}%[<+->]
+    \item Brukes for å vise historikken til poolen
+    \end{itemize}
+  \item \texttt{zpool import}
+    \begin{itemize}%[<+->]
+    \item Brukes for å importere en pool eller å vise en liste over pooler som kan importeres
+    \end{itemize}
+  \item \texttt{zpool iostat}
+    \begin{itemize}%[<+->]
+    \item Brukes for å vise I/O-statistikk i sann tid
+    \end{itemize}
+  \item \texttt{zpool labelclear}
+    \begin{itemize}%[<+->]
+    \item Brukes for å fjerne alle spor av ZFS' disklabels
+    \end{itemize}
+  \item \texttt{zpool list}
+    \begin{itemize}%[<+->]
+    \item Brukes for å liste opp importerte pooler
+    \end{itemize}
+  \item \texttt{zpool offline}
+    \begin{itemize}%[<+->]
+    \item Brukes for å deaktivere en harddisk\slash partisjon
+    \end{itemize}
+  \item \texttt{zpool online}
+    \begin{itemize}%[<+->]
+    \item Brukes for (re)aktivere en harddisk\slash partisjon
+    \end{itemize}
+  \item \texttt{zpool reguid}
+    \begin{itemize}%[<+->]
+    \item Brukes for å tildele en ny, tilfeldig GUID til en bestemt pool
+    \end{itemize}
+  \item \texttt{zpool remove}
+    \begin{itemize}%[<+->]
+    \item Brukes for å fjerne en harddisk\slash partisjon
+    \end{itemize}
+  \item \texttt{zpool reopen}
+    \begin{itemize}%[<+->]
+    \item Brukes for \dots
+    \end{itemize}
+  \item \texttt{zpool replace}
+    \begin{itemize}%[<+->]
+    \item Brukes for å fortelle ZFS at en harddisk\slash partisjon har blitt skiftet ut
+    \end{itemize}
+  \item \texttt{zpool scrub}
+    \begin{itemize}%[<+->]
+    \item Brukes for å lese gjennom alt aktivt innhold, og sjekke samsvaret mellom lagret data og lagrete sjekksummer
+    \end{itemize}
+  \item \texttt{zpool set}
+    \begin{itemize}%[<+->]
+    \item Brukes for å endre \texttt{zpool}-egenskapene
+    \end{itemize}
+  \item \texttt{zpool split}
+    \begin{itemize}%[<+->]
+    \item Brukes for å skille et speilmedlem fra resten av gruppa
+    \end{itemize}
+  \item \texttt{zpool status}
+    \begin{itemize}%[<+->]
+    \item Brukes for å vise status til poolen, dens medlemmer og deres status, og telleverkene for lese-, skrive og sjekksumfeil
+    \end{itemize}
+  \item \texttt{zpool upgrade}
+    \begin{itemize}%[<+->]
+    \item Brukes for å oppgradere poolene til nye formater, vise hvilke pooler som er utdaterte, og hvilke versjoner som er tilgjengelig i systemet
+    \end{itemize}
+  \end{itemize}
+\end{frame}
+
+\subsection{\texttt{zfs}}
+\begin{frame}[allowframebreaks]
+  \frametitle{Administrasjon av ZFS}
+  \framesubtitle{\texttt{zfs}-kommandoer}
+  %\pause
+  \begin{itemize}%[<+->]
+  \item \texttt{zfs allow}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs bookmark}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs clone}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs create}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs destroy}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs diff}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs get}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs groupspace}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs holds}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs hold}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs inherit}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs jail}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs list}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs mount}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs promote}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs receive}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs release}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs rename}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs rollback}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs send}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs set}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs share}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs snapshot}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs unallow}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs unjail}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs unmount}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs unshare}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs upgrade}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \item \texttt{zfs userspace}
+    \begin{itemize}%[<+->]
+    \item 
+    \end{itemize}
+  \end{itemize}
+\end{frame}
+
 \section{Oppretting av pooler}
 \begin{frame}%[allowframebreaks]
   \frametitle{Oppretting av pooler}
@@ -359,12 +747,10 @@
   \item \texttt{zpool create rpool \alert{mirror} da0 da1}
   \item RAID~5 over tre disker:
   \item \texttt{zpool create rpool \alert{raidz1} da0 da1 da2}
-  \item RAID~6 over seks disker:
-  \item \texttt{zpool create rpool \alert{raidz2} da0 da1 da2 da3 da4
-      da5}
-  \item «RAID~7» over ni disker:
-  \item \texttt{zpool create rpool \alert{raidz3} da0 da1 da2 da3 da4
-      da5 da6 da7 da8}
+  \item RAID~6 over fire disker:
+  \item \texttt{zpool create rpool \alert{raidz2} da0 da1 da2 da3}
+  \item «RAID~7» over fem disker:
+  \item \texttt{zpool create rpool \alert{raidz3} da0 da1 da2 da3 da4}
   \end{itemize}
 \end{frame}
 
@@ -374,19 +760,114 @@
   \framesubtitle{Avanserte pool-eksempler}
   \pause
   \begin{itemize}[<+->]
-  \item RAID~\only<1-3|handout:0>{?}\only<4->{1+0 (3 vdevs)}:
+  \item RAID~\only<1-3|handout:0>{?}\only<4->{1+0 (3 vdevs á 2 disker)}:
   \item \texttt{zpool create rpool \alert{mirror} da0 da1
       \alert{mirror} da2 da3 \alert{mirror} da4 da5}
   \pause
-  \item RAID~\only<5-6|handout:0>{?}\only<7->{5+0 (2 vdevs)}:
+  \item RAID~\only<5-6|handout:0>{?}\only<7->{5+0 (2 vdevs á 3 disker)}:
   \item \texttt{zpool create rpool \alert{raidz1} da0 da1 da2
       \alert{raidz1} da3 da4 da5}
   \pause
-  \item RAID~\only<8-9|handout:0>{?}\only<10->{6+0 (2 vdevs)}:
+  \item RAID~\only<8-9|handout:0>{?}\only<10->{6+0 (2 vdevs á 4 disker)}:
   \item \texttt{zpool create rpool \alert{raidz2} da0 da1 da2 da3 \alert{raidz2} da4 da5 da6 da7}
   \pause
-  \item RAID~\only<11-12|handout:0>{?}\only<13->{1+5+0 (2 vdevs)}:
+  \item RAID~\only<11-12|handout:0>{?}\only<13->{1+5+0 (2 vdevs, 2 og 3 disker)}:
   \item \texttt{zpool create rpool \alert{mirror} da0 da1 \alert{raidz1} da2 da3 da4}
+  \end{itemize}
+\end{frame}
+
+\section{\texttt{zpool}-egenskaper}
+\begin{frame}[allowframebreaks]
+  \frametitle{\texttt{zpool}-egenskaper}
+  %\pause
+  \begin{itemize}%[<+->]
+  \item \texttt{size}
+  \item \texttt{capacity}
+  \item \texttt{altroot}
+  \item \texttt{health}
+  \item \texttt{guid}
+  \item \texttt{version}
+  \item \texttt{bootfs}
+  \item \texttt{delegation}
+  \item \texttt{autoreplace}
+  \item \texttt{cachefile}
+  \item \texttt{failmode}
+  \item \texttt{listsnapshots}
+  \item \texttt{autoexpand}
+  \item \texttt{dedupditto}
+  \item \texttt{dedupratio}
+  \item \texttt{free}
+  \item \texttt{allocated}
+  \item \texttt{readonly}
+  \item \texttt{comment}
+  \item \texttt{expandsize}
+  \item \texttt{freeing}
+  \item \texttt{feature@async\_destroy}
+  \item \texttt{feature@empty\_bpobj}
+  \item \texttt{feature@lz4\_compress}
+  \item \texttt{feature@multi\_vdev\_crash\_dump}
+  \item \texttt{feature@spacemap\_histogram}
+  \item \texttt{feature@enabled\_txg}
+  \item \texttt{feature@hole\_birth}
+  \item \texttt{feature@extensible\_dataset}
+  \item \texttt{feature@bookmarks}
+  \end{itemize}
+\end{frame}
+
+\section{\texttt{zfs}-egenskaper}
+\begin{frame}[allowframebreaks]
+  \frametitle{\texttt{zfs}-egenskaper}
+  %\pause
+  \begin{itemize}%[<+->]
+  \item \texttt{type}
+  \item \texttt{creation}
+  \item \texttt{used}
+  \item \texttt{available}
+  \item \texttt{referenced}
+  \item \texttt{compressratio}
+  \item \texttt{mounted}
+  \item \texttt{quota}
+  \item \texttt{reservation}
+  \item \texttt{recordsize}
+  \item \texttt{mountpoint}
+  \item \texttt{sharenfs}
+  \item \texttt{checksum}
+  \item \texttt{compression}
+  \item \texttt{atime}
+  \item \texttt{devices}
+  \item \texttt{exec}
+  \item \texttt{setuid}
+  \item \texttt{readonly}
+  \item \texttt{jailed}
+  \item \texttt{snapdir}
+  \item \texttt{aclmode}
+  \item \texttt{aclinherit}
+  \item \texttt{canmount}
+  \item \texttt{xattr}
+  \item \texttt{copies}
+  \item \texttt{version}
+  \item \texttt{utf8only}
+  \item \texttt{normalization}
+  \item \texttt{casesensitivity}
+  \item \texttt{vscan}
+  \item \texttt{nbmand}
+  \item \texttt{sharesmb}
+  \item \texttt{refquota}
+  \item \texttt{refreservation}
+  \item \texttt{primarycache}
+  \item \texttt{secondarycache}
+  \item \texttt{usedbysnapshots}
+  \item \texttt{usedbydataset}
+  \item \texttt{usedbychildren}
+  \item \texttt{usedbyrefreservation}
+  \item \texttt{logbias}
+  \item \texttt{dedup}
+  \item \texttt{mlslabel}
+  \item \texttt{sync}
+  \item \texttt{refcompressratio}
+  \item \texttt{written}
+  \item \texttt{logicalused}
+  \item \texttt{logicalreferenced}
   \end{itemize}
 \end{frame}
 
