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: |