Cover image for Managing RAID on Linux

Book description

Redundant Array of Independent Disks (RAID) technology is becoming a standard feature of computer systems that support mission-critical services like file sharing, mail exchange, or Web servers. RAID offers two benefits to these essential systems: improved I/O performance and fail-safe data storage. Although bandwidth problems on networks are well documented, the internal data transfer bottleneck that exists at the hardware level in each system can also leave you with perplexing performance issues. RAID is a cost-effective and easy-to-manage way to alleviate this bandwidth problem by distributing the I/O load seamlessly across multiple disks and controllers. RAID also provides uninterrupted data access through disk mirroring and parity algorithms. That means systems can remain online even during a disk or controller failure. RAID is scalable, making it robust enough for large, high-traffic sites and small, critical systems. By using RAID, system administrators can combine single disks into terabytes worth of data storage. Managing RAID on Linux covers everything system administrators need to know to put together a system that can support RAID. You will learn about the different types of RAID, along with associated technologies and issues, and how to choose the best RAID system for your needs. With a step-by-step, hands-on approach, the author guides you through the installation of either Linux software RAID or a hardware RAID card. The book shows how to build an array and optionally install a high-performance file system. Contents include:

  • An introduction to RAID and Linux

  • Planning and architecture of your RAID system

  • Building a software RAID

  • Software RAID tools and references

  • Building a hardware RAID

  • Performance and tuning of your RAID system

RAID has become the low-cost solution of choice to deal with the ever-increasing demand for data storage space. Written for system administrators, power users, tech managers, and anyone who wants to learn about RAID technology, Managing RAID on Linux sidesteps the often-confusing vendor-specific approach you'll find elsewhere to give you the straight story on RAID. Even non-Linux users will find this book full of valuable material.

