\section{XFS}

\begin{frame}
   {XFS}

   \begin{itemize}
      \item Default filesystem in \textbf{RHEL}
      \item Designed by \textbf{SGI} for larger filesystems
      \begin{itemize}
         \item Up to 16 EB (exabytes) for the filesystem
         total
         \item Up to 8 EB for one file
      \end{itemize}
      \item Journalling filesystem
      \begin{itemize}
         \item Meta-data
         \item Quota
         \item Can be on an external device
      \end{itemize}
      \item Built for performance
      \begin{itemize}
         \item Direct DMA I/O
         \item Guaranteed rate I/O
         \item Adjustable stripe size to match
         underlying storage
      \end{itemize}
      \item Supports extended attributes (\textbf{xattrs})
   \end{itemize}

\end{frame}

\cprotect\note{

   The \textbf{XFS} filesystem was designed and created
   by \textbf{Silicon Graphics Inc}.  It was engineered to deal
   with large data sets for \textbf{SGI} systems, and effectively
   handle parallel I/O tasks.

   Unlike other \textbf{Linux} filesystems,
   \textbf{XFS} can also journal quota information.  This
   leads to decreased recovery time when a quota-enabled
   filesystem is uncleanly unmounted.

   High performance is one of the key design elements of
   \textbf{XFS}.  The filesystem has methods for guaranteeing an
   I/O rate, allowing direct \textbf{DMA} I/O and external
   journal devices.  The filesystem can also match stripe
   sizes with underlying raid or \textbf{LVM} devices.

   As with other \textbf{Linux} filesystems \textbf{XFS}
   supports extended attributes.  }


\begin{frame}
   {XFS Details}

   \begin{itemize}
      \item Online maintenance tools
      \begin{itemize}
         \item Defragmentation
         \item Enlarging
         \item Dump/Restore
      \end{itemize}
      \item Supports quotas
      \begin{itemize}
         \item Normal quota tools can be used
         \item Supports per-directory quotas
         \begin{itemize}
            \item Must be modified with
            \textbf{XFS} quota tools
         \end{itemize}
      \end{itemize}
      \item Does not directly support snapshots
      \begin{itemize}
         \item \textbf{xfs\_freeze} command
         \begin{itemize}
            \item Not needed if using \textbf{LVM} tools
         \end{itemize}
      \end{itemize}
      \item Backup and restore with \textbf{xfsdump} and
      \textbf{xfsrestore}
   \end{itemize}

\end{frame}

\cprotect\note{

   Maintaining an \textbf{XFS} filesystem is made easier
   by the fact that most of the maintenance tasks can be
   done while the filesystem is mounted, or ``on-line''.
   This includes, defragmentation, resizing (enlarge
   only), and Dump/Restore.

   The \textbf{xfsdump} and \textbf{xfsrestore} commands
   can be paused and resumed at a later time.  They are
   also multi-threaded, making \textbf{XFS} dumps and
   restores happen much faster.

   The traditional quota commands can be used to
   manipulate per-filesystem quotas on an \textbf{XFS}
   volume.  However, if you use the \textbf{xfs\_quota}
   command you can use the per-directory quotas that
   \textbf{XFS} supports.

   The \textbf{XFS} filesystem does not directly support
   hardware or software snapshots.  However, the utility
   \textbf{xfs\_freeze} can be used to quiesce the
   filesystem to allow for a snapshot tool to work on the
   underlying device.  The \textbf{Linux} \textbf{LVM} tools will
   automatically use \textbf{xfs\_freeze} to quiesce the
   filesystem for snapshots.
}




