| 1 |
% -*- coding: utf-8 -*- |
| 2 |
% $Ximalas$ |
| 3 |
%\documentclass{beamer} |
| 4 |
%\documentclass[handout]{beamer} |
| 5 |
%\usepackage{pgfpages} |
| 6 |
%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm] |
| 7 |
%\pgfpagesuselayout{4 on 1}[a4paper,landscape,border shrink=5mm] |
| 8 |
%\setbeameroption{show notes} % on second screen} |
| 9 |
|
| 10 |
\def\jobname{zfs-foredrag} % Sett riktig navn på presentasjonen her. |
| 11 |
\setjobnamebeamerversion{\jobname} |
| 12 |
|
| 13 |
\usepackage[utf8]{inputenc} |
| 14 |
\usepackage[T1]{fontenc} |
| 15 |
\usepackage[norsk]{babel} |
| 16 |
\usepackage{booktabs} |
| 17 |
\usepackage{multicol} |
| 18 |
\usepackage{fancyvrb} |
| 19 |
%\usepackage{epstopdf} |
| 20 |
%\epstopdfsetup{update} |
| 21 |
|
| 22 |
%\usetheme{AnnArbor} |
| 23 |
%\usetheme{Boadilla} |
| 24 |
%\usetheme{boxes} |
| 25 |
%\usetheme{CambridgeUS} |
| 26 |
%\usetheme{Antibes} |
| 27 |
%\usetheme{Bergen} |
| 28 |
%\usetheme{Berkeley} |
| 29 |
%\usetheme{Berlin} |
| 30 |
%\usetheme{Copenhagen} |
| 31 |
%\usetheme{Darmstadt} |
| 32 |
%\usetheme{Dresden} |
| 33 |
%\usetheme{Frankfurt} |
| 34 |
%\usetheme{Goettingen} |
| 35 |
%\usetheme{Hannover} |
| 36 |
%\usetheme{Ilmenau} |
| 37 |
%\usetheme{JuanLesPins} |
| 38 |
%\usetheme{Luebeck} |
| 39 |
\usetheme{Madrid} |
| 40 |
%\usetheme{Malmoe} |
| 41 |
%\usetheme{Marburg} |
| 42 |
%\usetheme{Montpellier} |
| 43 |
%\usetheme{PaloAlto} |
| 44 |
%\usetheme{Pittsburgh} |
| 45 |
%\usetheme{Rochester} |
| 46 |
%\usetheme{Singapore} |
| 47 |
%\usetheme{Szeged} |
| 48 |
%\usetheme{Warsaw} |
| 49 |
|
| 50 |
\hypersetup{colorlinks,linkcolor=,urlcolor=blue} |
| 51 |
|
| 52 |
\newcommand{\Alert}[2]{\alert<#1>{#2}} |
| 53 |
\newcommand{\Textbackslash}{\textbackslash\penalty\exhyphenpenalty} |
| 54 |
\newcommand{\rfc}[1]{\href{http://tools.ietf.org/html/rfc#1}{RFC~#1}} |
| 55 |
\newcommand{\prfc}[1]{(\rfc{#1})} |
| 56 |
|
| 57 |
% Fontstørrelser: |
| 58 |
|
| 59 |
% \tiny |
| 60 |
% \scriptsize |
| 61 |
% \footnotesize |
| 62 |
% \small |
| 63 |
% \normalsize |
| 64 |
% \large |
| 65 |
% \Large |
| 66 |
% \LARGE |
| 67 |
% \huge |
| 68 |
% \Huge |
| 69 |
|
| 70 |
\title{\textbf{ZFS}} |
| 71 |
\subtitle{Siste ord innen filsystemer} |
| 72 |
\author[T.~Endrestøl]{\href{http://fig.ol.no/~trond/}{Trond Endrestøl}} |
| 73 |
\institute[FSI/IT]{\href{http://fagskolen-innlandet.no/}{Fagskolen Innlandet}, IT-avdelingen} |
| 74 |
%\subject{Emne for bruk i egenskapene til PDF-fila} |
| 75 |
%\keywords{Nøkkelord for bruk i egenskapene til PDF-fila} |
| 76 |
\date{\today} % eller |
| 77 |
%\date{23.\ desember 2013} |
| 78 |
|
| 79 |
\begin{document} |
| 80 |
|
| 81 |
\begin{frame} |
| 82 |
\titlepage |
| 83 |
\end{frame} |
| 84 |
|
| 85 |
\section*{Foredragets filer} |
| 86 |
\begin{frame}[allowframebreaks] |
| 87 |
\frametitle{Foredragets filer} |
| 88 |
\begin{itemize} |
| 89 |
\item Filene til foredraget er tilgjengelig gjennom: |
| 90 |
\begin{itemize} |
| 91 |
\item Subversion: \texttt{svn co |
| 92 |
\url{svn://svn.ximalas.info/zfs-foredrag}} |
| 93 |
\item Web: |
| 94 |
\href{http://svnweb.ximalas.info/zfs-foredrag/}{\texttt{svnweb.ximalas.info/zfs-foredrag}} |
| 95 |
\item Begge metodene er tilgjengelig med både IPv4 og \alert{IPv6} |
| 96 |
\end{itemize} |
| 97 |
\item |
| 98 |
\href{http://svnweb.ximalas.info/zfs-foredrag/trunk/zfs-foredrag.foredrag.pdf?view=co}{\texttt{zfs-foredrag.foredrag.pdf}} |
| 99 |
vises på lerretet |
| 100 |
\item |
| 101 |
\href{http://svnweb.ximalas.info/zfs-foredrag/trunk/zfs-foredrag.handout.pdf?view=co}{\texttt{zfs-foredrag.handout.pdf}} |
| 102 |
er mye bedre for publikum å se på |
| 103 |
\item |
| 104 |
\href{http://svnweb.ximalas.info/zfs-foredrag/trunk/zfs-foredrag.handout.2on1.pdf?view=co}{\texttt{zfs-foredrag.handout.2on1.pdf}} |
| 105 |
og |
| 106 |
\href{http://svnweb.ximalas.info/zfs-foredrag/trunk/zfs-foredrag.handout.4on1.pdf?view=co}{\texttt{zfs-foredrag.handout.4on1.pdf}} |
| 107 |
er begge velegnet til utskrift |
| 108 |
\item \texttt{*.169.pdf}-filene er i 16:9-format |
| 109 |
\item \texttt{*.1610.pdf}-filene er i 16:10-format |
| 110 |
\framebreak |
| 111 |
\item Foredraget er mekket ved hjelp av |
| 112 |
\href{http://www.gnu.org/software/emacs/}{GNU~Emacs}, |
| 113 |
\href{http://www.gnu.org/software/auctex/}{AUC\TeX}, |
| 114 |
\href{http://www.tug.org/applications/pdftex/}{pdf\TeX} fra |
| 115 |
\href{http://miktex.org/}{MiK\TeX}, |
| 116 |
\href{http://www.latex-project.org/}{\LaTeX}-dokumentklassa |
| 117 |
\href{https://bitbucket.org/rivanvx/beamer/wiki/Home}{beamer}, |
| 118 |
\href{http://subversion.apache.org/}{Subversion}, |
| 119 |
\href{http://tortoisesvn.net/}{TortoiseSVN} og |
| 120 |
\href{http://get.adobe.com/no/reader/}{Adobe Reader} |
| 121 |
\item Hovedfila bærer denne identifikasjonen:\\ |
| 122 |
\texttt{\$${}$Ximalas${}$\$} |
| 123 |
\item Driverfila for denne PDF-fila bærer denne identifikasjonen:\\ |
| 124 |
\svndriverfil |
| 125 |
\item Copyright \copyright\ 2014 Trond Endrestøl |
| 126 |
\item Dette verket er lisensiert med: |
| 127 |
\href{http://creativecommons.org/}{Creative Commons}, |
| 128 |
\href{http://creativecommons.org/licenses/by-sa/3.0/no/}{Navngivelse-DelPåSammeVilkår |
| 129 |
3.0 Norge} (CC BY-SA |
| 130 |
3.0)\hfill\includegraphics[scale=.25]{by-sa.pdf} |
| 131 |
\end{itemize} |
| 132 |
\end{frame} |
| 133 |
|
| 134 |
\section*{Oversikt over hele foredraget} |
| 135 |
\begin{frame}%[allowframebreaks] |
| 136 |
\frametitle{Oversikt over hele foredraget} |
| 137 |
\framesubtitle{Del 1: Lagringssystemer} |
| 138 |
\tableofcontents[part=1]%[pausesections] |
| 139 |
\end{frame} |
| 140 |
|
| 141 |
\begin{frame}%[allowframebreaks] |
| 142 |
\frametitle{Oversikt over hele foredraget} |
| 143 |
\framesubtitle{Del 2: ZFS?} |
| 144 |
\tableofcontents[part=2]%[pausesections] |
| 145 |
\end{frame} |
| 146 |
|
| 147 |
\begin{frame}%[allowframebreaks] |
| 148 |
\frametitle{Oversikt over hele foredraget} |
| 149 |
\framesubtitle{Del 3: ZFS!} |
| 150 |
\tableofcontents[part=3]%[pausesections] |
| 151 |
\end{frame} |
| 152 |
|
| 153 |
\begin{frame}%[allowframebreaks] |
| 154 |
\frametitle{Oversikt over hele foredraget} |
| 155 |
\framesubtitle{Del 4: Oppstartsmiljøer} |
| 156 |
\tableofcontents[part=4]%[pausesections] |
| 157 |
\end{frame} |
| 158 |
|
| 159 |
\part{Lagringssystemer} |
| 160 |
|
| 161 |
\begin{frame} |
| 162 |
\partpage |
| 163 |
\end{frame} |
| 164 |
|
| 165 |
\section*{Oversikt over del~1: Lagringssystemer} |
| 166 |
\begin{frame}%[allowframebreaks] |
| 167 |
\frametitle{Oversikt over del~1: Lagringssystemer} |
| 168 |
\tableofcontents%[pausesections] |
| 169 |
\end{frame} |
| 170 |
|
| 171 |
\section{Hva kan et lagringssystem bestå av?} |
| 172 |
\begin{frame}%[allowframebreaks] |
| 173 |
\frametitle{Hva kan et lagringssystem bestå av?} |
| 174 |
\tiny |
| 175 |
|
| 176 |
\begin{multicols}{2} |
| 177 |
\pause |
| 178 |
Enkel server med innebygget lagring |
| 179 |
|
| 180 |
\pause |
| 181 |
\begin{enumerate}[<+->] |
| 182 |
\item Strømforsyning |
| 183 |
\item Strømkabler |
| 184 |
\item Harddisker |
| 185 |
\item Firmware i harddisker |
| 186 |
\item I/O-kabler |
| 187 |
\item Harddiskkontroller integrert i\slash tilkoblet hovedkortet |
| 188 |
\item Firmware i harddiskkontroller |
| 189 |
\item Hovedkort og dets kobberbaner |
| 190 |
\item South bridge |
| 191 |
\item DMA-kontroller på hovedkortet |
| 192 |
\item Arbeidsminne tilkoblet hovedkortet |
| 193 |
\item CPU |
| 194 |
\end{enumerate} |
| 195 |
|
| 196 |
\columnbreak % Av en eller annen grunn sørger \columnbreak for at den samme sliden gjentas en gang ekstra for denne framen akkurat her |
| 197 |
|
| 198 |
\pause |
| 199 |
Avansert server med ekstern lagring |
| 200 |
|
| 201 |
\pause |
| 202 |
\begin{enumerate}[<+->] |
| 203 |
\item Strømforsyning |
| 204 |
\item Strømkabler |
| 205 |
\item Harddisker montert i diskhyller |
| 206 |
\item Firmware i harddisker |
| 207 |
\item I/O-kabler |
| 208 |
\item Harddiskkontroller |
| 209 |
\item Firmware i harddiskkontrolleren |
| 210 |
\item Grensesnitt i harddiskkontrolleren for ekstern I/O |
| 211 |
\item Kabler for ekstern I/O (og kanskje en superrask switch) |
| 212 |
\item Grensesnitt for ekstern I/O tilkoblet hovedkortet |
| 213 |
\item Hovedkort og dets kobberbaner |
| 214 |
\item South bridge |
| 215 |
\item DMA-kontroller på hovedkortet |
| 216 |
\item Arbeidsminne tilkoblet hovedkortet |
| 217 |
\item CPU |
| 218 |
\end{enumerate} |
| 219 |
\end{multicols} |
| 220 |
\end{frame} |
| 221 |
|
| 222 |
\section{Hva kan gå galt i et lagringssystem?} |
| 223 |
\begin{frame}%[allowframebreaks] |
| 224 |
\frametitle{Hva kan gå galt i et lagringssystem?} |
| 225 |
\pause |
| 226 |
\begin{itemize}[<+->] |
| 227 |
\item Data som en gang ble lagret, avleses senere som noe helt annet |
| 228 |
\end{itemize} |
| 229 |
\end{frame} |
| 230 |
|
| 231 |
\section{Hvor kan det gå galt i et lagringssystem?} |
| 232 |
\begin{frame}[allowframebreaks] |
| 233 |
\frametitle{Hvor kan det gå galt i et lagringssystem?} |
| 234 |
%\pause |
| 235 |
\begin{itemize}%[<+->] |
| 236 |
\item Kort sagt: overalt |
| 237 |
\end{itemize} |
| 238 |
\framebreak |
| 239 |
\begin{enumerate}%[<+->] |
| 240 |
\item Strømforsyningen |
| 241 |
\begin{itemize}%[<+->] |
| 242 |
\item Underdimensjonert; lavere spenning\slash strøm til øvrige |
| 243 |
komponenter; uttørkede elektrolyttkondensatorer; utilstrekkelig |
| 244 |
avkjøling |
| 245 |
\end{itemize} |
| 246 |
\item Strømkabel mellom strømforsyning og harddisk |
| 247 |
\begin{itemize}%[<+->] |
| 248 |
\item Vakkel i kontaktene; (begynnende) brudd i lederne |
| 249 |
\end{itemize} |
| 250 |
\item Harddisk |
| 251 |
\begin{itemize}%[<+->] |
| 252 |
\item Slitasje på indre deler; programmeringsfeil i firmware; |
| 253 |
vibrasjoner; lese fra\slash skrive til feil diskblokk |
| 254 |
\end{itemize} |
| 255 |
\item I/O-kabel mellom harddisk og harddiskkontroller |
| 256 |
\begin{itemize}%[<+->] |
| 257 |
\item Vakkel i kontaktene; (begynnende) brudd i lederne |
| 258 |
\end{itemize} |
| 259 |
\item Harddiskkontroller |
| 260 |
\begin{itemize}%[<+->] |
| 261 |
\item Programmeringsfeil i firmware |
| 262 |
\end{itemize} |
| 263 |
\item Grensesnittet mellom harddiskkontroller og hovedkort |
| 264 |
\begin{itemize}%[<+->] |
| 265 |
\item Vakkel i PCIe-kontakt |
| 266 |
\end{itemize} |
| 267 |
\item Kobberbanene i hovedkortet |
| 268 |
\begin{itemize}%[<+->] |
| 269 |
\item (Begynnende) brudd etter ESD-skade, utilstrekkelig avkjøling |
| 270 |
\end{itemize} |
| 271 |
\item Grensesnitt mellom DMA-kontroller og hovedkort |
| 272 |
\begin{itemize}%[<+->] |
| 273 |
\item Se kobberbanene i hovedkortet |
| 274 |
\end{itemize} |
| 275 |
\item Grensesnitt mellom hovedkort og arbeidsminne |
| 276 |
\begin{itemize}%[<+->] |
| 277 |
\item Vakkel i soklene |
| 278 |
\end{itemize} |
| 279 |
\item Arbeidsminne |
| 280 |
\begin{itemize}%[<+->] |
| 281 |
\item ESD-skade; kosmisk stråling; alfapartikler fra radioaktiv |
| 282 |
forurensning i IC-innkapslingen |
| 283 |
\end{itemize} |
| 284 |
\end{enumerate} |
| 285 |
%\framebreak |
| 286 |
\begin{itemize}%[<+->] |
| 287 |
\item Hvor mange muligheter ble dette? |
| 288 |
\item Hvor mange harddisker har du i dine systemer? |
| 289 |
\item Har du kontrollen? |
| 290 |
\end{itemize} |
| 291 |
\end{frame} |
| 292 |
|
| 293 |
\part{ZFS?} |
| 294 |
|
| 295 |
\begin{frame} |
| 296 |
\partpage |
| 297 |
\end{frame} |
| 298 |
|
| 299 |
\section*{Oversikt over del~2: ZFS?} |
| 300 |
\begin{frame}%[allowframebreaks] |
| 301 |
\frametitle{Oversikt over del~2: ZFS?} |
| 302 |
\tableofcontents%[pausesections] |
| 303 |
\end{frame} |
| 304 |
|
| 305 |
\section{Hva er ZFS?} |
| 306 |
\begin{frame}%[allowframebreaks] |
| 307 |
\frametitle{Hva er ZFS?} |
| 308 |
\pause |
| 309 |
\begin{itemize}[<+->] |
| 310 |
\item ZFS er |
| 311 |
\begin{enumerate}[<+->] |
| 312 |
\item Logisk volumhåndterer («Logical Volume Manager», LVM) |
| 313 |
\item Filsystem med bl.a.\ snapshots, kloner, kompresjon og |
| 314 |
deduplisering |
| 315 |
\item Tilbyr også «zvolumer» som lagringsenheter for andre |
| 316 |
filsystemer |
| 317 |
\end{enumerate} |
| 318 |
\item ZFS tar |
| 319 |
\begin{itemize}[<+->] |
| 320 |
\item Dataintegritet på alvor |
| 321 |
\item Deretter brukervennlighet (for administratorer) |
| 322 |
\item Hastighet kommer i senere rekker |
| 323 |
\end{itemize} |
| 324 |
\item ZFS er langt enklere enn «Storage Spaces» i Microsoft Windows |
| 325 |
Server 2012 |
| 326 |
\end{itemize} |
| 327 |
\end{frame} |
| 328 |
|
| 329 |
\begin{frame}%[allowframebreaks] |
| 330 |
\frametitle{Hva er ZFS?} |
| 331 |
%\pause |
| 332 |
\begin{itemize}[<+->] |
| 333 |
\item Tradisjonelt oppsett av Storage Spaces |
| 334 |
\begin{itemize}[<+->] |
| 335 |
\item Velge ut harddisker og opprette en pool |
| 336 |
\item Opprette et volum med ønsket størrelse og lagringsform |
| 337 |
\begin{itemize}[<+->] |
| 338 |
\item striping |
| 339 |
\item speiling, eller |
| 340 |
\item RAID~5 |
| 341 |
\end{itemize} |
| 342 |
\item Opprette \textit{ett\/} filsystem på volumet |
| 343 |
\begin{itemize}[<+->] |
| 344 |
\item NTFS |
| 345 |
\item ReFS |
| 346 |
\end{itemize} |
| 347 |
\item Begynne å lagre data |
| 348 |
\end{itemize} |
| 349 |
\end{itemize} |
| 350 |
\end{frame} |
| 351 |
|
| 352 |
\begin{frame}%[allowframebreaks] |
| 353 |
\frametitle{Hva er ZFS?} |
| 354 |
%\pause |
| 355 |
\begin{itemize}[<+->] |
| 356 |
\item ZFS organiserer lagringen i pooler som kan bestå av |
| 357 |
\begin{enumerate}[<+->] |
| 358 |
\item Enkeltharddisker\slash partisjoner |
| 359 |
\item Striping (RAID~0) mellom to eller flere harddisker\slash |
| 360 |
partisjoner |
| 361 |
\item Speiling (RAID~1) mellom to eller flere harddisker\slash |
| 362 |
partisjoner |
| 363 |
\item \texttt{raidz1} (RAID~5, enkel paritet) over tre eller flere |
| 364 |
harddisker\slash partisjoner |
| 365 |
\item \texttt{raidz2} (RAID~6, dobbel paritet) over fire eller |
| 366 |
flere harddisker\slash partisjoner |
| 367 |
\item \texttt{raidz3} («RAID~7», trippel paritet) over fem eller |
| 368 |
flere harddisker\slash partisjoner |
| 369 |
\end{enumerate} |
| 370 |
\item Visse kombinasjoner av det overstående er også mulig |
| 371 |
\item Filsystemet blir opprettet samtidig med poolen |
| 372 |
\begin{itemize}[<+->] |
| 373 |
\item Nye filsystemer kan opprettes i et hierarki |
| 374 |
\end{itemize} |
| 375 |
\end{itemize} |
| 376 |
\end{frame} |
| 377 |
|
| 378 |
\section{Et eksempel på en pool} |
| 379 |
\begin{frame}[fragile]%[allowframebreaks] |
| 380 |
\frametitle{Et eksempel på en pool} |
| 381 |
\pause |
| 382 |
\begin{multicols}{2} |
| 383 |
\begin{Verbatim}[commandchars=\\\{\},fontsize=\tiny] |
| 384 |
trond@enterprise:~>\Alert{3|handout:0}{zpool status enterprise_zdata} |
| 385 |
pool: \Alert{4,7|handout:0}{enterprise_zdata} |
| 386 |
state: \Alert{7|handout:0}{ONLINE} |
| 387 |
scan: \Alert{10|handout:0}{scrub repaired 0 in 2h15m with \Alert{11|handout:0}{0 errors} on Wed Jan 1 07:18:51 2014} |
| 388 |
config: |
| 389 |
|
| 390 |
NAME STATE READ WRITE CKSUM |
| 391 |
\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} |
| 392 |
\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} |
| 393 |
\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} |
| 394 |
\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} |
| 395 |
\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} |
| 396 |
|
| 397 |
\Alert{11|handout:0}{errors: No known data errors} |
| 398 |
trond@enterprise:~>\Alert{11|handout:0}{zfs get creation enterprise_zdata} |
| 399 |
NAME PROPERTY VALUE SOURCE |
| 400 |
enterprise_zdata creation \Alert{11|handout:0}{Sun Jan 8 14:14 2012} - |
| 401 |
\end{Verbatim} |
| 402 |
|
| 403 |
\pause |
| 404 |
|
| 405 |
\small |
| 406 |
\begin{itemize}[<+->] |
| 407 |
\item Kommando for å vise |
| 408 |
status%: \texttt{zpool status enterprise\_zdata} |
| 409 |
\item Poolen heter \texttt{enterprise\_zdata} |
| 410 |
\item Består av én «vdev» («virtual device»), \texttt{raidz1}, |
| 411 |
striping med enkel paritet |
| 412 |
\item Medlemmene er de tre harddiskene \texttt{ada2}, \texttt{ada3} |
| 413 |
og \texttt{ada4} |
| 414 |
\item Poolen har det bra og er \texttt{ONLINE} |
| 415 |
\item Det samme gjelder for vdev-en og dens tre medlemmer |
| 416 |
\item «Null hull» i telleverkene |
| 417 |
\item Siste skrubbing avsluttet 1.~januar 2014, |
| 418 |
kl.~07:18:51%, etter omlag 2 timer og 15 minutter med gjennomlesing |
| 419 |
\item Ingen feil registrert siden 8.~januar 2012, kl.~14:14 (har |
| 420 |
aldri kjørt \texttt{zpool clear}) |
| 421 |
\end{itemize} |
| 422 |
\end{multicols} |
| 423 |
\end{frame} |
| 424 |
|
| 425 |
\section{Et eksempel på filsystemer i ZFS} |
| 426 |
\begin{frame}[fragile]%[allowframebreaks] |
| 427 |
\frametitle{Et eksempel på filsystemer i ZFS} |
| 428 |
\pause |
| 429 |
|
| 430 |
\begin{Verbatim}[commandchars=\\\{\},fontsize=\tiny] |
| 431 |
trond@enterprise:~>zfs list -r enterprise_zroot |
| 432 |
NAME USED AVAIL REFER MOUNTPOINT |
| 433 |
enterprise_zroot 35,0G 406G 144K legacy |
| 434 |
enterprise_zroot/ROOT 3,47G 413G 144K legacy |
| 435 |
enterprise_zroot/ROOT/20131126-r258614 1,43G 413G 1,43G legacy |
| 436 |
enterprise_zroot/ROOT/20131207-r259060 1,02G 413G 1,02G legacy |
| 437 |
enterprise_zroot/ROOT/20140103-r260223 1,02G 413G 1,02G legacy |
| 438 |
enterprise_zroot/do-not-destroy 144K 407G 144K legacy |
| 439 |
enterprise_zroot/media 208K 406G 208K /media |
| 440 |
enterprise_zroot/nfs 152K 406G 152K /nfs |
| 441 |
enterprise_zroot/tmp 6,87M 9,99G 6,87M /tmp |
| 442 |
enterprise_zroot/usr 17,5G 406G 144K /usr |
| 443 |
enterprise_zroot/usr/compat 168K 406G 168K /usr/compat |
| 444 |
enterprise_zroot/usr/local 2,63G 406G 2,53G /usr/local |
| 445 |
enterprise_zroot/usr/local/certs 220K 406G 220K /usr/local/certs |
| 446 |
enterprise_zroot/usr/local/etc 105M 406G 101M /usr/local/etc |
| 447 |
enterprise_zroot/usr/local/etc/namedb 144K 406G 144K /usr/local/etc/namedb |
| 448 |
enterprise_zroot/usr/local/etc/shellkonfig3 3,63M 406G 320K /usr/local/etc/shellkonfig3 |
| 449 |
enterprise_zroot/usr/obj 4,63G 406G 4,63G /usr/obj |
| 450 |
enterprise_zroot/usr/packages 472M 406G 472M /usr/packages |
| 451 |
enterprise_zroot/usr/ports 8,99G 406G 1,54G /usr/ports |
| 452 |
enterprise_zroot/usr/ports/distfiles 3,71G 406G 3,71G /usr/ports/distfiles |
| 453 |
enterprise_zroot/usr/ports/local 288K 406G 288K /usr/ports/local |
| 454 |
enterprise_zroot/usr/ports/packages 3,74G 406G 3,74G /usr/ports/packages |
| 455 |
enterprise_zroot/usr/ports/workdirs 336K 406G 336K /usr/ports/workdirs |
| 456 |
enterprise_zroot/usr/src 826M 406G 826M /usr/src |
| 457 |
enterprise_zroot/var 6,38G 406G 10,1M /var |
| 458 |
enterprise_zroot/var/crash 1,19G 406G 1,19G /var/crash |
| 459 |
enterprise_zroot/var/db 70,4M 406G 23,8M /var/db |
| 460 |
enterprise_zroot/var/db/darkstat 512K 406G 512K /var/db/darkstat |
| 461 |
enterprise_zroot/var/db/pkg 25,1M 406G 25,1M /var/db/pkg |
| 462 |
enterprise_zroot/var/db/ports 8,18M 406G 8,18M /var/db/ports |
| 463 |
enterprise_zroot/var/db/sup 12,8M 406G 12,8M /var/db/sup |
| 464 |
enterprise_zroot/var/empty 144K 406G 144K /var/empty |
| 465 |
enterprise_zroot/var/log 733M 406G 733M /var/log |
| 466 |
enterprise_zroot/var/mail 3,68M 406G 328K /var/mail |
| 467 |
enterprise_zroot/var/named 392K 406G 392K /var/named |
| 468 |
enterprise_zroot/var/run 332K 406G 332K /var/run |
| 469 |
enterprise_zroot/var/spool 4,39G 406G 2,13M /var/spool |
| 470 |
enterprise_zroot/var/spool/cvsup 4,39G 406G 4,39G /var/spool/cvsup |
| 471 |
enterprise_zroot/var/tmp 1,49M 10,0G 1,49M /var/tmp |
| 472 |
enterprise_zroot/var/unbound 144K 406G 144K /var/unbound |
| 473 |
\end{Verbatim} |
| 474 |
\end{frame} |
| 475 |
|
| 476 |
\section{Et annet eksempel på filsystemer i ZFS} |
| 477 |
\begin{frame}[fragile]%[allowframebreaks] |
| 478 |
\frametitle{Et annet eksempel på filsystemer i ZFS} |
| 479 |
\pause |
| 480 |
|
| 481 |
\begin{Verbatim}[commandchars=\\\{\},fontsize=\tiny] |
| 482 |
trond@enterprise:~>zfs list -r enterprise_zdata |
| 483 |
NAME USED AVAIL REFER MOUNTPOINT |
| 484 |
enterprise_zdata 326G 586G 224K legacy |
| 485 |
enterprise_zdata/do-not-destroy 192K 587G 192K legacy |
| 486 |
enterprise_zdata/home 315G 586G 442K /home |
| 487 |
enterprise_zdata/home/trond 291G 586G 269M /home/trond |
| 488 |
enterprise_zdata/home/trond/arbeid 15,8M 586G 15,8M /home/trond/arbeid |
| 489 |
enterprise_zdata/home/trond/bzrarbeid 343M 586G 343M /home/trond/bzrarbeid |
| 490 |
enterprise_zdata/home/trond/c 5,10M 586G 5,10M /home/trond/c |
| 491 |
enterprise_zdata/home/trond/cvsroot 655K 586G 655K /home/trond/cvsroot |
| 492 |
enterprise_zdata/home/trond/download 3,92G 586G 3,92G /home/trond/download |
| 493 |
enterprise_zdata/home/trond/fra-defiant 35,8G 586G 35,8G /home/trond/fra-defiant |
| 494 |
enterprise_zdata/home/trond/fra-mentor 281M 586G 281M /home/trond/fra-mentor |
| 495 |
enterprise_zdata/home/trond/fra-sovereign 104G 586G 104G /home/trond/fra-sovereign |
| 496 |
enterprise_zdata/home/trond/gitarbeid 4,46G 586G 4,46G /home/trond/gitarbeid |
| 497 |
enterprise_zdata/home/trond/hgarbeid 464M 586G 464M /home/trond/hgarbeid |
| 498 |
enterprise_zdata/home/trond/iptraf 4,37M 586G 4,37M /home/trond/iptraf |
| 499 |
enterprise_zdata/home/trond/knuth 27,0M 586G 27,0M /home/trond/knuth |
| 500 |
enterprise_zdata/home/trond/mail 284M 586G 224M /home/trond/mail |
| 501 |
enterprise_zdata/home/trond/public_html 1,00G 586G 1,00G /home/trond/public_html |
| 502 |
enterprise_zdata/home/trond/rfc 2,29G 586G 2,29G /home/trond/rfc |
| 503 |
enterprise_zdata/home/trond/steam 122G 586G 122G /home/trond/steam |
| 504 |
enterprise_zdata/home/trond/svnarbeid 12,4G 586G 12,4G /home/trond/svnarbeid |
| 505 |
enterprise_zdata/home/trond/svnroot 192K 586G 192K /home/trond/svnroot |
| 506 |
enterprise_zdata/home/trond/svnup 2,95G 586G 2,95G /home/trond/svnup |
| 507 |
enterprise_zdata/home/trond/tmp 212M 586G 212M /home/trond/tmp |
| 508 |
\end{Verbatim} |
| 509 |
\end{frame} |
| 510 |
|
| 511 |
\section{Hva er grensene til ZFS?} |
| 512 |
\begin{frame}%[allowframebreaks] |
| 513 |
\frametitle{Hva er grensene til ZFS?} |
| 514 |
\pause |
| 515 |
\begin{itemize}[<+->] |
| 516 |
\item ZFS er stort sett grenseløs |
| 517 |
\begin{itemize}[<+->] |
| 518 |
\item 128-bit diskadresser |
| 519 |
\item Maks.\ \alert<9->{$2^{48}$} poster i hver katalog |
| 520 |
\item Maks.\ $2^{64}$ bytes (16~EiB, 16~exbibytes) for hver fil |
| 521 |
\item Maks.\ $2^{64}$ bytes for hvert attributt |
| 522 |
\item Maks.\ $2^{78}$ bytes (256~ZiB, 256~zebibytes) i hver pool |
| 523 |
\item Maks.\ $2^{56}$ attributter for hver fil (egentlig begrenset |
| 524 |
til \alert<9->{$2^{48}$} attributter) |
| 525 |
\pause |
| 526 |
\item Maks.\ $2^{64}$ enheter tilknyttet en gitt pool |
| 527 |
\item Maks.\ $2^{64}$ pooler i et og samme system |
| 528 |
\item Maks.\ $2^{64}$ filsystemer i samme pool |
| 529 |
\item Ref.: \texttt{\url{http://en.wikipedia.org/wiki/ZFS}} |
| 530 |
\end{itemize} |
| 531 |
\item Vis meg det systemet som klarer å sprenge noen av disse |
| 532 |
grensene! |
| 533 |
\end{itemize} |
| 534 |
\end{frame} |
| 535 |
|
| 536 |
\section{Hvordan virker ZFS?} |
| 537 |
\begin{frame}%[allowframebreaks] |
| 538 |
\frametitle{Hvordan virker ZFS?} |
| 539 |
\pause |
| 540 |
\begin{itemize}[<+->] |
| 541 |
\item ZFS unngår RAID~5-skrivehullet til eldre RAID-kontrollere som |
| 542 |
\begin{enumerate}[<+->] |
| 543 |
\item Skriver nye data til de samme datablokkene som tidligere |
| 544 |
\item Leser gamle, urørte data fra de samme datablokkene i samme stripe |
| 545 |
\item Regner ut ny paritet for datablokkene i samme stripe |
| 546 |
\item Skriver oppdatert paritet til de samme paritetsblokkene som |
| 547 |
tidligere |
| 548 |
\begin{itemize}[<+->] |
| 549 |
\item Hva skjer \textit{nå\/} og \textit{senere\/} hvis du får |
| 550 |
strømbrudd mellom punktene 1 og 4? |
| 551 |
\item Har diskkontrolleren batteribeskyttet minne? |
| 552 |
\end{itemize} |
| 553 |
\end{enumerate} |
| 554 |
\end{itemize} |
| 555 |
\end{frame} |
| 556 |
|
| 557 |
\begin{frame}%[allowframebreaks] |
| 558 |
\frametitle{Hvordan virker ZFS?} |
| 559 |
%\pause |
| 560 |
\begin{itemize}[<+->] |
| 561 |
\item ZFS skriver komplette striper; data og paritet samtidig |
| 562 |
\item ZFS bruker «copy-on-write»; skriver nye data til ledige |
| 563 |
diskblokker |
| 564 |
\item Endringer som hører sammen, samles i transaksjonsgrupper («txg») |
| 565 |
\end{itemize} |
| 566 |
\end{frame} |
| 567 |
|
| 568 |
\begin{frame}%[allowframebreaks] |
| 569 |
\frametitle{Hvordan virker ZFS?} |
| 570 |
%\pause |
| 571 |
\begin{itemize}[<+->] |
| 572 |
\item Sjekksummer brukes for alt som blir lagret |
| 573 |
\begin{itemize}[<+->] |
| 574 |
\item ZFS kontrollerer at leste data er de samme som ble skrevet |
| 575 |
\item Oppdages avvik, leter ZFS etter alternativer |
| 576 |
\item Finnes alternativer, enten speilkopier eller paritet, så |
| 577 |
\begin{enumerate}[<+->] |
| 578 |
\item Leveres korrekte data til applikasjonen, og |
| 579 |
\item Avviket korrigeres automatisk på den syke disken («resilver») |
| 580 |
\end{enumerate} |
| 581 |
\item Finnes ingen alternativer, så må filene restaureres fra |
| 582 |
backup |
| 583 |
\end{itemize} |
| 584 |
\end{itemize} |
| 585 |
\end{frame} |
| 586 |
|
| 587 |
\section{ZFS og RAID-kontrollere} |
| 588 |
\begin{frame}%[allowframebreaks] |
| 589 |
\frametitle{ZFS og RAID-kontrollere} |
| 590 |
\pause |
| 591 |
\begin{itemize}[<+->] |
| 592 |
\item \alert{Ikke} bruk ZFS sammen med RAID-kontrollere! |
| 593 |
\item RAID-kontrolleren kan i verste fall motarbeide ZFS |
| 594 |
\begin{itemize}[<+->] |
| 595 |
\item RAID-kontrolleren kan finne på å |
| 596 |
\begin{itemize}[<+->] |
| 597 |
\item Stokke om på skriverekkefølgen |
| 598 |
\item Utsette skriving av nye data |
| 599 |
\end{itemize} |
| 600 |
\item Harddiskene kan også oppføre seg som skissert over |
| 601 |
\item Har du skifta batteriet i RAID-kontrolleren din? |
| 602 |
\end{itemize} |
| 603 |
\item Sett RAID-kontrolleren i JBOD-modus, eller |
| 604 |
\item La hver harddisk være sitt enslige RAID~0-volum |
| 605 |
\end{itemize} |
| 606 |
\end{frame} |
| 607 |
|
| 608 |
\section{Hvor kommer ZFS fra?} |
| 609 |
\begin{frame}%[allowframebreaks] |
| 610 |
\frametitle{Hvor kommer ZFS fra?} |
| 611 |
\pause |
| 612 |
\begin{itemize}[<+->] |
| 613 |
\item Utviklet av Jeffrey Bonwick, Matthew Ahrens og flere kollegaer |
| 614 |
ved Sun Microsystems, Inc. |
| 615 |
\item Arbeidet begynte i 2001 og første prototyp ble ferdig 31.\ |
| 616 |
oktober 2001 (halloween) |
| 617 |
\item ZFS $\to$ Solaris, oktober 2005 |
| 618 |
\item ZFS er lisensiert etter «Common Development and Distribution |
| 619 |
License» (CDDL) |
| 620 |
\item ZFS $\to$ OpenSolaris, november 2005 |
| 621 |
\item ZFS $\to$ FreeBSD, april 2007 |
| 622 |
\item Linux' GPL~v2-lisens kompliserer import av ZFS |
| 623 |
\begin{itemize}[<+->] |
| 624 |
\item ZFS i Linux gjennom FUSE gjenstår som en (treg) mulighet |
| 625 |
\item Brian Behlendorf ved Lawrence Livermore National Laboratory |
| 626 |
(LLNL) har laget «Native ZFS for\slash on Linux» |
| 627 |
\end{itemize} |
| 628 |
\item ZFS var tilgjengelig i Mac OS~X 10.5, bare read-only, men har |
| 629 |
vært tilbaketrukket siden oktober 2009 |
| 630 |
\item Noen Mac OS~X-entusiaster har laget sine egne ZFS-varianter |
| 631 |
\item Andre OS med ZFS-støtte: OpenIndiana, FreeNAS, PC-BSD, |
| 632 |
GNU/kFreeBSD og NetBSD |
| 633 |
\end{itemize} |
| 634 |
\end{frame} |
| 635 |
|
| 636 |
\section{Versjonsnummer i ZFS} |
| 637 |
\begin{frame}%[allowframebreaks] |
| 638 |
\frametitle{Versjonsnummer i ZFS} |
| 639 |
\pause |
| 640 |
\begin{itemize}[<+->] |
| 641 |
\item Pool-versjonene 1--28 og filsystem-versjonene 1--5 er |
| 642 |
tilgjengelig gjennom OpenSolaris og illumos |
| 643 |
\item Pool-versjonene 29-34 og filsystem-versjon 6 er bare |
| 644 |
tilgjengelig i Solaris 11 (Express) |
| 645 |
\item OpenSolaris har gått videre til feature-flags og pool-versjon |
| 646 |
1000 |
| 647 |
\item illumos har gått videre til feature-flags og pool-versjon 5000 |
| 648 |
\item De fleste OS-er utenom Solaris, samarbeider om |
| 649 |
videreutviklingen av illumos-varianten |
| 650 |
\item Listene på de neste slidene er kopiert fra |
| 651 |
\texttt{\url{http://en.wikipedia.org/wiki/ZFS}} |
| 652 |
\end{itemize} |
| 653 |
\end{frame} |
| 654 |
|
| 655 |
\subsection{Pool-versjonsnummer} |
| 656 |
\begin{frame}[allowframebreaks] |
| 657 |
\frametitle{Versjonsnummer i ZFS} |
| 658 |
\framesubtitle{Pool-versjonsnummer} |
| 659 |
%\pause |
| 660 |
\begin{enumerate}%[<+->] |
| 661 |
\item First release |
| 662 |
\item Ditto Blocks |
| 663 |
\item Hot spares, double-parity RAID-Z (\texttt{raidz2}), improved |
| 664 |
RAID-Z accounting |
| 665 |
\item zpool history |
| 666 |
\item gzip compression for ZFS datasets |
| 667 |
\item "\texttt{bootfs}"\ pool property |
| 668 |
\item ZIL: adds the capability to specify a separate Intent Log |
| 669 |
device or devices |
| 670 |
\item ability to delegate \texttt{zfs}(1M) administrative tasks to |
| 671 |
ordinary users |
| 672 |
\item CIFS server support, dataset quotas |
| 673 |
\item Devices can be added to a storage pool as "cache devices" |
| 674 |
\item Improved \texttt{zpool scrub}/resilver performance |
| 675 |
\item Snapshot properties |
| 676 |
\item Properties: \texttt{usedbysnapshots}, \texttt{usedbychildren}, |
| 677 |
\texttt{usedbyrefreservation}, and \texttt{usedbydataset} |
| 678 |
\item passthrough-x aclinherit property support |
| 679 |
\item Properties: \texttt{userquota}, \texttt{groupquota}, |
| 680 |
\texttt{userused} and \texttt{groupused}; also required FS v4 |
| 681 |
\item STMF property support |
| 682 |
\item triple-parity RAID-Z |
| 683 |
\item ZFS snapshot holds |
| 684 |
\item ZFS log device removal |
| 685 |
\item zle compression algorithm that is needed to support the ZFS |
| 686 |
deduplication properties in ZFS pool version 21, which were |
| 687 |
released concurrently |
| 688 |
\item Deduplication |
| 689 |
\item \texttt{zfs receive} properties |
| 690 |
\item slim ZIL |
| 691 |
\item System attributes. Symlinks now their own object type. Also |
| 692 |
requires FS v5. |
| 693 |
\item Improved pool scrubbing and resilvering statistics |
| 694 |
\item Improved snapshot deletion performance |
| 695 |
\item Improved snapshot creation performance (particularly recursive |
| 696 |
snapshots) |
| 697 |
\item Multiple virtual device replacements |
| 698 |
\item RAID-Z/mirror hybrid allocator |
| 699 |
\item ZFS encryption |
| 700 |
\item Improved '\texttt{zfs list}' performance |
| 701 |
\item One MB block support |
| 702 |
\item Improved share support |
| 703 |
\item Sharing with inheritance |
| 704 |
\end{enumerate} |
| 705 |
\end{frame} |
| 706 |
|
| 707 |
\subsection{Filsystem-versjonsnummer} |
| 708 |
\begin{frame}[allowframebreaks] |
| 709 |
\frametitle{Versjonsnummer i ZFS} |
| 710 |
\framesubtitle{Filsystem-versjonsnummer} |
| 711 |
%\pause |
| 712 |
\begin{enumerate}%[<+->] |
| 713 |
\item First release |
| 714 |
\item Enhanced directory entries. In particular, directory entries |
| 715 |
now store the object type. For example, file, directory, named |
| 716 |
pipe, and so on, in addition to the object number. |
| 717 |
\item Support for sharing ZFS file systems over SMB. Case |
| 718 |
insensitivity support. System attribute support. Integrated |
| 719 |
anti-virus support. |
| 720 |
\item Properties: userquota, groupquota, userused and groupused |
| 721 |
\item System attributes; symlinks now their own object type |
| 722 |
\item Multilevel file system support |
| 723 |
\end{enumerate} |
| 724 |
\end{frame} |
| 725 |
|
| 726 |
\section{Fremtiden for ZFS?} |
| 727 |
\begin{frame}%[allowframebreaks] |
| 728 |
\frametitle{Fremtiden for ZFS?} |
| 729 |
\pause |
| 730 |
\begin{itemize}[<+->] |
| 731 |
\item Oracle kjøpte opp Sun Microsystems, Inc., 27.~januar 2010 |
| 732 |
\item Oracle gjorde OpenSolaris om til «ClosedSolaris» i mai 2010 |
| 733 |
\item Hele ZFS-teamet hos Oracle sa opp på dagen, omtrent 90 dager |
| 734 |
etter denne avgjørelsen ifølge Bryan Cantrill |
| 735 |
\item ZFS lever videre hos |
| 736 |
\begin{itemize}[<+->] |
| 737 |
\item Oracle Solaris |
| 738 |
\item illumos\slash OpenZFS |
| 739 |
\begin{itemize}[<+->] |
| 740 |
\item OpenIndiana |
| 741 |
\item FreeBSD |
| 742 |
\item Delphix |
| 743 |
\item iXsystems |
| 744 |
\item Joyent |
| 745 |
\item NetBSD |
| 746 |
\item Nexenta |
| 747 |
\item Linux |
| 748 |
\end{itemize} |
| 749 |
\end{itemize} |
| 750 |
\end{itemize} |
| 751 |
\end{frame} |
| 752 |
|
| 753 |
%\subsection{Underemne 1a} |
| 754 |
%\begin{frame}%[allowframebreaks] |
| 755 |
% \frametitle{Emne 1} |
| 756 |
% \framesubtitle{Underemne 1a} |
| 757 |
% \pause |
| 758 |
% \begin{itemize}[<+->] |
| 759 |
% \item Bla, bla, bla |
| 760 |
% \end{itemize} |
| 761 |
%\end{frame} |
| 762 |
|
| 763 |
\part{ZFS!} |
| 764 |
|
| 765 |
\begin{frame} |
| 766 |
\partpage |
| 767 |
\end{frame} |
| 768 |
|
| 769 |
\section*{Oversikt over del~3: ZFS!} |
| 770 |
\begin{frame}%[allowframebreaks] |
| 771 |
\frametitle{Oversikt over del~3: ZFS!} |
| 772 |
\tableofcontents%[pausesections] |
| 773 |
\end{frame} |
| 774 |
|
| 775 |
\section{Administrasjon av ZFS} |
| 776 |
\begin{frame}%[allowframebreaks] |
| 777 |
\frametitle{Administrasjon av ZFS} |
| 778 |
\pause |
| 779 |
\begin{itemize}[<+->] |
| 780 |
\item To kommandoer (med underkommandoer) |
| 781 |
\begin{enumerate}[<+->] |
| 782 |
\item \texttt{zpool} |
| 783 |
\begin{itemize}[<+->] |
| 784 |
\item Administrasjon av lagringspoolene |
| 785 |
\end{itemize} |
| 786 |
\item \texttt{zfs} |
| 787 |
\begin{itemize}[<+->] |
| 788 |
\item Administrasjon av filsystemer, zvolumer, snapshots, |
| 789 |
kloner, m.m. |
| 790 |
\end{itemize} |
| 791 |
\end{enumerate} |
| 792 |
\item Det finnes en tredje kommando: \texttt{zdb} |
| 793 |
\begin{itemize}[<+->] |
| 794 |
\item Brukes for å avlese de indre detaljene til ZFS |
| 795 |
\item Bør bare brukes av eksperter \dots |
| 796 |
\item \dots\ eller av de nysgjerrige \dots |
| 797 |
\end{itemize} |
| 798 |
\end{itemize} |
| 799 |
\end{frame} |
| 800 |
|
| 801 |
\subsection{\texttt{zpool}} |
| 802 |
\begin{frame}[allowframebreaks] |
| 803 |
\frametitle{Administrasjon av ZFS} |
| 804 |
\framesubtitle{\texttt{zpool}-kommandoer} |
| 805 |
%\pause |
| 806 |
\begin{itemize}%[<+->] |
| 807 |
\item \texttt{zpool add} |
| 808 |
\begin{itemize}%[<+->] |
| 809 |
\item Brukes for å innføre en helt ny vdev-gruppe med |
| 810 |
harddisker\slash partisjoner |
| 811 |
\end{itemize} |
| 812 |
\item \texttt{zpool attach} |
| 813 |
\begin{itemize}%[<+->] |
| 814 |
\item Brukes for å tilføye en harddisk\slash partisjon til en |
| 815 |
eksisterende vdev-gruppe |
| 816 |
\end{itemize} |
| 817 |
\item \texttt{zpool clear} |
| 818 |
\begin{itemize}%[<+->] |
| 819 |
\item Brukes for å nullstille tellerne for lese-, skrive- og |
| 820 |
sjekksumfeil |
| 821 |
\end{itemize} |
| 822 |
\item \texttt{zpool create} |
| 823 |
\begin{itemize}%[<+->] |
| 824 |
\item Brukes for å opprette pooler |
| 825 |
\end{itemize} |
| 826 |
\item \texttt{zpool destroy} |
| 827 |
\begin{itemize}%[<+->] |
| 828 |
\item Brukes for å ødelegge pooler |
| 829 |
\end{itemize} |
| 830 |
\item \texttt{zpool detach} |
| 831 |
\begin{itemize}%[<+->] |
| 832 |
\item Brukes for å fjerne en harddisk\slash partisjon fra en |
| 833 |
vdev-gruppe |
| 834 |
\end{itemize} |
| 835 |
\item \texttt{zpool export} |
| 836 |
\begin{itemize}%[<+->] |
| 837 |
\item Brukes for å eksportere en pool, for senere import i samme |
| 838 |
eller et annet system |
| 839 |
\end{itemize} |
| 840 |
\item \texttt{zpool get} |
| 841 |
\begin{itemize}%[<+->] |
| 842 |
\item Brukes for å vise verdien til alle eller utvalgte |
| 843 |
\texttt{zpool}-egenskaper |
| 844 |
\end{itemize} |
| 845 |
\item \texttt{zpool history} |
| 846 |
\begin{itemize}%[<+->] |
| 847 |
\item Brukes for å vise historikken til poolen |
| 848 |
\end{itemize} |
| 849 |
\item \texttt{zpool import} |
| 850 |
\begin{itemize}%[<+->] |
| 851 |
\item Brukes for å importere en pool eller å vise en liste over |
| 852 |
pooler som kan importeres |
| 853 |
\end{itemize} |
| 854 |
\item \texttt{zpool iostat} |
| 855 |
\begin{itemize}%[<+->] |
| 856 |
\item Brukes for å vise I/O-statistikk i sann tid |
| 857 |
\end{itemize} |
| 858 |
\item \texttt{zpool labelclear} |
| 859 |
\begin{itemize}%[<+->] |
| 860 |
\item Brukes for å fjerne alle spor av ZFS' disklabels |
| 861 |
\end{itemize} |
| 862 |
\item \texttt{zpool list} |
| 863 |
\begin{itemize}%[<+->] |
| 864 |
\item Brukes for å liste opp importerte pooler |
| 865 |
\end{itemize} |
| 866 |
\item \texttt{zpool offline} |
| 867 |
\begin{itemize}%[<+->] |
| 868 |
\item Brukes for å deaktivere en harddisk\slash partisjon |
| 869 |
\end{itemize} |
| 870 |
\item \texttt{zpool online} |
| 871 |
\begin{itemize}%[<+->] |
| 872 |
\item Brukes for (re)aktivere en harddisk\slash partisjon |
| 873 |
\end{itemize} |
| 874 |
\item \texttt{zpool reguid} |
| 875 |
\begin{itemize}%[<+->] |
| 876 |
\item Brukes for å tildele en ny, tilfeldig GUID til en bestemt |
| 877 |
pool |
| 878 |
\end{itemize} |
| 879 |
\item \texttt{zpool remove} |
| 880 |
\begin{itemize}%[<+->] |
| 881 |
\item Brukes for å fjerne en harddisk\slash partisjon |
| 882 |
\end{itemize} |
| 883 |
\item \texttt{zpool reopen} |
| 884 |
\begin{itemize}%[<+->] |
| 885 |
\item Brukes for \dots |
| 886 |
\end{itemize} |
| 887 |
\item \texttt{zpool replace} |
| 888 |
\begin{itemize}%[<+->] |
| 889 |
\item Brukes for å fortelle ZFS at en harddisk\slash partisjon har |
| 890 |
blitt skiftet ut |
| 891 |
\end{itemize} |
| 892 |
\item \texttt{zpool scrub} |
| 893 |
\begin{itemize}%[<+->] |
| 894 |
\item Brukes for å lese gjennom alt aktivt innhold, og sjekke |
| 895 |
samsvaret mellom lagret data og lagrete sjekksummer |
| 896 |
\end{itemize} |
| 897 |
\item \texttt{zpool set} |
| 898 |
\begin{itemize}%[<+->] |
| 899 |
\item Brukes for å endre \texttt{zpool}-egenskapene |
| 900 |
\end{itemize} |
| 901 |
\item \texttt{zpool split} |
| 902 |
\begin{itemize}%[<+->] |
| 903 |
\item Brukes for å skille et speilmedlem fra resten av gruppa |
| 904 |
\end{itemize} |
| 905 |
\item \texttt{zpool status} |
| 906 |
\begin{itemize}%[<+->] |
| 907 |
\item Brukes for å vise status til poolen, dens medlemmer og deres |
| 908 |
status, og telleverkene for lese-, skrive og sjekksumfeil |
| 909 |
\end{itemize} |
| 910 |
\item \texttt{zpool upgrade} |
| 911 |
\begin{itemize}%[<+->] |
| 912 |
\item Brukes for å oppgradere poolene til nye formater, vise |
| 913 |
hvilke pooler som er utdaterte, og hvilke versjoner som er |
| 914 |
tilgjengelig i systemet |
| 915 |
\end{itemize} |
| 916 |
\end{itemize} |
| 917 |
\end{frame} |
| 918 |
|
| 919 |
\subsection{\texttt{zfs}} |
| 920 |
\begin{frame}[allowframebreaks] |
| 921 |
\frametitle{Administrasjon av ZFS} |
| 922 |
\framesubtitle{\texttt{zfs}-kommandoer} |
| 923 |
%\pause |
| 924 |
\begin{itemize}%[<+->] |
| 925 |
\item \texttt{zfs allow} |
| 926 |
\begin{itemize}%[<+->] |
| 927 |
\item |
| 928 |
\end{itemize} |
| 929 |
\item \texttt{zfs bookmark} |
| 930 |
\begin{itemize}%[<+->] |
| 931 |
\item |
| 932 |
\end{itemize} |
| 933 |
\item \texttt{zfs clone} |
| 934 |
\begin{itemize}%[<+->] |
| 935 |
\item |
| 936 |
\end{itemize} |
| 937 |
\item \texttt{zfs create} |
| 938 |
\begin{itemize}%[<+->] |
| 939 |
\item |
| 940 |
\end{itemize} |
| 941 |
\item \texttt{zfs destroy} |
| 942 |
\begin{itemize}%[<+->] |
| 943 |
\item |
| 944 |
\end{itemize} |
| 945 |
\item \texttt{zfs diff} |
| 946 |
\begin{itemize}%[<+->] |
| 947 |
\item |
| 948 |
\end{itemize} |
| 949 |
\item \texttt{zfs get} |
| 950 |
\begin{itemize}%[<+->] |
| 951 |
\item |
| 952 |
\end{itemize} |
| 953 |
\item \texttt{zfs groupspace} |
| 954 |
\begin{itemize}%[<+->] |
| 955 |
\item |
| 956 |
\end{itemize} |
| 957 |
\item \texttt{zfs holds} |
| 958 |
\begin{itemize}%[<+->] |
| 959 |
\item |
| 960 |
\end{itemize} |
| 961 |
\item \texttt{zfs hold} |
| 962 |
\begin{itemize}%[<+->] |
| 963 |
\item |
| 964 |
\end{itemize} |
| 965 |
\item \texttt{zfs inherit} |
| 966 |
\begin{itemize}%[<+->] |
| 967 |
\item |
| 968 |
\end{itemize} |
| 969 |
\item \texttt{zfs jail} |
| 970 |
\begin{itemize}%[<+->] |
| 971 |
\item |
| 972 |
\end{itemize} |
| 973 |
\item \texttt{zfs list} |
| 974 |
\begin{itemize}%[<+->] |
| 975 |
\item |
| 976 |
\end{itemize} |
| 977 |
\item \texttt{zfs mount} |
| 978 |
\begin{itemize}%[<+->] |
| 979 |
\item |
| 980 |
\end{itemize} |
| 981 |
\item \texttt{zfs promote} |
| 982 |
\begin{itemize}%[<+->] |
| 983 |
\item |
| 984 |
\end{itemize} |
| 985 |
\item \texttt{zfs receive} |
| 986 |
\begin{itemize}%[<+->] |
| 987 |
\item |
| 988 |
\end{itemize} |
| 989 |
\item \texttt{zfs release} |
| 990 |
\begin{itemize}%[<+->] |
| 991 |
\item |
| 992 |
\end{itemize} |
| 993 |
\item \texttt{zfs rename} |
| 994 |
\begin{itemize}%[<+->] |
| 995 |
\item |
| 996 |
\end{itemize} |
| 997 |
\item \texttt{zfs rollback} |
| 998 |
\begin{itemize}%[<+->] |
| 999 |
\item |
| 1000 |
\end{itemize} |
| 1001 |
\item \texttt{zfs send} |
| 1002 |
\begin{itemize}%[<+->] |
| 1003 |
\item |
| 1004 |
\end{itemize} |
| 1005 |
\item \texttt{zfs set} |
| 1006 |
\begin{itemize}%[<+->] |
| 1007 |
\item |
| 1008 |
\end{itemize} |
| 1009 |
\item \texttt{zfs share} |
| 1010 |
\begin{itemize}%[<+->] |
| 1011 |
\item |
| 1012 |
\end{itemize} |
| 1013 |
\item \texttt{zfs snapshot} |
| 1014 |
\begin{itemize}%[<+->] |
| 1015 |
\item |
| 1016 |
\end{itemize} |
| 1017 |
\item \texttt{zfs unallow} |
| 1018 |
\begin{itemize}%[<+->] |
| 1019 |
\item |
| 1020 |
\end{itemize} |
| 1021 |
\item \texttt{zfs unjail} |
| 1022 |
\begin{itemize}%[<+->] |
| 1023 |
\item |
| 1024 |
\end{itemize} |
| 1025 |
\item \texttt{zfs unmount} |
| 1026 |
\begin{itemize}%[<+->] |
| 1027 |
\item |
| 1028 |
\end{itemize} |
| 1029 |
\item \texttt{zfs unshare} |
| 1030 |
\begin{itemize}%[<+->] |
| 1031 |
\item |
| 1032 |
\end{itemize} |
| 1033 |
\item \texttt{zfs upgrade} |
| 1034 |
\begin{itemize}%[<+->] |
| 1035 |
\item |
| 1036 |
\end{itemize} |
| 1037 |
\item \texttt{zfs userspace} |
| 1038 |
\begin{itemize}%[<+->] |
| 1039 |
\item |
| 1040 |
\end{itemize} |
| 1041 |
\end{itemize} |
| 1042 |
\end{frame} |
| 1043 |
|
| 1044 |
\section{Oppretting av pooler} |
| 1045 |
\begin{frame}%[allowframebreaks] |
| 1046 |
\frametitle{Oppretting av pooler} |
| 1047 |
\pause |
| 1048 |
\begin{itemize}[<+->] |
| 1049 |
\item \texttt{zpool create [\textit{opsjoner}] |
| 1050 |
\textit{navn-på-pool\/} [\textit{organiseringstype}] |
| 1051 |
\textit{ingredienser\/} [\textit{organiseringstype |
| 1052 |
ingredienser}] ...} |
| 1053 |
\item Unngå å plassere mer enn 9 enheter i hver vdev |
| 1054 |
\item I stedet for å stripe en pool over 20 harddisker, vurdér å |
| 1055 |
speile to og to harddisker i 10 grupper |
| 1056 |
\end{itemize} |
| 1057 |
\end{frame} |
| 1058 |
|
| 1059 |
\subsection{Enkle pool-eksempler} |
| 1060 |
\begin{frame}%[allowframebreaks] |
| 1061 |
\frametitle{Oppretting av pooler} |
| 1062 |
\framesubtitle{Enkle pool-eksempler} |
| 1063 |
\pause |
| 1064 |
\begin{itemize}[<+->] |
| 1065 |
\item Singledisk: |
| 1066 |
\item \texttt{zpool create rpool da0} |
| 1067 |
\item RAID~0 over to disker: |
| 1068 |
\item \texttt{zpool create rpool da0 da1} |
| 1069 |
\item RAID~1 over to disker: |
| 1070 |
\item \texttt{zpool create rpool \alert{mirror} da0 da1} |
| 1071 |
\item RAID~5 over tre disker: |
| 1072 |
\item \texttt{zpool create rpool \alert{raidz1} da0 da1 da2} |
| 1073 |
\item RAID~6 over fire disker: |
| 1074 |
\item \texttt{zpool create rpool \alert{raidz2} da0 da1 da2 da3} |
| 1075 |
\item «RAID~7» over fem disker: |
| 1076 |
\item \texttt{zpool create rpool \alert{raidz3} da0 da1 da2 da3 da4} |
| 1077 |
\end{itemize} |
| 1078 |
\end{frame} |
| 1079 |
|
| 1080 |
\subsection{Avanserte pool-eksempler} |
| 1081 |
\begin{frame}%[allowframebreaks] |
| 1082 |
\frametitle{Oppretting av pooler} |
| 1083 |
\framesubtitle{Avanserte pool-eksempler} |
| 1084 |
\pause |
| 1085 |
\begin{itemize}[<+->] |
| 1086 |
\item RAID~\only<1-3|handout:0>{?}\only<4->{1+0 (3 vdevs á 2 disker)}: |
| 1087 |
\item \texttt{zpool create rpool \alert{mirror} da0 da1 |
| 1088 |
\alert{mirror} da2 da3 \alert{mirror} da4 da5} |
| 1089 |
\pause |
| 1090 |
\item RAID~\only<5-6|handout:0>{?}\only<7->{5+0 (2 vdevs á 3 disker)}: |
| 1091 |
\item \texttt{zpool create rpool \alert{raidz1} da0 da1 da2 |
| 1092 |
\alert{raidz1} da3 da4 da5} |
| 1093 |
\pause |
| 1094 |
\item RAID~\only<8-9|handout:0>{?}\only<10->{6+0 (2 vdevs á 4 disker)}: |
| 1095 |
\item \texttt{zpool create rpool \alert{raidz2} da0 da1 da2 da3 \alert{raidz2} da4 da5 da6 da7} |
| 1096 |
\pause |
| 1097 |
\item RAID~\only<11-12|handout:0>{?}\only<13->{1+5+0 (2 vdevs, 2 og 3 disker)}: |
| 1098 |
\item \texttt{zpool create rpool \alert{mirror} da0 da1 \alert{raidz1} da2 da3 da4} |
| 1099 |
\end{itemize} |
| 1100 |
\end{frame} |
| 1101 |
|
| 1102 |
\section{\texttt{zpool}-egenskaper} |
| 1103 |
\begin{frame}[allowframebreaks] |
| 1104 |
\frametitle{\texttt{zpool}-egenskaper} |
| 1105 |
%\pause |
| 1106 |
\begin{itemize}%[<+->] |
| 1107 |
\item \texttt{size} |
| 1108 |
\item \texttt{capacity} |
| 1109 |
\item \texttt{altroot} |
| 1110 |
\item \texttt{health} |
| 1111 |
\item \texttt{guid} |
| 1112 |
\item \texttt{version} |
| 1113 |
\item \texttt{bootfs} |
| 1114 |
\item \texttt{delegation} |
| 1115 |
\item \texttt{autoreplace} |
| 1116 |
\item \texttt{cachefile} |
| 1117 |
\item \texttt{failmode} |
| 1118 |
\item \texttt{listsnapshots} |
| 1119 |
\item \texttt{autoexpand} |
| 1120 |
\item \texttt{dedupditto} |
| 1121 |
\item \texttt{dedupratio} |
| 1122 |
\item \texttt{free} |
| 1123 |
\item \texttt{allocated} |
| 1124 |
\item \texttt{readonly} |
| 1125 |
\item \texttt{comment} |
| 1126 |
\item \texttt{expandsize} |
| 1127 |
\item \texttt{freeing} |
| 1128 |
\item \texttt{feature@async\_destroy} |
| 1129 |
\item \texttt{feature@empty\_bpobj} |
| 1130 |
\item \texttt{feature@lz4\_compress} |
| 1131 |
\item \texttt{feature@multi\_vdev\_crash\_dump} |
| 1132 |
\item \texttt{feature@spacemap\_histogram} |
| 1133 |
\item \texttt{feature@enabled\_txg} |
| 1134 |
\item \texttt{feature@hole\_birth} |
| 1135 |
\item \texttt{feature@extensible\_dataset} |
| 1136 |
\item \texttt{feature@bookmarks} |
| 1137 |
\end{itemize} |
| 1138 |
\end{frame} |
| 1139 |
|
| 1140 |
\section{\texttt{zfs}-egenskaper} |
| 1141 |
\begin{frame}[allowframebreaks] |
| 1142 |
\frametitle{\texttt{zfs}-egenskaper} |
| 1143 |
%\pause |
| 1144 |
\begin{itemize}%[<+->] |
| 1145 |
\item \texttt{type} |
| 1146 |
\item \texttt{creation} |
| 1147 |
\item \texttt{used} |
| 1148 |
\item \texttt{available} |
| 1149 |
\item \texttt{referenced} |
| 1150 |
\item \texttt{compressratio} |
| 1151 |
\item \texttt{mounted} |
| 1152 |
\item \texttt{quota} |
| 1153 |
\item \texttt{reservation} |
| 1154 |
\item \texttt{recordsize} |
| 1155 |
\item \texttt{mountpoint} |
| 1156 |
\item \texttt{sharenfs} |
| 1157 |
\item \texttt{checksum} |
| 1158 |
\item \texttt{compression} |
| 1159 |
\item \texttt{atime} |
| 1160 |
\item \texttt{devices} |
| 1161 |
\item \texttt{exec} |
| 1162 |
\item \texttt{setuid} |
| 1163 |
\item \texttt{readonly} |
| 1164 |
\item \texttt{jailed} |
| 1165 |
\item \texttt{snapdir} |
| 1166 |
\item \texttt{aclmode} |
| 1167 |
\item \texttt{aclinherit} |
| 1168 |
\item \texttt{canmount} |
| 1169 |
\item \texttt{xattr} |
| 1170 |
\item \texttt{copies} |
| 1171 |
\item \texttt{version} |
| 1172 |
\item \texttt{utf8only} |
| 1173 |
\item \texttt{normalization} |
| 1174 |
\item \texttt{casesensitivity} |
| 1175 |
\item \texttt{vscan} |
| 1176 |
\item \texttt{nbmand} |
| 1177 |
\item \texttt{sharesmb} |
| 1178 |
\item \texttt{refquota} |
| 1179 |
\item \texttt{refreservation} |
| 1180 |
\item \texttt{primarycache} |
| 1181 |
\item \texttt{secondarycache} |
| 1182 |
\item \texttt{usedbysnapshots} |
| 1183 |
\item \texttt{usedbydataset} |
| 1184 |
\item \texttt{usedbychildren} |
| 1185 |
\item \texttt{usedbyrefreservation} |
| 1186 |
\item \texttt{logbias} |
| 1187 |
\item \texttt{dedup} |
| 1188 |
\item \texttt{mlslabel} |
| 1189 |
\item \texttt{sync} |
| 1190 |
\item \texttt{refcompressratio} |
| 1191 |
\item \texttt{written} |
| 1192 |
\item \texttt{logicalused} |
| 1193 |
\item \texttt{logicalreferenced} |
| 1194 |
\end{itemize} |
| 1195 |
\end{frame} |
| 1196 |
|
| 1197 |
\part{Oppstartsmiljøer} |
| 1198 |
|
| 1199 |
\begin{frame} |
| 1200 |
\partpage |
| 1201 |
\end{frame} |
| 1202 |
|
| 1203 |
\section*{Oversikt over del~4: Oppstartsmiljøer} |
| 1204 |
\begin{frame}%[allowframebreaks] |
| 1205 |
\frametitle{Oversikt over del~4: Oppstartsmiljøer} |
| 1206 |
\tableofcontents%[pausesections] |
| 1207 |
\end{frame} |
| 1208 |
|
| 1209 |
\end{document} |
| 1210 |
|
| 1211 |
Local Variables: |
| 1212 |
TeX-PDF-mode:t |
| 1213 |
End: |