Table of Contents

  1. Managing RAID on Linux
    1. SPECIAL OFFER: Upgrade this ebook with O’Reilly
    2. Preface
      1. Overview of the Book
      2. A Note About Architecture
        1. Kernels
        2. LILO
      3. Prompts
      4. Conventions Used in This Book
      5. Comments and Questions
      6. Acknowledgments
    3. 1. Introduction
      1. RAID Terminology
        1. Redundancy
          1. Mirroring
          2. Parity
          3. Degraded
          4. Reconstruction, resynchronization, and recovery
        2. Striping
          1. Stripe-size versus chunk-size
      2. The RAID Levels: An Overview
        1. RAID-0: Striping
        2. RAID-1: Mirroring
        3. RAID-4: Dedicated Parity
        4. RAID-5: Distributed Parity
        5. Linear Mode
          1. Disk spanning
        6. JBOD (Just a Bunch Of Disks)
      3. RAID on Linux
      4. Hardware Versus Software
    4. 2. Planning and Architecture
      1. Hardware or Software?
        1. Software (Kernel-Managed) RAID
        2. Hardware
          1. RAID controllers
          2. Outboard solutions
          3. Storage Area Network (SAN)
      2. The RAID Levels: In Depth
        1. RAID-0 (Striping)
        2. Linear Mode
        3. RAID-1 (Mirroring)
        4. RAID-4
        5. RAID-5
        6. Hybrid Arrays
          1. RAID-10 (striping mirror)
          2. RAID-50 (striping parity)
      3. RAID Case Studies: What Should I Choose?
        1. Case 1: HTTP Image Server
        2. Case 2: Usenet News
        3. Case 3: Home Use (Digital Audio, Video, and Images)
        4. Case 4: The Acme Motion Picture Company
        5. Case 5: Video on Demand
      4. Disk Failures
        1. Degraded Mode
        2. Hot-Spares
        3. Hot-Swap
      5. Hardware Considerations
        1. An Organizational Overview
        2. Motherboards and the PCI Bus
          1. Bus-width and bus-speed
        3. I/O Channels
        4. Disk Access Protocols
        5. The AT Attachment (ATA) and Integrated Disk Electronics (IDE)
          1. Master and slave
          2. Direct memory access (DMA)
          3. The drawbacks of ATA
        6. SCSI
          1. Bus-width and signaling rates
          2. Transmission types
        7. SCSI Versus ATA
          1. Speed
          2. Configuration
          3. Growth
          4. Summary of SCSI versus ATA
        8. Other Disk Access Protocols
        9. Choosing Hard Drives
          1. Platters, tracks, sectors, and cylinders
          2. Actuator arm
          3. Maximum data throughput
          4. Matched drives
        10. Cases, Cables, and Connectors
          1. Connectors
          2. Single connector attachment (SCA)
          3. Power
      6. Making Sense of It All
    5. 3. Getting Started: Building a Software RAID
      1. Kernel Configuration
        1. A Brief History Lesson
        2. Kernel 2.4
          1. Installing the new kernel
          2. System initialization
        3. Patching Older Kernels
          1. Kernel 2.2
          2. Kernel 2.0
        4. Summary of Kernel Upgrades
      2. Working with Software RAID
        1. raidtools
          1. raidtools-0.90
          2. /etc/raidtab
          3. raidtools-0.42
        2. mdadm
          1. /etc/mdadm.conf
        3. The RAID Superblock
        4. Examining Arrays Using /proc/mdstat
        5. Existing Arrays
          1. Stopping an array
          2. Reusing member disks
      3. Creating an Array
        1. Partitioning with fdisk
          1. Partitioning for autodetection
          2. Partitioning without autodetection
        2. Linear (Append) Mode
        3. RAID-0 (Striping)
        4. RAID-1 (Mirroring)
        5. RAID-4 (Dedicated Parity)
        6. RAID-5 (Distributed Parity)
        7. Hybrid Arrays
          1. RAID-10 (striped mirror)
          2. RAID-50 (striped parity)
        8. Finishing Touches
      4. The Next Step
    6. 4. Software RAID Reference
      1. Kernel Options
        1. Deprecated Kernel Options
      2. md Block Special Files
      3. /proc and Software RAID
        1. /proc/mdstat
          1. Failed disks
          2. Resynchronization and reconstruction
        2. /proc/sys/dev/raid
      4. raidtools
        1. The /etc/raidtab File
        2. raidtools Commands
          1. lsraid
          2. mkraid
          3. raidhotadd
          4. raidhotgenerateerror
          5. raidhotremove
          6. raidreconf
          7. raidsetfaulty
          8. raidstart
          9. raidstop
      5. mdadm
        1. mdadm
        2. Create and Build modes
        3. Assemble mode
        4. Monitor mode
        5. Manage and Miscellaneous modes
        1. /etc/mdadm.conf
          1. DEVICE lines
          2. ARRAY lines
          3. MAILADDR lines
          4. PROGRAM lines
          5. Maintaining /etc/mdadm.conf
    7. 5. Hardware RAID
      1. Choosing a RAID Controller
        1. Motherboard and System Compatibility
        2. Controller Memory
          1. Battery backed-up cache memory
        3. JBOD (Just a Bunch of Disks)
        4. Software Considerations
      2. Preparing Controllers and Disks
        1. FreeDOS
      3. General Configuration Issues
        1. Controller Card BIOS
        2. System Installation
        3. RAID Autoconfiguration
        4. Write Cache
          1. Write-back caching
          2. Write-through caching
        5. Logical Drives
        6. Controller Disk Spin-up
      4. Mylex
        1. The DAC960 Driver
          1. Distribution support
          2. Configuring the kernel
          3. Device special files
          4. Partition limitations
        2. Controller Setup
          1. BIOS options
          2. EzAssist (RAID configuration)
          3. Configuring the first array
          4. Configuring an existing disk for standalone JBOD mode
          5. Converting an existing standalone disk to a mirror
        3. Managing Arrays
          1. /proc/rd
          2. The Global Array Manager (GAM)
      5. Adaptec
        1. Adaptec I2O RAID Driver
          1. Configuring the kernel
        2. The aacraid Driver
          1. Configuring the kernel
        3. Adaptec RAID Setup Utility
          1. Configuring the first array
          2. Configuring an existing disk for JBOD mode
          3. Converting an existing standalone disk to a mirror
        4. The Adaptec Storage Manager
          1. Working with raidutil
      6. Promise Technology
        1. Creating an Array
        2. Installing Linux onto a Promise Array
          1. Creating a driver disk
          2. Installation
        3. Configuring the ataraid Driver
          1. Reconfiguring LILO
          2. Additional steps for new systems
        4. Converting an Existing Standalone Disk to a Mirror
        5. Post-Installation Array Management
      7. 3ware Escalade ATA RAID Controller
        1. Creating an Array and Installing Linux
        2. Converting an Existing Standalone Disk to a Mirror
        3. Kernel Configuration
        4. 3DM Disk Manager
          1. Downloading and installing 3DM
          2. Configuration and usage
      8. LSI Logic (MegaRAID)
        1. Creating an Array
        2. Installing Linux Directly to a MegaRAID Controller
        3. The MegaRAID Driver
        4. Converting an Existing Standalone Disk to a Mirror
        5. Managing Arrays
    8. 6. Filesystems
      1. Basic Filesystem Concepts
        1. Blocks and Inodes
          1. Space efficiency versus performance
        2. Organization
        3. Journaling Filesystems
          1. Doesn't journaling hurt performance?
      2. The Linux Virtual Filesystem (VFS)
          1. 64-bit architectures
      3. ext2
        1. ext2 Organization
        2. Creating an ext2 Filesystem
        3. Tuning ext2 Filesystems
          1. Reserved space
          2. RAID options
          3. Access time
          4. A working example
      4. ext3 Extensions for the ext2 Filesystem
        1. Patching the Kernel for ext3 Support
        2. Compiling the Kernel with ext3 Support
        3. Working with ext3
        4. Creating an ext3 Partition
        5. Converting an ext2 Filesystem to ext3
        6. Tuning ext3 Features
          1. Data journaling
          2. Using a separate journal device
        7. Further Information
      5. ReiserFS
        1. Installing Directly to ReiserFS
        2. Compiling the Kernel with ReiserFS Support
          1. Patching older kernels
        3. Creating a Filesystem
          1. Mounting the filesystem
        4. reiserfsck, reiserfstune, and debugreiserfs
      6. IBM JFS
        1. Distribution Support
        2. Patching the Kernel
        3. Configuring the Kernel
        4. Installing the JFS Utilities
          1. Creating a filesystem
        5. Further Information
      7. SGI XFS
        1. Distribution Support
        2. Obtaining XFS
          1. Using CVS to obtain a patched kernel
          2. Patching the kernel
        3. Compiling the Kernel with XFS Support
        4. Building the XFS Utilities
        5. Further Information
    9. 7. Performance, Tuning, and Maintenance
      1. Monitoring RAID Devices
        1. RAID and syslog
        2. BigBrother
        3. SysOrb
        4. Verbose SCSI Reporting
      2. Managing Disk Failures
        1. Automatic Failover to a Spare Disk
        2. Sharing Spare Disks
        3. Manual Disk Replacement
        4. Problems with Hot-Swap and Disk Replacement
      3. Configuring Hard Disk Parameters
        1. Tuning ATA Disks with hdparm
          1. Enabling DMA mode transfers
          2. 32-bit I/O support
          3. Increasing multiple sector I/O
          4. Interrupt unmasking
          5. Filesystem read-ahead
          6. Testing your configuration
          7. Saving your configuration
        2. Tuning Disk Elevators
      4. Performance Testing
      5. Booting with Software RAID
        1. Installing Directly to Software RAID
          1. Red Hat
          2. SuSE
          3. Mandrake
        2. Converting to Software RAID
    10. A. Additional Resources
      1. Mailing Lists
      2. Web Sites and Online Resources
        1. RAID
          1. Filesystems
          2. Hardware
      3. Books
        1. Bibliography
          1. Books
    11. B. Hardware RAID Controller Vendors
    12. Index
    13. About the Author
    14. Colophon
    15. SPECIAL OFFER: Upgrade this ebook with O’Reilly