zoukankan      html  css  js  c++  java
  • Comparing RAID Implementation Methods

    這是一篇比較有點年紀的文章. 來自DELL的文獻, 來自:
    http://www.dell.com/content/topics/global.aspx/power/en/ps3q03_dumouchelle?c=us&l=en&cs=555
    André Dumouchelle and Ahmad Ali (August 2003)

    RAID subsystems offer data redundancy to help prevent information loss. This article discusses the differences and price/performance trade-offs among the various hardware RAID and software RAID implementations.

    A range of RAID implementations exists for today’s servers. This article compares different software and hardware approaches, and analyzes the impact on system price and performance—thereby helping administrators understand which RAID implementation method may best meet their system requirements.
     

    Understanding hardware and software RAID

    Internal, server-based RAID subsystems can be classified in two broad categories depending on the processor used for executing the RAID engine—that is, the logic that redistributes data for different algorithms. Implementations in which the RAID engine executes on the processor of the host system are classified as non-intelligent RAID, generally known as software RAID. This RAID implementation requires only simple disk interface controllers such as SCSI or ATA, and relies on the host system for memory and processing resources.

    Alternatively, intelligent RAID implementation methods, generally known as hardware RAID, provide dedicated processors and memory to execute the RAID engine outside the host operating system (OS) environment. In hardware RAID subsystems, the RAID volumes appear to the OS as physical drives.

     

    Figure 1. RAID taxonomy

     

    Figure 1 sorts out the different types of internal RAID. Hardware RAID can be further categorized into I/O processor–based and I/O controller–based, and software RAID can be further categorized into driver-based and OS-based, as follows:

     

    • I/O processor (IOP)–based RAID:  This is the most common method, and also typically the most expensive, most richly featured, and highest performing implementation. IOP-based RAID performs RAID functions on the disk using dedicated processors, memory subsystems, and peripheral devices. The on-board IOP executes the RAID engine, handles disk array rebuilding, RAID level migration, and other functions such as error recovery. IOP-based RAID can be either embedded on the server as RAID on Motherboard (ROMB) or placed on a host bus adapter (HBA).
    • I/O controller (IOC)–based RAID:  This category uses the processor and memory resources of the I/O (disk interface) controller to execute the RAID engine. Although it looks similar to IOP-based RAID, IOC-based RAID has limited features and functionality because it shares the limited processor and memory resources of disk I/O controllers. Because of its small footprint and low cost, IOC-based RAID is usually embedded on the server platform.
    • Driver-based RAID:  This software implementation is integrated within the driver of a specific disk controller. The driver contains the code to run the RAID engine within the OS environment and the BIOS runs the RAID engine in the pre-OS (boot) environment. Within the OS, this approach looks similar to IOP-based and IOC-based RAID in that actual physical drives constituting the RAID volume are invisible to the OS. However, driver-based RAID depends completely on the resources of the system processor and memory for RAID execution, and affects system performance in high CPU utilization environments.
    • OS-based RAID:  This type of software RAID, usually implemented as a filter driver bundled within the OS, uses the processor and memory of the host system to execute the RAID engine. OS-based RAID is independent of disk controller type and uses disk controller drivers for disk I/O.

     

    Figure 2 provides a side-by-side comparison of the advantages and disadvantages of each RAID method.

     

    Figure 2. RAID methods at a glance

     

     

    High performance, high cost: IOP-based RAID
    The components that compose a hardware RAID system include a device driver for the RAID card, the system bus, a dedicated I/O processor and memory that executes the RAID engine, the I/O controller, and the system disks (see Figure 3).

     

     

    Figure 3. I/O processor–based RAID system

     

    CPU-intensive applications gain performance from off-loading the RAID engine to the dedicated RAID processor. IOP-based and IOC-based RAID systems are most common in SCSI and Fibre Channel systems, but they also are seen in some high-end ATA configurations. Hardware RAID typically offers the widest array of RAID levels—particularly RAID-3 and RAID-5, which accelerate parity calculations using hardware exclusive OR (XOR) operations. Disk configuration information (metadata) is usually stored on the disk drives as well as in nonvolatile RAM. Hardware RAID typically uses large battery-backed cache memory, which improves performance and reliability.

    The dedicated I/O processor handles all RAID functions and performs rebuilds, error recovery, and any additional functions that are part of a particular system’s feature set. Because it can perform operations independently of the OS, the I/O processor enables many RAID tasks to run outside the OS; host CPU performance is not affected.

     

    Small footprint, low cost: IOC-based RAID
    IOC-based RAID systems share an integrated processor and memory on the disk controller to execute the RAID engine, but these systems have fewer features than IOP-based hardware RAID. The RAID firmware on the I/O controller handles error recovery and rebuild algorithms, and the driver can be a simple disk controller driver (see Figure 4).

     

     

    Figure 4. I/O controller–based RAID system

     

    Some implementations contain metadata on the disks; others contain metadata only in nonvolatile RAM. No theoretical restrictions exist on the types of RAID level allowed using IOC-based RAID, but the most common levels used are RAID-0 and RAID-1 because of limited processor and memory resources available for the RAID engine in the IOC.

     

    Low cost, high overhead: Driver-based RAID
    Device driver–based RAID implementations use the system processor and memory to facilitate RAID functionality. Driver-based RAID is commonly used in ATA implementations, but also can be used with SCSI systems. The IOC acts only as a disk interface, but driver-based RAID may exploit vendor-unique features in the IOC (see Figure 5). RAID configuration data is usually stored on the disks. Driver-based RAID systems are typically limited to RAID-0, RAID-1, and RAID-10, although no physical limitation actually exists.

     

     

    Figure 5. Driver-based RAID system

     

    Driver-based RAID is suitable for boot volumes because a minimal RAID engine is implemented in the BIOS (Int 13) service, allowing seamless boot from a degraded RAID-1 array. Administrators can configure the RAID drives through a BIOS utility that requires host server CPU and memory to run. The driver for these systems handles all error recovery as well as functions such as rebuilds. I/O performance gains are achieved at the cost of host CPU cycles, which can adversely affect CPU-intensive environments. Driver-based RAID systems incur higher CPU overhead than hardware RAID systems.

     

    No additional cost, high overhead: OS-based RAID
    OS-based RAID systems are included in the host OS. The RAID engine resides in the OS as a filter driver above the device driver layer (see Figure 6). Software RAID options exist today in Microsoft® Windows® , Novell® NetWare® , and Linux®  operating systems, and these options can be set up regardless of controller type or disk type.

     

     

    Figure 6. OS-based RAID system

     

    Software RAID does not require special controller device drivers; its engine relies on the system processor and memory to function. Administrators can typically implement RAID-0, RAID-1, and RAID-5 across drives in a software RAID configuration. These configurations can span multiple disk controllers. Certain operating systems do not allow the user to protect the OS partition, because the RAID engine does not run until the OS is loaded. In addition, booting from a degraded RAID-1 boot drive may require manual intervention if the original boot drive is no longer working. Performance is usually on par with driver-based RAID architectures.

    Balancing price/performance of RAID implementation methods

    Each RAID implementation method offers particular advantages and disadvantages. IT administrators can choose among these methods to balance needs such as performance, ability to run background tasks, and ease of use against factors such as cost and required component space. Tailoring a RAID method to an organization’s particular IT requirements can help administrators achieve cost-effective data protection.

  • 相关阅读:
    about java
    nginx+tomcat
    sed
    百度推送
    线程及更新ui线程的简单理解
    测试异常检测的Bugly使用
    轮播图带加点,带时间自动轮播加手动轮播
    自定义listView与scrollView使用
    tabLayout加viewPager的实现
    网络获取图片列表
  • 原文地址:https://www.cnblogs.com/jjkv3/p/2453575.html
Copyright © 2011-2022 走看看