annotate slideshow.tex @ 0:4cff88ac3e44

import
author Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
date Sat, 12 Apr 2008 20:32:36 -0400
parents
children d4de13a2546e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
1 \documentclass{beamer}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
2
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
3 \usepackage{beamerthemeshadow}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
4
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
5 \title{XFS --- The Black Leather Jacket of filesystems}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
6 \author{Josef ``Jeff'' Sipek\\ $<$jeffpc@josefsipek.net$>$}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
7 \date{July 8, 2008}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
8
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
9 \begin{document}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
10 \frame{\titlepage}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
11
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
12 \AtBeginSection[]
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
13 {
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
14 \begin{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
15 \frametitle{Outline}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
16 \tableofcontents[currentsection]
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
17 \end{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
18 }
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
19
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
20 \section{History}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
21 \begin{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
22 \frametitle{History: Stoneage (1992)}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
23 \begin{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
24 \item Berkeley's FFS was state of the art
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
25 \item IRIX had EFS (FFS with extents)
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
26 \item Many limitations
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
27 \begin{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
28 \item Small file sizes (2 GB)
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
29 \item Small filesystem sizes (8GB)
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
30 \item Statically allocated metadata
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
31 \item Long recovery times
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
32 \item Slow operations on large directories
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
33 \item No extended attributes
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
34 \item No access control lists
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
35 \end{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
36 \end{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
37 \end{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
38
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
39 \begin{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
40 \frametitle{History: Enlightment (1993)}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
41 \begin{center}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
42 \includegraphics[width=0.8\textwidth]{sgi.eps}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
43 \end{center}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
44 \end{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
45
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
46 %
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
47 % Features
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
48 %
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
49 \section{Features}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
50 \begin{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
51 \frametitle{Features: Allocation}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
52 \begin{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
53 \item Delayed allocation
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
54 \begin{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
55 \item Allocate on flush
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
56 \item Write reserves disk space, decide where later
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
57 \end{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
58 \item Pre-allocation
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
59 \begin{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
60 \item Reserve space before it is written
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
61 \item Minimizes fragmentation
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
62 \end{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
63 \item Direct I/O support
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
64 \item Stripe aware allocator
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
65 \end{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
66 \end{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
67
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
68 \begin{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
69 \frametitle{Features: Inodes}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
70 \begin{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
71 \item Dynamically allocated in clusters
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
72 \item Inode size is mkfs option
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
73 \begin{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
74 \item 256 Byte (default) -- 4 kByte (max)
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
75 \end{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
76 \item Extended Attributes
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
77 \begin{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
78 \item name=value pairs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
79 \item Used by ACLs, Capabilities, SELinux, DMAPI
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
80 \end{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
81 \end{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
82 \end{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
83
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
84 \begin{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
85 \frametitle{Features: Other}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
86 \begin{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
87 \item B+ Trees
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
88 \item 64-bit
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
89 \item Variable block size (512 Bytes -- 64 kB)
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
90 \item Allocation Groups
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
91 \item Lots of utilities
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
92 \item Direct I/O
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
93 \item DMAPI
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
94 \item EA/ACL
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
95 \item online fs growth
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
96 \item amazingly fast
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
97 \end{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
98 \end{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
99
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
100 \begin{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
101 \frametitle{Why use it?}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
102 \begin{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
103 \item Stable, mature codebase
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
104 \begin{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
105 \item oldest journaling filesystem on Linux
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
106 \end{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
107 \item Very well performing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
108 \item DMAPI support
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
109 \item Good support for EAs / ACLs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
110 \end{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
111 \end{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
112
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
113 \begin{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
114 \frametitle{Why \emph{not} use it?}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
115 \begin{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
116 \item No data journaling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
117 \item Got time to waste
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
118 \end{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
119 \end{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
120
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
121 %
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
122 % Demos
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
123 %
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
124 \section{Demos}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
125 \begin{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
126 \frametitle{\texttt{\textbf{xfsdump}}}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
127 xfsdump ...
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
128 \end{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
129
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
130 \begin{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
131 \frametitle{\texttt{\textbf{xfsrestore}}}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
132 xfsrestore ...
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
133 \end{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
134
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
135 \begin{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
136 \frametitle{\texttt{\textbf{mkfs/mount}}}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
137 mkfs/mount
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
138 \end{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
139
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
140 \begin{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
141 \frametitle{\texttt{\textbf{xfs\_growfs}}}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
142 xfs\_growfs ...
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
143 \end{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
144
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
145 \begin{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
146 \frametitle{\texttt{\textbf{xfs\_freeze}}}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
147 freeze / unfreeze
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
148 \end{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
149
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
150 \begin{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
151 \frametitle{\texttt{\textbf{xfs\_check}} \& \texttt{\textbf{xfs\_repair}}}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
152 check / repair
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
153 \end{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
154
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
155 \begin{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
156 \frametitle{\texttt{\textbf{xfs\_io}}}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
157 xfs\_io ...
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
158 \end{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
159
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
160 \begin{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
161 \frametitle{\texttt{\textbf{xfs\_quota}}}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
162 xfs\_quota ...
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
163 \end{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
164
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
165 \begin{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
166 \frametitle{\texttt{\textbf{xfs\_admin}}}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
167 xfs\_admin ...
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
168 \end{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
169
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
170 \begin{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
171 \frametitle{\texttt{\textbf{xfs\_bmap}}}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
172 xfs\_bmap ...
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
173 \end{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
174 %
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
175 % Wrap-up
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
176 %
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
177 \section{}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
178 \begin{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
179 \frametitle{Questions?}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
180 \begin{center}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
181 \includegraphics[width=\textwidth]{xfs.eps}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
182 \end{center}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
183 \end{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
184
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
185 \begin{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
186 \frametitle{More info}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
187 \begin{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
188 \item \url{http://oss.sgi.com/projects/xfs/}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
189 \item \url{xfs@oss.sgi.com}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
190 \item \url{http://oss.sgi.com/projects/xfs/papers/ukuug2003.pdf}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
191 \end{itemize}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
192 \end{frame}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
193
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
194 \end{document}