[CSE]  Advanced Operating Systems 
 COMP9242 2002/S2 
UNSW

PRINTER Printer-Friendly Version
Administration               
- Notices
- Course Intro
- Consultations
# On-line Survey (closed)
- Survey Results
 
Work
- Lectures
- Milestone 0
- Project Admin
- Project Spec
- Project FAQ
- Exam
 
Documentation
- ASysT Lab
- L4 source browser
- Sulima ISA Simulator
R4x00 ISA Summary 
MIPS R4700 ReferenceMIPS R4000 User Manual 
- Network Driver
- GT64111
 
Related Info
- Aurema OS Prize
- OS Hall of Fame
 
History
- 2000
- 1999
- 1998
 
Staff
- Gernot Heiser (LiC)

 
Valid HTML 4.0!
next up previous
Next: Microsoft Windows-NT File System Up: 09-fs Previous: Alternative: Logging to Improve

SGI's XFS

  • Scalable FS for high-performance computing[SDH$^+$96]:
    • many files,
    • big directories,
    • huge files,
    • sparse files.
    • big file systems (TB),
    • fast crash recovery,
    • high bandwidth (uncompressed video), 500MB/s!

  • Extensive use of B\(^+\) trees:
    • directories (keyed by 4-byte hash of file name)
    • indirect block maps (using block ranges, extents),
    • free-block maps,
    • inode maps containing:
      • pointers to ranges of inodes, and
      • bitmap for range.
  • Allocation groups (large sub-partitions) to localise metadata.
    • Limits size of free space and inode maps.
    • Allows use of 32-bit pointers.
    • Limits bottlenecks due to single-threaded updates.
    • Used similar to FFS CGs (cluster files, spread directories).

  • Write-ahead logging for metadata updates:
    • inodes,
    • directory blocks,
    • free block maps,
    • inode maps,
    • file block maps,
    • AG headers,
    • superblock
  • Batch and asynchronously write log.
  • Buffer log to avoid blocking further metadata updates.
  • Support separate log device.
  • Dynamically allocated inodes.
  • Block size up to 64kB.

  • Block allocation as contiguous as possible:
    • Extents: large (up to \(2^{21}\)) unaligned contiguous block ranges.
    • Physical pointers are extent descriptors:
      • file offset (for sparsity),
      • block address,
      • extent size.
    • Actual allocation of disk blocks is delayed as much as possible.
      • Allows maximising extents.
      • Prevents short-lived files from ever going to disk.
      • Requires extensive buffering in RAM.
  • Aggressive read-ahead and write clustering.
  • Direct I/O: DMA to user buffers.
  • Multiple concurrent readers and writers supported to same file.
  • Log is only shared data structure on SMP system.


next up previous
Next: Microsoft Windows-NT File System Up: 09-fs Previous: Alternative: Logging to Improve
Gernot Heiser 2002-10-11