VMware Software-Defined Storage. Martin Hosken

Чтение книги онлайн.

Читать онлайн книгу VMware Software-Defined Storage - Martin Hosken страница 12

VMware Software-Defined Storage - Martin Hosken

Скачать книгу

Management and control of disk aggregation

      • Translation of I/O requests between the logical and the physical entities

      • Error correction if disk failures occur

      The physical disks that make up a RAID set can be either traditional mechanical disks or solid-state flash drives (SSDs). RAID sets have various levels, each optimized for specific use cases. Unlike many other common technologies, RAID levels are not standardized by an industry group or standardization committee. As a result, some storage vendors provide their own unique implementation of RAID technology. However, the following common RAID levels are covered in this chapter:

      • RAID 0–striping

      • RAID 1–mirroring

      • RAID 5–striping with parity

      • RAID 6–striping with double parity

      • RAID 10–combining mirroring and striping

      Determining which type of RAID to use when building a storage solution largely depends on three factors: capacity, availability, and performance. This section addresses the basic concepts that provide a foundation for understanding disk arrays, and how RAID can enable increased capacity by combining physical disks, provide higher availability in case of a drive failure, and increase performance through parallel drive access.

      A key element in RAID is redundancy, in order to improve fault tolerance. This can be achieved through two mechanisms, mirroring and striping, depending on the RAID set level configured. Before addressing the RAID set capabilities typically used in storage array systems, we must first explain these two terms and what they mean for availability, capacity, performance, and manageability.

      NOTE

      Some storage systems also provide a JBOD configuration, which is an acronym for just a bunch of disks. In this configuration, the disks do not use any specific RAID level, and instead act as stand-alone drives. This type of disk arrangement is most typically employed for storage devices that contain swap files or spooling data, where redundancy is not paramount.

      Striping in RAID Sets

As highlighted previously, RAID sets are made up of multiple physical disks. Within each disk are groups of continuously addressed blocks, called strips. The set of aligned strips that spans across all disks within the RAID set is called the stripe (see Figure 2.3).

Figure 2.3 Strips and stripes

Striping improves performance by distributing data across the disks in the RAID set (see Figure 2.4). This use of multiple independent disks allows multiple reads and writes to take place concurrently, providing one of the main advantages of disk striping: improved performance. For instance, striping data across three hard disks would provide three times the bandwidth of a single drive. Therefore, if each drive runs at 175 input/output operations per second (IOPS), disk striping would make available up to 525 IOPS for data reads and writes from that RAID set.

Figure 2.4 Performance in striping

      Striping also provides performance and availability benefits by doing the following:

      • Managing large amounts of data as it is being written; the first piece is sent to the first drive, the second piece to the second drive, and so on. These data pieces are then put back together again when the data is read.

      • Increasing the number of physical disks in the RAID set increases performance, as more data can be read or written simultaneously.

      • Using a higher stripe width indicates a higher number of drives and therefore better performance.

      • Striping is managed through storage controllers, and is therefore transparent to the vSphere platform.

As part of the same mechanism, parity is provided as a redundancy check, to ensure that the data is protected without having to have a full set of duplicate drives, as illustrated in Figure 2.5. Parity is critical to striping, and provides the following functionality to a striped RAID set:

Figure 2.5 Redundancy through parity

      • If a single disk in the array fails, the other disks have enough redundant data so that the data from the failed disk can be recovered.

      • Like striping, parity is generally a function of the RAID controller or storage controller, and is therefore fully transparent to the vSphere platform.

      • Parity information can be

      • Stored on a separate, dedicated drive

      • Distributed across all the drives in the RAID set

      Mirroring in RAID Sets

      Mirroring uses a mechanism that enables multiple physical disks to hold identical copies of the data, typically on two drives. Every write of data to a disk is also a write to the mirrored disk, meaning that both physical disks contain exactly the same information at all times. This mechanism is once again fully transparent to the vSphere platform and is managed by the RAID controller or storage controller. If a disk fails, the RAID controller uses the mirrored drive for data recovery, but continues I/O operations simultaneously, with data on the replaced drive being rebuilt from the mirrored drive in the background.

The primary benefits of mirroring are that it provides fast recovery from disk failure and improved read performance (see Figure 2.6). However, the main drawbacks include the following:

      • Degraded write performance, as each block of data is written to multiple disks simultaneously

      • A high financial cost for data protection, in that disk mirroring requires a 100 percent cost increase per gigabyte of data

Illustration depicting Redundancy in disk mirroring.

Figure 2.6 Redundancy in disk mirroring

      Enterprise storage systems typically support multiple RAID levels, and these levels can be mixed within a single storage array. However, once a RAID type is assigned to a set of physical disks, all LUNs carved from that RAID set will be assigned that RAID type.

      Nested RAID

      Some RAID levels are referred to as nested RAID, as they are based on a combination of RAID levels. Examples of nested RAID levels include RAID 03 (RAID 0+3, also known as RAID 53, or RAID 5+3) and RAID 50 (RAID 5+0). However, the only two commonly implemented nested RAID levels are RAID 1+0, also commonly known as RAID 10, and RAID 01 (RAID 0+1). These two are similar, except the data organization methods are slightly different; rather than creating a mirror and then striping the mirror, as in RAID 1+0, RAID 0+1 creates a stripe set and then mirrors it.

      Calculating I/O per Second RAID Penalty

      One

Скачать книгу