# HG changeset patch # User Josef 'Jeff' Sipek # Date 1208046756 14400 # Node ID 4cff88ac3e44e77f45e8fdaec2868d5094bec2f9 import diff -r 000000000000 -r 4cff88ac3e44 Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Makefile Sat Apr 12 20:32:36 2008 -0400 @@ -0,0 +1,22 @@ +DIAGS=xfs.eps sgi.eps +IMGS= + +all: slideshow.pdf + +slideshow.pdf: slideshow.tex $(IMGS) $(DIAGS) + latex slideshow.tex + dvips -Ppdf -G0 slideshow.dvi -o slideshow.ps + ps2pdf -dPDFsettings=/prepress slideshow.ps slideshow.pdf + #dvipdf slideshow.dvi + #dvipdf -g2700x3450 -r300 slideshow.dvi + +diagrams: $(DIAGS) + +%.eps: %.svg + inkscape -z -T -E $@ $< + +%.ps: %.dot + dot -Tps $< -o $@ + +clean: + rm -f *~ *.pdf $(DIAGS) *.dvi *.log *.out *.aux *.nav *.snm *.toc *.vrb diff -r 000000000000 -r 4cff88ac3e44 sgi.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sgi.svg Sat Apr 12 20:32:36 2008 -0400 @@ -0,0 +1,73 @@ + + + + + + + + + image/svg+xml + + + + + + sgi + diff -r 000000000000 -r 4cff88ac3e44 slideshow.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slideshow.tex Sat Apr 12 20:32:36 2008 -0400 @@ -0,0 +1,194 @@ +\documentclass{beamer} + +\usepackage{beamerthemeshadow} + +\title{XFS --- The Black Leather Jacket of filesystems} +\author{Josef ``Jeff'' Sipek\\ $<$jeffpc@josefsipek.net$>$} +\date{July 8, 2008} + +\begin{document} +\frame{\titlepage} + +\AtBeginSection[] +{ +\begin{frame} + \frametitle{Outline} + \tableofcontents[currentsection] +\end{frame} +} + +\section{History} +\begin{frame} + \frametitle{History: Stoneage (1992)} + \begin{itemize} + \item Berkeley's FFS was state of the art + \item IRIX had EFS (FFS with extents) + \item Many limitations + \begin{itemize} + \item Small file sizes (2 GB) + \item Small filesystem sizes (8GB) + \item Statically allocated metadata + \item Long recovery times + \item Slow operations on large directories + \item No extended attributes + \item No access control lists + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{History: Enlightment (1993)} + \begin{center} + \includegraphics[width=0.8\textwidth]{sgi.eps} + \end{center} +\end{frame} + +% +% Features +% +\section{Features} +\begin{frame} + \frametitle{Features: Allocation} + \begin{itemize} + \item Delayed allocation + \begin{itemize} + \item Allocate on flush + \item Write reserves disk space, decide where later + \end{itemize} + \item Pre-allocation + \begin{itemize} + \item Reserve space before it is written + \item Minimizes fragmentation + \end{itemize} + \item Direct I/O support + \item Stripe aware allocator + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Features: Inodes} + \begin{itemize} + \item Dynamically allocated in clusters + \item Inode size is mkfs option + \begin{itemize} + \item 256 Byte (default) -- 4 kByte (max) + \end{itemize} + \item Extended Attributes + \begin{itemize} + \item name=value pairs + \item Used by ACLs, Capabilities, SELinux, DMAPI + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Features: Other} + \begin{itemize} + \item B+ Trees + \item 64-bit + \item Variable block size (512 Bytes -- 64 kB) + \item Allocation Groups + \item Lots of utilities + \item Direct I/O + \item DMAPI + \item EA/ACL + \item online fs growth + \item amazingly fast + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Why use it?} + \begin{itemize} + \item Stable, mature codebase + \begin{itemize} + \item oldest journaling filesystem on Linux + \end{itemize} + \item Very well performing + \item DMAPI support + \item Good support for EAs / ACLs + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Why \emph{not} use it?} + \begin{itemize} + \item No data journaling + \item Got time to waste + \end{itemize} +\end{frame} + +% +% Demos +% +\section{Demos} +\begin{frame} + \frametitle{\texttt{\textbf{xfsdump}}} + xfsdump ... +\end{frame} + +\begin{frame} + \frametitle{\texttt{\textbf{xfsrestore}}} + xfsrestore ... +\end{frame} + +\begin{frame} + \frametitle{\texttt{\textbf{mkfs/mount}}} + mkfs/mount +\end{frame} + +\begin{frame} + \frametitle{\texttt{\textbf{xfs\_growfs}}} + xfs\_growfs ... +\end{frame} + +\begin{frame} + \frametitle{\texttt{\textbf{xfs\_freeze}}} + freeze / unfreeze +\end{frame} + +\begin{frame} + \frametitle{\texttt{\textbf{xfs\_check}} \& \texttt{\textbf{xfs\_repair}}} + check / repair +\end{frame} + +\begin{frame} + \frametitle{\texttt{\textbf{xfs\_io}}} + xfs\_io ... +\end{frame} + +\begin{frame} + \frametitle{\texttt{\textbf{xfs\_quota}}} + xfs\_quota ... +\end{frame} + +\begin{frame} + \frametitle{\texttt{\textbf{xfs\_admin}}} + xfs\_admin ... +\end{frame} + +\begin{frame} + \frametitle{\texttt{\textbf{xfs\_bmap}}} + xfs\_bmap ... +\end{frame} +% +% Wrap-up +% +\section{} +\begin{frame} + \frametitle{Questions?} + \begin{center} + \includegraphics[width=\textwidth]{xfs.eps} + \end{center} +\end{frame} + +\begin{frame} + \frametitle{More info} + \begin{itemize} + \item \url{http://oss.sgi.com/projects/xfs/} + \item \url{xfs@oss.sgi.com} + \item \url{http://oss.sgi.com/projects/xfs/papers/ukuug2003.pdf} + \end{itemize} +\end{frame} + +\end{document} diff -r 000000000000 -r 4cff88ac3e44 xfs.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfs.svg Sat Apr 12 20:32:36 2008 -0400 @@ -0,0 +1,73 @@ + + + + + + + + + image/svg+xml + + + + + + XFS +