Connecting sas disks to the controller. Difference between SAS and SATA. Delivery and packaging

💖 Do you like it? Share the link with your friends

For more than 20 years, the parallel bus interface has been the most common communication protocol for most digital storage systems. But as the need for throughput and system flexibility has grown, the shortcomings of the two most common parallel interface technologies have become apparent: SCSI and ATA. The lack of compatibility between parallel SCSI and ATA interfaces—different connectors, cables, and command sets used—increases the cost of system maintenance, research and development, training, and qualification of new products.

Today, parallel technologies still suit users of modern corporate systems from a performance standpoint, but growing demands for higher speeds, greater data retention, smaller physical sizes, and greater standardization challenge the parallel interface's ability to cost-effectively keep up with rapidly increasing CPU performance and hard drive speeds. disks. In addition, in times of austerity, it is becoming increasingly difficult for enterprises to find funds for the development and maintenance of heterogeneous connectors on the back panels of server cases and external disk arrays, checking the compatibility of heterogeneous interfaces and inventorying heterogeneous connections for performing I/O operations.

The use of parallel interfaces also poses a number of other problems. Parallel data transmission over a wide daisy chain is subject to crosstalk, which can create additional interference and lead to signal errors - to avoid this trap, you have to reduce the signal speed or limit the cable length, or do both. Termination of parallel signals is also associated with certain difficulties - you have to terminate each line separately, usually this operation is performed by the last drive, in order to prevent the signal from being reflected at the end of the cable. Finally, the large cables and connectors used in parallel interfaces make these technologies unsuitable for new compact computing systems.

Introducing SAS and SATA

Serial technologies such as Serial ATA (SATA) and Serial Attached SCSI (SAS) overcome the architectural limitations of traditional parallel interfaces. These new technologies got their name from the method of signal transmission, when all information is transmitted sequentially (English serial), in a single stream, in contrast to multiple streams that are used in parallel technologies. The main advantage of a serial interface is that when data is transferred in a single stream, it moves much faster than when using a parallel interface.

Serial technologies combine many bits of data into packets and then transmit them over a cable at speeds up to 30 times faster than parallel interfaces.

SATA extends the capabilities of traditional ATA technology by enabling data transfer between disk drives at speeds of 1.5 GB per second and higher. Due to its low cost per gigabyte of disk capacity, SATA will remain the dominant disk interface in desktop PCs and servers. entry level And network systems storage of information where cost is a major consideration.

SAS technology, the successor to parallel SCSI, builds on the proven functionality of its predecessor and promises to significantly enhance the capabilities of today's enterprise storage systems. SAS offers a number of advantages that traditional storage solutions do not offer. In particular, SAS allows you to connect up to 16,256 devices to one port and provides a reliable point-to-point serial connection at speeds of up to 3 Gb/s.

Additionally, with a smaller connector, SAS provides full dual-port connectivity for both 3.5" and 2.5" drives (previously only available for 3.5" Fiber Channel drives). This is very useful feature in cases where it is necessary to place a large number of redundant drives in compact system, for example, in a low-profile blade server.

SAS improves drive addressing and connectivity with hardware expanders that allow large numbers of drives to be connected to one or more host controllers. Each extender provides connection up to 128 physical devices, which may be other host controllers, other SAS expanders or disk drives. This scheme scales well and allows you to create enterprise-scale topologies that easily support multi-node clustering for automatic recovery systems in case of failure and to distribute the load evenly.

One of the biggest benefits of the new serial technology is that the SAS interface will also be compatible with lower-cost SATA drives, allowing system designers to use both types of drives in the same system without incurring additional costs to support two different interfaces. Thus, SAS, the next generation of SCSI technology, overcomes the current limitations of parallel technologies in terms of performance, scalability and data availability.

Multiple levels of compatibility

Physical Compatibility

The SAS connector is universal and is compatible with SATA in form factor. This allows both SAS and SATA drives to be directly connected to the SAS system, allowing the system to be used either for mission-critical applications that require high performance and fast data access, or for more cost-effective applications with a lower cost per gigabyte.

The SATA command set is a subset of the SAS command set, allowing compatibility between SATA devices and SAS controllers. However, SAS drives cannot work with a SATA controller, so they are equipped with special keys on the connectors to eliminate the possibility of incorrect connection.

Additionally, the similar physics of the SAS and SATA interfaces allows for a new universal SAS backplane that supports both SAS and SATA drives. As a result, there is no need to use two different backplanes for SCSI and ATA drives. This design compatibility benefits both back panel manufacturers and end users by reducing hardware and engineering costs.

Protocol Compatibility

SAS technology includes three types of protocols, each of which is used to transfer different types of data over the serial interface depending on what device is being accessed. The first is the serial SCSI protocol (Serial SCSI Protocol SSP), transmitting SCSI commands, the second is the SCSI management protocol (SCSI Management Protocol SMP), transmitting control information to the expanders. The third, SATA Tunneled Protocol STP, establishes a connection that allows SATA commands to be transmitted. Thanks to the use of these three protocols, the SAS interface is fully compatible with existing SCSI applications, control software and SATA devices.

This multi-protocol architecture, combined with the physical compatibility of SAS and SATA connectors, makes SAS technology the universal link between SAS and SATA devices.

Benefits of Compatibility

SAS and SATA compatibility provides a number of benefits to system designers, builders, and end users.

System designers can use the same backplanes, connectors and cable connections thanks to SAS and SATA compatibility. Upgrading a system with the transition from SATA to SAS actually comes down to replacing disk drives. In contrast, for users of traditional parallel interfaces, moving from ATA to SCSI means replacing backplanes, connectors, cables, and drives. Other cost-effective benefits of consistent technology interoperability include simplified certification and asset management.

VAR resellers and system builders can easily and quickly reconfigure custom systems by simply installing the appropriate disk drive into the system. There is no need to work with incompatible technologies and use special connectors and different cable connections. Moreover, additional flexibility when it comes to choosing optimal ratio price and performance, will allow VAR resellers and system builders to better differentiate their products.

For end users, SATA and SAS compatibility means a new level of flexibility when it comes to choosing the best price/performance ratio. SATA drives will become the best solution for low-cost servers and storage systems, while SAS drives provide maximum performance, reliability and compatibility with management software. Upgradeable from SATA drives to SAS drives without having to purchase anything to do so new system significantly simplifies the purchasing decision process, protects system investments and reduces total cost of ownership.

Joint development of SAS and SATA protocols

January 20, 2003 SCSI Trade Association (STA) and Working group The Serial ATA (SATA) II Working Group has announced a collaboration to ensure system-level compatibility of SAS technology with SATA disk drives.

The collaboration between the two organizations, as well as the combined efforts of storage vendors and standards committees, aims to provide even more precise interoperability guidelines to help system designers, IT professionals, and end users fine-tune their systems for optimal performance. and reliability and lower total cost of ownership.

The SATA 1.0 specification was approved in 2001, and today there are SATA products on the market from various manufacturers. The SAS 1.0 specification was approved in early 2003, and the first products should hit the market in the first half of 2004.

This article will talk about what allows you to connect HDD to the computer, namely, about the interface hard drive. More precisely, about hard drive interfaces, because a great many technologies have been invented for connecting these devices throughout their existence, and the abundance of standards in this area can confuse an inexperienced user. However, first things first.

Hard drive interfaces (or strictly speaking, interfaces external drives, since they can be used not only by , but also by other types of drives, for example, drives for optical disks) are designed to exchange information between these external memory devices and motherboard. Hard drive interfaces, no less than the physical parameters of the drives, affect many of the operating characteristics of the drives and their performance. In particular, drive interfaces determine such parameters as the speed of data exchange between the hard drive and the motherboard, the number of devices that can be connected to the computer, the ability to create disk arrays, the possibility of hot plugging, support for NCQ and AHCI technologies, etc. . It also depends on the hard drive interface which cable, cord or adapter to connect it to motherboard you will need.

SCSI - Small Computer System Interface

The SCSI interface is one of the oldest interfaces designed for connecting storage devices in personal computers. This standard appeared in the early 1980s. One of its developers was Alan Shugart, also known as the inventor of the floppy disk drive.

Appearance of the SCSI interface on the board and the cable connecting to it

The SCSI standard (traditionally this abbreviation is read in Russian transcription as “skazi”) was originally intended for use in personal computers, as evidenced by the very name of the format - Small Computer System Interface, or system interface for small computers. However, it so happened that drives of this type were used mainly in top-class personal computers, and subsequently in servers. This was due to the fact that, despite the successful architecture and a wide set of commands, the technical implementation of the interface was quite complex and was not affordable for mass PCs.

However, this standard had a number of features that were not available for other types of interfaces. For example, the cord for connecting Small Computer System Interface devices can have a maximum length of 12 m, and the data transfer speed can be 640 MB/s.

Like the IDE interface that appeared a little later, the SCSI interface is parallel. This means that the interface uses buses that transmit information over several conductors. This feature was one of the limiting factors for the development of the standard, and therefore a more advanced, consistent SAS standard (from Serial Attached SCSI) was developed as its replacement.

SAS - Serial Attached SCSI

This is what the SAS server disk interface looks like

Serial Attached SCSI was developed as an improvement to the rather old Small Computers System Interface for connecting hard drives. Despite the fact that Serial Attached SCSI uses the main advantages of its predecessor, it nevertheless has many advantages. Among them it is worth noting the following:

  • Use of a common bus by all devices.
  • The serial communication protocol used by SAS allows for fewer signal lines to be used.
  • There is no need for bus termination.
  • Virtually unlimited number of connected devices.
  • Higher throughput(up to 12 Gbit/s). Future implementations of the SAS protocol are expected to support data transfer rates of up to 24 Gbit/s.
  • Possibility of connecting drives with Serial ATA interface to the SAS controller.

As a rule, Serial Attached SCSI systems are built on the basis of several components. The main components include:

  • Target devices. This category includes the actual drives or disk arrays.
  • Initiators are chips designed to generate requests to target devices.
  • Data delivery system - cables connecting target devices and initiators

Serial Attached SCSI connectors come in different shapes and sizes, depending on the type (external or internal) and SAS versions. Below are the SFF-8482 internal connector and the SFF-8644 external connector designed for SAS-3:

On the left is an internal SAS connector SFF-8482; On the right is an external SAS SFF-8644 connector with a cable.

A few examples of the appearance of SAS cords and adapters: HD-Mini SAS cord and SAS-Serial ATA adapter cord.

On the left is the HD Mini SAS cable; On the right is an adapter cable from SAS to Serial ATA.

Firewire - IEEE 1394

Today you can often find hard disks with Firewire interface. Although through Firewire interface You can connect any type of peripheral device to your computer, and it is not a specialized interface designed exclusively for connecting hard drives, however, Firewire has a number of features that make it extremely convenient for this purpose.

FireWire - IEEE 1394 - view on a laptop

The Firewire interface was developed in the mid-1990s. The development began with the well-known company Apple, which needed its own bus, different from USB, for connecting peripheral equipment, primarily multimedia. The specification describing the operation of the Firewire bus is called IEEE 1394.

Firewire is one of the most commonly used high-speed serial external bus formats today. The main features of the standard include:

  • Possibility of hot connection of devices.
  • Open bus architecture.
  • Flexible topology for connecting devices.
  • Data transfer speeds vary widely – from 100 to 3200 Mbit/s.
  • The ability to transfer data between devices without a computer.
  • Possibility of organization local networks using a tire.
  • Power transmission via bus.
  • A large number of connected devices (up to 63).

To connect hard drives (usually via external hard drive enclosures) via the Firewire bus, as a rule, a special SBP-2 standard is used, which uses the Small Computers System Interface protocol command set. It is possible to connect Firewire devices to a regular USB connector, but this requires a special adapter.

IDE - Integrated Drive Electronics

The abbreviation IDE is undoubtedly known to most personal computer users. The interface standard for connecting IDE hard drives was developed by a well-known hard drive manufacturer - Western Digital. The advantage of the IDE over other interfaces that existed at the time, in particular the Small Computers System Interface, as well as the ST-506 standard, was that there was no need to install hard controller drive to the motherboard. The IDE standard implied installing a drive controller on the drive itself, and only a host interface adapter for connecting IDE drives remained on the motherboard.

IDE interface on motherboard

This innovation has improved the operating parameters of the IDE drive due to the fact that the distance between the controller and the drive itself has been reduced. In addition, installing an IDE controller inside the hard drive case made it possible to somewhat simplify both motherboards and the production of hard drives themselves, since the technology gave freedom to manufacturers in terms of optimal organization of the logic of the drive.

The new technology was initially called Integrated Drive Electronics. Subsequently, a standard was developed to describe it, called ATA. This name is derived from the last part of the name of the PC/AT family of computers by adding the word Attachment.

An IDE cable is used to connect a hard drive or other device, such as an optical drive that supports Integrated Drive Electronics technology, to the motherboard. Since ATA refers to parallel interfaces (therefore it is also called Parallel ATA or PATA), that is, interfaces that provide simultaneous data transmission over several lines, its data cable has a large number of conductors (usually 40, and in latest versions protocol, it was possible to use an 80-core cable). A typical data cable for this standard is flat and wide, but round cables are also available. The power cable for Parallel ATA drives has a 4-pin connector and is connected to the computer's power supply.

Below are examples of IDE cable and round PATA data cable:

Appearance interface cable: on the left - flat, on the right in round braid - PATA or IDE.

Thanks to the comparative low cost of Parallel ATA drives, the ease of implementation of the interface on the motherboard, as well as the ease of installation and configuration of PATA devices for the user, Integrated Drive Electronics type drives have for a long time pushed out devices of other interface types from the market of hard drives for budget-level personal computers.

However, the PATA standard also has a number of disadvantages. First of all, this is a limitation on the length that a Parallel ATA data cable can have - no more than 0.5 m. In addition, the parallel organization of the interface imposes a number of restrictions on the maximum data transfer speed. It does not support the PATA standard and many of the advanced features that other types of interfaces have, such as hot plugging of devices.

SATA - Serial ATA

View of the SATA interface on the motherboard

The SATA (Serial ATA) interface, as the name suggests, is an improvement over ATA. This improvement consists, first of all, in converting the traditional parallel ATA (Parallel ATA) into a serial interface. However, the differences between the Serial ATA standard and the traditional one are not limited to this. In addition to changing the data transmission type from parallel to serial, the data and power connectors also changed.

Below is the SATA data cable:

Data cable for SATA interface

This made it possible to use a much longer cord and increase the data transfer speed. However, the downside was the fact that PATA devices, which were present on the market in huge quantities before the advent of SATA, became impossible to connect directly to the new connectors. True, most new motherboards still have old connectors and support connecting older devices. However, the reverse operation - connecting a new type of drive to an old motherboard usually causes much more problems. For this operation, the user usually requires a Serial ATA to PATA adapter. The power cable adapter usually has a relatively simple design.

Serial ATA to PATA power adapter:

On the left is a general view of the cable; Enlarged on the right appearance PATA and Serial ATA connectors

However, the situation is more complicated with a device such as an adapter for connecting a serial interface device to a parallel interface connector. Typically, an adapter of this type is made in the form of a small microcircuit.

Appearance of a universal bidirectional adapter between SATA - IDE interfaces

Currently, the Serial ATA interface has practically replaced Parallel ATA, and PATA drives can now be found mainly only in fairly old computers. Another feature of the new standard that ensured its wide popularity was support.

Type of adapter from IDE to SATA

You can tell us a little more about NCQ technology. The main advantage of NCQ is that it allows you to use ideas that have long been implemented in the SCSI protocol. In particular, NCQ supports a system for sequencing read/write operations across multiple drives installed in a system. Thus, NCQ can significantly improve the performance of drives, especially hard drive arrays.

Type of adapter from SATA to IDE

To use NCQ, technology support is required on the hard drive side, as well as on the motherboard host adapter. Almost all adapters that support AHCI also support NCQ. In addition, some older proprietary adapters also support NCQ. Also, for NCQ to work, it requires support from the operating system.

eSATA - External SATA

It is worth mentioning separately the eSATA (External SATA) format, which seemed promising at the time, but never became widespread. As you can guess from the name, eSATA is a type of Serial ATA designed for connecting exclusively external drives. The eSATA standard offers most of the capabilities of the standard for external devices, i.e. internal Serial ATA, in particular, the same system of signals and commands and the same high speed.

eSATA connector on a laptop

However, eSATA also has some differences from the internal bus standard that gave birth to it. In particular, eSATA supports a longer data cable (up to 2 m) and also has higher power requirements for drives. Additionally, eSATA connectors are slightly different from standard Serial ATA connectors.

Compared to other external buses, such as USB and Firewire, eSATA, however, has one significant drawback. While these buses allow the device to be powered via the bus cable itself, the eSATA drive requires special connectors for power. Therefore, despite the relatively high data transfer speed, eSATA is currently not very popular as an interface for connecting external drives.

Conclusion

Information stored on a hard drive cannot be useful to the user or accessible to application programs until it is accessed by the computer's central processing unit. Hard drive interfaces provide a means of communication between these drives and the motherboard. Today, there are many different types of hard drive interfaces, each of which has its own advantages, disadvantages and characteristic features. We hope that the information provided in this article will be largely useful to the reader, because the choice of a modern hard drive is largely determined not only by its internal characteristics, such as capacity, cache memory, access and rotation speed, but also by the interface for which it was developed.

Briefly about modern RAID controllers

Currently, RAID controllers as a separate solution are aimed exclusively at the specialized server segment of the market. Indeed, all modern motherboards for custom PCs (not server boards) have integrated software and hardware SATA RAID controllers, the capabilities of which are more than enough for PC users. However, you need to keep in mind that these controllers are focused exclusively on using the Windows operating system. IN operating systems In the Linux family, RAID arrays are created in software, and all calculations are transferred from the RAID controller to the central processor.

Servers traditionally use either software-hardware or pure hardware RAID controllers. Hardware RAID controller allows you to create and maintain a RAID array without the participation of the operating system and central processor. Such RAID arrays are seen by the operating system as one disk (SCSI disk). In this case, no specialized driver is needed - a standard (included in the operating system) SCSI disk driver is used. In this regard, hardware controllers are platform-independent, and the RAID array is configured through the controller's BIOS. A hardware RAID controller does not use the central processor when calculating all checksums, etc., since it uses its own specialized processor and RAM for calculations.

Hardware-software controllers require a specialized driver, which replaces the standard SCSI disk driver. In addition, hardware and software controllers are equipped with management utilities. In this regard, software and hardware controllers are tied to a specific operating system. All necessary calculations in this case are also performed by the processor of the RAID controller itself, but the use driver software and management utilities allow you to manage the controller through the operating system, and not just through the controller’s BIOS.

Considering the fact that server SCSI drives have already been replaced by SAS drives, all modern server RAID controllers are designed to support either SAS or SATA drives, which are also used in servers.

Last year, drives with the new SATA 3 (SATA 6 Gb/s) interface began to appear on the market, which began to gradually replace the SATA 2 (SATA 3 Gb/s) interface. Well, disks with a SAS interface (3 Gbit/s) were replaced by disks with a SAS 2.0 interface (6 Gbit/s). Naturally, the new SAS 2.0 standard is fully compatible with the old standard.

Accordingly, RAID controllers with support for the SAS 2.0 standard appeared. It would seem, what is the point of moving to the SAS 2.0 standard, if even the fastest SAS disks have a data read and write speed of no higher than 200 MB/s and the throughput of the SAS protocol (3 Gbit/s or 300 MB/s) is quite sufficient for them? ?

Indeed, when each drive is connected to a separate port on the RAID controller, 3 Gbps of throughput (which in theory is 300 MB/s) is quite enough. However, not only individual disks, but also disk arrays (disk cages) can be connected to each port of the RAID controller. In this case, one SAS channel is shared between several drives at once, and a throughput of 3 Gbit/s will no longer be enough. Well, in addition, you need to take into account the presence of SSD drives, the read and write speeds of which have already exceeded the 300 MB/s level. For example, the new Intel SSD 510 drive has sequential read speeds of up to 500 MB/s and sequential write speeds of up to 315 MB/s.

After a brief introduction to the current situation in the server RAID controller market, let's look at the characteristics of the LSI 3ware SAS 9750-8i controller.

Characteristics of the 3ware SAS 9750-8i RAID controller

This RAID controller is based on a specialized XOR processor LSI SAS2108 with a clock frequency of 800 MHz and PowerPC architecture. This processor uses 512 MB random access memory DDRII 800 MHz with error correction (ECC).

The LSI 3ware SAS 9750-8i controller is compatible with SATA and SAS drives (both HDD and SSD drives are supported) and allows you to connect up to 96 devices using SAS expanders. It is important that this controller supports drives with SATA 600 MB/s (SATA III) and SAS 2 interfaces.

To connect drives, the controller has eight ports, which are physically combined into two Mini-SAS SFF-8087 connectors (four ports in each connector). That is, if drives are connected directly to the ports, then a total of eight drives can be connected to the controller, and when disk cages are connected to each port, the total volume of drives can be increased to 96. Each of the eight controller ports has a bandwidth of 6 Gbps, which corresponds to SAS 2 and SATA III standards.

Naturally, when connecting disks or disk cages to this controller, you will need specialized cables, which at one end have an internal Mini-SAS SFF-8087 connector, and at the other end - a connector that depends on what exactly is connected to the controller. For example, when connecting SAS drives directly to the controller, you must use a cable that has a Mini-SAS SFF-8087 connector on one side, and four SFF 8484 connectors on the other, which allow you to directly connect SAS drives. Please note that the cables themselves are not included in the package and must be purchased separately.

The LSI 3ware SAS 9750-8i controller has a PCI Express 2.0 x8 interface, which provides 64 Gbps throughput (32 Gbps in each direction). It is clear that this throughput is quite enough for fully loaded eight SAS ports with a throughput of 6 Gbps each. Also note that the controller has a special connector into which you can optionally connect a backup battery LSIiBBU07.

It is important that this controller requires driver installation, that is, it is a hardware-software RAID controller. Operating systems such as Windows Vista, Windows Server 2008, Windows Server 2003 x64, Windows 7, Windows 2003 Server, MAC OS X, LinuxFedora Core 11, Red Hat Enterprise Linux 5.4, OpenSuSE 11.1, SuSE Linux Enterprise Server (SLES) 11, OpenSolaris 2009.06, VMware ESX/ESXi 4.0/4.0 update-1 and other systems of the Linux family. The package also includes software 3ware Disk Manager 2, which allows you to manage RAID arrays through the operating system.

The LSI 3ware SAS 9750-8i controller supports standard RAID array types: RAID 0, 1, 5, 6, 10 and 50. Perhaps the only array type that is not supported is RAID 60. This is due to the fact that this controller is capable create a RAID 6 array with only five drives connected directly to each controller port (theoretically, RAID 6 can be created on four drives). Accordingly, for a RAID 60 array, this controller requires at least ten disks, which simply do not exist.

It is clear that support for a RAID 1 array is irrelevant for such a controller, since this type The array is created on only two disks, and using such a controller for only two disks is illogical and extremely wasteful. But support for RAID 0, 5, 6, 10 and 50 arrays is very relevant. Although, perhaps, we were too hasty with the RAID 0 array. However, this array does not have redundancy, and therefore does not provide reliable data storage, so it is used extremely rarely in servers. However, theoretically this array is the fastest in terms of data read and write speed. However, let's remember what different types RAID arrays are different from each other and what they are.

RAID levels

The term “RAID array” appeared in 1987, when American researchers Patterson, Gibson and Katz from the University of California at Berkeley in their article “A case for redundant arrays of inexpensive discs, RAID” described how this way you can combine several cheap hard drives into one logical device so that the result is increased system capacity and performance, and the failure of individual disks does not lead to failure of the entire system. Almost 25 years have passed since the publication of this article, but the technology of building RAID arrays has not lost its relevance today. The only thing that has changed since then is the decoding of the RAID acronym. The fact is that initially RAID arrays were not built on cheap disks at all, so the word Inexpensive (“inexpensive”) was changed to Independent (“independent”), which was more in line with reality.

Fault tolerance in RAID arrays is achieved through redundancy, that is, part of the disk space capacity is allocated for service purposes, becoming inaccessible to the user.

Increased performance of the disk subsystem is ensured by the simultaneous operation of several disks, and in this sense, the more disks in the array (up to a certain limit), the better.

The joint operation of disks in an array can be organized using either parallel or independent access. With parallel access, disk space is divided into blocks (strips) for recording data. Similarly, information to be written to disk is divided into the same blocks. When recording, individual blocks are written to different disks, and writing several blocks to different disks occurs simultaneously, which leads to increased performance in write operations. Necessary information it is also read in separate blocks simultaneously from several disks, which also increases performance in proportion to the number of disks in the array.

It should be noted that the parallel access model is implemented only if the size of the data write request is larger than the size of the block itself. Otherwise, parallel recording of several blocks is almost impossible. Let's imagine a situation where the size of an individual block is 8 KB, and the size of a request to write data is 64 KB. In this case, the source information is cut into eight blocks of 8 KB each. If you have a four-disk array, you can write four blocks, or 32 KB, at a time. Obviously, in the example considered, the write and read speeds will be four times higher than when using a single disk. This is only true for an ideal situation, but the request size is not always a multiple of the block size and the number of disks in the array.

If the size of the recorded data is less than the block size, then a fundamentally different model is implemented - independent access. Moreover, this model can also be used when the size of the data being written is larger than the size of one block. With independent access, all data from a single request is written to a separate disk, that is, the situation is identical to working with one disk. The advantage of the independent access model is that if several write (read) requests arrive simultaneously, they will all be executed on separate disks independently of each other. This situation is typical, for example, for servers.

In accordance with different types of access, there are different types of RAID arrays, which are usually characterized by RAID levels. In addition to the type of access, RAID levels differ in the way they accommodate and generate redundant information. Redundant information can either be placed on a dedicated disk or distributed among all disks.

Currently, there are several RAID levels that are widely used - RAID 0, RAID 1, RAID 5, RAID 6, RAID 10, RAID 50 and RAID 60. Previously, RAID 2, RAID 3 and RAID 4 were also used, however These RAID levels are not currently used and modern RAID controllers do not support them. Note that all modern RAID controllers also support the JBOD (Just a Bench Of Disks) function. In this case, we are not talking about a RAID array, but simply about connecting individual disks to a RAID controller.

RAID 0

RAID 0, or striping, is, strictly speaking, not a RAID array, since such an array does not have redundancy and does not provide reliable data storage. However, historically it is also called a RAID array. A RAID 0 array (Fig. 1) can be built on two or more disks and is used when it is necessary to provide high performance disk subsystem, and the reliability of data storage is not critical. When creating a RAID 0 array, information is divided into blocks (these blocks are called stripes), which are simultaneously written to separate disks, that is, a system with parallel access is created (if, of course, the block size allows). By allowing simultaneous I/O from multiple drives, RAID 0 provides the fastest data transfer speeds and maximum disk space efficiency because no storage space is required for checksums. The implementation of this level is very simple. RAID 0 is mainly used in areas where fast transfer of large amounts of data is required.

Rice. 1. RAID 0 array

Theoretically, the increase in read and write speed should be a multiple of the number of disks in the array.

The reliability of a RAID 0 array is obviously lower than the reliability of any of the disks individually and decreases with increasing number of disks included in the array, since the failure of any of them leads to the inoperability of the entire array. If the MTBF of each disk is MTTF disk, then the MTBF of a RAID 0 array consisting of n disks is equal to:

MTTF RAID0 = MTTD disk /n.

If we denote the probability of failure of one disk over a certain period of time as p, then for a RAID 0 array of n disks, the probability that at least one disk will fail (the probability of an array crash) will be:

P (array drop) = 1 – (1 – p) n.

For example, if the probability of failure of one disk within three years of operation is 5%, then the probability of failure of a RAID 0 array of two disks is already 9.75%, and of eight disks - 33.7%.

RAID 1

RAID 1 (Figure 2), also called a mirror, is a two-disk array with 100 percent redundancy. That is, the data is completely duplicated (mirrored), due to which a very high level of reliability (as well as cost) is achieved. Note that to implement RAID 1, it is not necessary to first partition the disks and data into blocks. In the simplest case, two disks contain the same information and are one logical disk. If one disk fails, its functions are performed by another (which is absolutely transparent to the user). Array recovery in progress simple copying. In addition, in theory, a RAID 1 array should double the read speed of information, since this operation can be performed simultaneously from two disks. This type of information storage scheme is used mainly in cases where the cost of data security is much higher than the cost of implementing a storage system.

Rice. 2. RAID 1 array

If, as in the previous case, we denote the probability of failure of one disk over a certain period of time as p, then for a RAID 1 array the probability that both disks fail at the same time (probability of array failure) is:

P (array drop) = P 2.

For example, if the probability of failure of one disk within three years of operation is 5%, then the probability of simultaneous failure of two disks is already 0.25%.

RAID 5

The RAID 5 array (Fig. 3) is a fault-tolerant disk array with distributed storage of checksums. When writing, the data stream is divided into blocks (stripes) at the byte level, which are simultaneously written to all disks of the array in cyclic order.

Rice. 3. RAID 5 array

Suppose the array contains n disks, and the stripe size is d. For each portion of n–1 stripes checksum is calculated p.

Stripe d 1 recorded on the first disk, stripe d 2- on the second and so on up to the stripe d n–1, which is written to the (n–1)th disk. Next on nth disk checksum is written p n, and the process is repeated cyclically from the first disk on which the stripe is written d n.

Recording process ( n–1) stripes and their checksum are produced simultaneously for all n disks.

The checksum is calculated using a bitwise exclusive-or (XOR) operation applied to the data blocks being written. So, if there is n hard drives and d- data block (stripe), then the checksum is calculated using the following formula:

pn=d1d 2 ⊕ ... dn–1.

If any disk fails, the data on it can be restored using the control data and the data remaining on the working disks. Indeed, using the identities (ab) A b=a And aa = 0 , we get that:

p n⊕ (dkp n) = d ld n⊕ ...⊕ ...⊕ dn–l⊕ (dkpn).

d k = d 1d n⊕ ...⊕ d k–1d k+1⊕ ...⊕ p n.

Thus, if a disk with a block fails dk, then it can be restored using the value of the remaining blocks and the checksum.

In the case of RAID 5, all disks in the array must be the same size, but the total capacity of the disk subsystem available for writing becomes exactly one disk less. For example, if five disks are 100 GB in size, then the actual size of the array is 400 GB because 100 GB is allocated for control information.

A RAID 5 array can be built on three or more hard drives. As the number of hard drives in an array increases, its redundancy decreases. Note also that a RAID 5 array can be restored if only one disk fails. If two disks fail at the same time (or if the second disk fails during the process of restoring the array), then the array cannot be restored.

RAID 6

RAID 5 has been shown to be recoverable when one drive fails. However, sometimes it is necessary to ensure a higher level of reliability than in a RAID 5 array. In this case, you can use a RAID 6 array (Fig. 4), which allows you to restore the array even if two disks fail at the same time.

Rice. 4. RAID 6 array

RAID 6 is similar to RAID 5, but it uses not one, but two checksums that are distributed cyclically across the disks. First checksum p is calculated using the same algorithm as in a RAID 5 array, that is, it is an XOR operation between data blocks written to different disks:

pn=d1d2⊕ ...⊕ dn–1.

The second checksum is calculated using a different algorithm. Without going into mathematical details, this is also an XOR operation between blocks of data, but each block of data is first multiplied by a polynomial coefficient:

q n = g 1 d 1g 2 d 2⊕ ...⊕ g n–1 d n–1 .

Accordingly, the capacity of two disks in the array is allocated for checksums. Theoretically, a RAID 6 array can be created on four or more drives, but in many controllers it can be created on a minimum of five drives.

Keep in mind that the performance of a RAID 6 array is typically 10-15% lower than that of a RAID 5 array (assuming the same number of drives), due to the large amount of calculations performed by the controller (it is necessary to calculate the second checksum, as well as read and overwrite more disk blocks each time a block is written).

RAID 10

A RAID 10 array (Figure 5) is a combination of levels 0 and 1. This level requires a minimum of four drives. In a RAID 10 array of four disks, they are combined in pairs into RAID 1 arrays, and both of these arrays as logical disks are combined into a RAID 0 array. Another approach is also possible: initially the disks are combined into RAID 0 arrays, and then logical disks based on these arrays - to a RAID 1 array.

Rice. 5. RAID 10 array

RAID 50

A RAID 50 array is a combination of levels 0 and 5 (Figure 6). The minimum requirement for this level is six disks. In a RAID 50 array, two RAID 5 arrays are first created (with a minimum of three drives each), which are then combined as logical drives into a RAID 0 array.

Rice. 6. RAID 50 array

Methodology for testing the LSI 3ware SAS 9750-8i controller

To test the LSI 3ware SAS 9750-8i RAID controller, we used a specialized test package IOmeter 1.1.0 (version 2010.12.02). The test bench had the following configuration:

  • processor - Intel Core i7-990 (Gulftown);
  • motherboard- GIGABYTE GA-EX58-UD4;
  • memory - DDR3-1066 (3 GB, three-channel operating mode);
  • system disk - WD Caviar SE16 WD3200AAKS;
  • video card - GIGABYTE GeForce GTX480 SOC;
  • RAID controller - LSI 3ware SAS 9750-8i;
  • SAS drives connected to the RAID controller are Seagate Cheetah 15K.7 ST3300657SS.

Testing was carried out under operating system control Microsoft Windows 7 Ultimate (32-bit).

We used the Windows RAID controller driver version 5.12.00.007, and also updated the controller firmware to version 5.12.00.007.

The system drive was connected to SATA, implemented through a controller integrated into south bridge Intel X58 chipset, and SAS drives were connected directly to the RAID controller ports using two Mini-SAS SFF-8087 -> 4 SAS cables.

The RAID controller was installed in the PCI Express x8 slot on the motherboard.

The controller was tested with the following RAID arrays: RAID 0, RAID 1, RAID 5, RAID 6, RAID 10 and RAID 50. The number of disks combined into a RAID array varied for each array type from a minimum value to eight.

The stripe size on all RAID arrays did not change and was 256 KB.

Let us remind you that the IOmeter package allows you to work both with disks on which a logical partition has been created, and with disks without a logical partition. If a disk is tested without a logical partition created on it, then IOmeter works at the level of logical data blocks, that is, instead of the operating system, it transmits commands to the controller to write or read LBA blocks.

If a logical partition is created on the disk, then initially the IOmeter utility creates a file on the disk that, by default, occupies the entire logical partition (in principle, the size of this file can be changed by specifying it in the number of 512 byte sectors), and then it works with this file, that is, it reads or writes (overwrites) individual LBA blocks within this file. But again, IOmeter works bypassing the operating system, that is, it directly sends requests to the controller to read/write data.

In general, when testing HDD disks, as practice shows, there is practically no difference between the results of testing a disk with a created logical partition and without it. At the same time, we believe that it is more correct to test without a created logical partition, since in this case the test results do not depend on the file system used (NTFA, FAT, ext, etc.). This is why we performed testing without creating logical partitions.

In addition, the IOmeter utility allows you to set the request block size (Transfer Request Size) for writing/reading data, and the test can be carried out both for sequential reading and writing, when LBA blocks are read and written sequentially one after another, and for random (Random), when LBA blocks are read and written in random order. When creating a load scenario, you can set the test time, the percentage ratio between sequential and random operations (Percent Random/Sequential Distribution), as well as the percentage ratio between read and write operations (Percent Read/Write Distribution). In addition, the IOmeter utility allows you to automate the entire testing process and saves all results in a CSV file, which is then easily exported to an Excel spreadsheet.

Another setting that the IOmeter utility allows you to do is the so-called alignment of blocks of data transfer requests (Align I/Os on) along boundaries sectors of hard disk. By default, IOmeter aligns request blocks to 512-byte disk sector boundaries, but you can specify a custom alignment. Actually, most hard drives have a sector size of 512 bytes and only Lately Disks with a sector size of 4 KB began to appear. Let us recall that in HDD disks, a sector is the minimum addressable size of data that can be written to or read from the disk.

When testing, it is necessary to set the alignment of data transfer request blocks to the disk sector size. Since the Seagate Cheetah 15K.7 ST3300657SS drives have a 512-byte sector size, we used 512-byte sector boundary alignment.

By using test package IOmeter we measured the sequential read and write speed, as well as the random read and write speed of the created RAID array. The sizes of transferred data blocks were 512 bytes, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 and 1024 KB.

In the listed load scenarios, the test time with each request to transfer a data block was 5 minutes. Also note that in all of the tests listed, we set the task queue depth (# of Outstanding I/Os) to 4 in the IOmeter settings, which is typical for user applications.

Test results

After analyzing the test results, we were surprised by the performance of the LSI 3ware SAS 9750-8i RAID controller. And so much so that they began to review our scripts to identify errors in them, and then repeated testing many times with other RAID controller settings. We changed the stripe size and the operating mode of the RAID controller cache. This, of course, was reflected in the results, but did not change the general nature of the dependence of the data transfer rate on the size of the data block. But we could not explain this dependence. The operation of this controller seems completely illogical to us. Firstly, the results are unstable, that is, for each fixed data block size, the speed changes periodically and the average result has a large error. Note that usually the results of testing disks and controllers using the IOmeter utility are stable and differ very slightly.

Secondly, as the block size increases, the data transfer rate should increase or remain unchanged in saturation mode (when the speed reaches its maximum value). However, in the case of the LSI 3ware SAS 9750-8i controller, a sharp drop in data transfer speed is observed at certain block sizes. In addition, it remains a mystery to us why, with the same number of disks for RAID 5 and RAID 6 arrays, the write speed is higher than the read speed. In a word, we cannot explain the operation of the LSI 3ware SAS 9750-8i controller - we can only state the facts.

Test results can be classified in different ways. For example, by boot scenarios, where for each boot type results are given for all possible RAID arrays with different numbers of connected disks, or by RAID array types, when for each RAID array type results are shown with different numbers of disks in sequential read scenarios , sequential write, random read and random write. You can also classify the results by the number of disks in the array, when for each number of disks connected to the controller, results are given for all possible (for a given number of disks) RAID arrays in the scenarios of sequential read and sequential write, random read and random write.

We decided to classify the results by array type, because, in our opinion, despite the rather large number of graphs, this presentation is more clear.

RAID 0

A RAID 0 array can be created with two to eight disks. The test results for the RAID 0 array are shown in Fig. 7-15.

Rice. 7. Sequential read and write speed
with eight disks in a RAID 0 array

Rice. 8. Sequential read and write speed
with seven disks in a RAID 0 array

Rice. 9. Sequential reading speed
and recording with six disks in a RAID 0 array

Rice. 10. Sequential read and write speed
with five disks in a RAID 0 array

Rice. 11. Sequential read and write speed
with four disks in a RAID 0 array

Rice. 12. Sequential read and write speed
with three disks in a RAID 0 array

Rice. 13. Sequential read and write speed
with two disks in a RAID 0 array

Rice. 14. Random read speed
in a RAID 0 array

Rice. 15. Random write speed in RAID 0 array

It is clear that the most high speed Sequential reads and writes in a RAID 0 array are achieved with eight disks. It is worth paying attention to the fact that with eight and seven disks in a RAID 0 array, the sequential read and write speeds are almost identical to each other, and with fewer disks, the sequential write speed becomes higher than the read speed.

It should also be noted that there are characteristic dips in the speed of sequential reading and writing at certain block sizes. For example, with eight and six disks in the array, such failures are observed with data block sizes of 1 and 64 KB, and with seven disks - with sizes of 1, 2 and 128 KB. Similar failures, but with different sizes of data blocks, also exist with four, three and two disks in the array.

In terms of sequential read and write speed (as a characteristic averaged over all block sizes), the RAID 0 array outperforms all other possible arrays in configurations with eight, seven, six, five, four, three and two disks.

Random access in a RAID 0 array is also quite interesting. The random read speed for each data block size is proportional to the number of disks in the array, which is quite logical. Moreover, with a block size of 512 KB, with any number of disks in the array, a characteristic dip in random read speed is observed.

With random recording for any number of disks in the array, the speed increases with the size of the data block and there are no dips in speed. At the same time, it should be noted that the highest speed in this case is achieved not with eight, but with seven disks in the array. Next in random write speed is an array of six disks, then five, and only then eight disks. Moreover, in terms of random write speed, an array of eight disks is almost identical to an array of four disks.

In terms of random write speed, RAID 0 outperforms all other available arrays in eight-, seven-, six-, five-, four-, three-, and two-disk configurations. But in terms of random read speed in a configuration with eight disks, RAID 0 is inferior to RAID 10 and RAID 50 arrays, but in a configuration with fewer disks, RAID 0 is the leader in random read speed.

RAID 5

A RAID 5 array can be created with three to eight disks. The test results for the RAID 5 array are shown in Fig. 16-23.

Rice. 16. Sequential read and write speed
with eight drives in a RAID 5 array

Rice. 17. Sequential read and write speed
with seven disks in a RAID 5 array

Rice. 18. Sequential read and write speed
with six drives in a RAID 5 array

Rice. 19. Sequential read and write speed
with five disks in a RAID 5 array

Rice. 20. Sequential read and write speed
with four drives in a RAID 5 array

Rice. 21. Sequential read and write speed
with three disks in a RAID 5 array

Rice. 22. Random read speed
in a RAID 5 array

Rice. 23. Random write speed
in a RAID 5 array

It is clear that the highest read and write speeds are achieved with eight disks. It is worth paying attention to the fact that for a RAID 5 array, the sequential write speed is on average higher than the read speed. However, at a certain request size, sequential read speeds can exceed sequential write speeds.

One cannot help but note the characteristic dips in sequential read and write speeds at certain block sizes for any number of disks in the array.

In eight-drive sequential read and write speeds, RAID 5 is inferior to RAID 0 and RAID 50, but superior to RAID 10 and RAID 6. In seven-drive configurations, RAID 5 is inferior to RAID 0 and RAID 5 in sequential read and write speeds. superior to RAID 6 array (other types of arrays are not possible with this number of disks).

In six-drive configurations, RAID 5 is inferior in sequential read speed to RAID 0 and RAID 50, and second only to RAID 0 in sequential write speed.

In five-, four-, and three-drive configurations, RAID 5 is second only to RAID 0 in sequential read and write speeds.

Random access in a RAID 5 array is similar to random access in a RAID 0 array. Thus, the random read speed for each data block size is proportional to the number of disks in the array, and with a block size of 512 KB, for any number of disks in the array, there is a characteristic dip in the random read speed. Moreover, it should be noted that the random read speed weakly depends on the number of disks in the array, that is, for any number of disks it is approximately the same.

In terms of random read speed, the RAID 5 array in configurations with eight, seven, six, four and three disks is inferior to all other arrays. And only in a five-drive configuration is it marginally ahead of a RAID 6 array.

In terms of random write speed, a RAID 5 array in an eight-disk configuration is second only to RAID 0 and RAID 50 arrays, and in a configuration with seven and five, four and three disks it is second only to a RAID 0 array.

In a six-drive configuration, RAID 5 is inferior in random write performance to RAID 0, RAID 50, and RAID 10.

RAID 6

The LSI 3ware SAS 9750-8i controller allows you to create a RAID 6 array with a number of disks from five to eight. The test results for the RAID 6 array are shown in Fig. 24-29.

Rice. 24. Sequential read and write speed
with eight drives in a RAID 6 array

Rice. 25. Sequential read and write speed
with seven disks in a RAID 6 array

We also note characteristic dips in the speed of sequential reading and writing at certain block sizes for any number of disks in the array.

In terms of sequential read speed, the RAID 6 array is inferior to all other arrays in configurations with any (from eight to five) number of disks.

In terms of sequential recording speed, the situation is somewhat better. In an eight-drive configuration, RAID 6 outperforms RAID 10, and in a six-drive configuration, it outperforms both RAID 10 and RAID 50 arrays. However, in seven- and five-drive configurations, when creating RAID 10 and RAID 50 arrays is impossible, this array outperforms in last place in terms of sequential recording speed.

Random access in a RAID 6 array is similar to random access in RAID 0 and RAID 5 arrays. Thus, the random read speed with a block size of 512 KB for any number of disks in the array has a characteristic dip in random read speed. Note that the maximum random read speed is achieved with six disks in the array. Well, with seven and eight disks, the random read speed is almost the same.

With random recording for any number of disks in the array, the speed increases with the size of the data block and there are no dips in speed. In addition, although the random write speed is proportional to the number of disks in the array, the difference in speed is insignificant.

In terms of random read speed, the RAID 6 array in configurations with eight and seven disks is ahead only of the RAID 5 array and inferior to all other possible arrays.

In a six-drive configuration, RAID 6 is inferior to RAID 10 and RAID 50 in random read performance, and in a five-drive configuration, it is inferior to RAID 0 and RAID 5.

In terms of random write speed, the RAID 6 array, with any number of connected disks, is inferior to all other possible arrays.

In general, it can be stated that the RAID 6 array is inferior in performance to RAID 0, RAID 5, RAID 50 and RAID 10 arrays. That is, in terms of performance, this type of array was in last place.

Rice. 33. Random Read Speed
in a RAID 10 array

Rice. 34. Random write speed in RAID 10 array

It is typical that in arrays of eight and six disks the sequential read speed is higher than the write speed, and in an array of four disks these speeds are almost the same for any data block size.

The RAID 10 array, as well as all other arrays considered, is characterized by a drop in sequential read and write speeds for certain data block sizes for any number of disks in the array.

With random recording for any number of disks in the array, the speed increases with the size of the data block and there are no dips in speed. In addition, the random write speed is proportional to the number of disks in the array.

In terms of sequential read speed, the RAID 10 array follows RAID 0, RAID 50 and RAID 5 arrays in configurations with eight, six and four disks, and in terms of sequential write speed it is inferior even to the RAID 6 array, that is, it follows the RAID 0 arrays. RAID 50, RAID 5 and RAID 6.

But in terms of random read speed, the RAID 10 array is ahead of all other arrays in configurations with eight, six and four disks. But in terms of random write speed, this array is inferior to RAID 0, RAID 50 and RAID 5 arrays in an eight-disk configuration, RAID 0 and RAID 50 arrays in a six-disk configuration, and RAID 0 and RAID 5 arrays in a four-disk configuration.

RAID 50

A RAID 50 array can be built on six or eight drives. The test results for the RAID 50 array are shown in Fig. 35-38.

In the random read scenario, as for all other arrays considered, there is a characteristic performance dip with a block size of 512 KB.

With random recording for any number of disks in the array, the speed increases with the size of the data block and there are no dips in speed. In addition, the random write speed is proportional to the number of disks in the array, but the difference in speed is insignificant and is observed only with a large (more than 256 KB) data block size.

In terms of sequential read speed, RAID 50 is second only to RAID 0 (eight- and six-disk configurations). In terms of sequential write speed, RAID 50 is also second only to RAID 0 in an eight-drive configuration, and in a six-drive configuration it is inferior to RAID 0, RAID 5, and RAID 6.

But in terms of the speed of random reading and writing, the RAID 50 array is second only to the RAID 0 array and is ahead of all other arrays possible with eight and six disks.

RAID 1

As we have already noted, a RAID 1 array, which can be built on only two disks, is impractical to use on such a controller. However, for completeness, we also present results for a RAID 1 array on two disks. The test results for the RAID 1 array are shown in Fig. 39 and 40.

Rice. 39. Sequential write and read speed in RAID 1 array

Rice. 40. Random write and read speed in RAID 1 array

The RAID 10 array, as well as all other arrays considered, is characterized by a drop in sequential read and write speeds at certain data block sizes.

In the random read scenario, as with other arrays, there is a characteristic performance dip with a block size of 512 KB.

With random recording, the speed increases with the size of the data block and there are no dips in speed.

A RAID 1 array can only be mapped to a RAID 0 array (since in the case of two disks no other arrays are possible). It should be noted that RAID 1 is inferior in performance to RAID 0 with two disks in all load scenarios except random reads.

conclusions

We had rather mixed impressions from testing the LSI 3ware SAS 9750-8i controller in combination with Seagate Cheetah 15K.7 ST3300657SS SAS drives. On the one hand, he has excellent functionality, on the other hand, dips in speed at certain sizes of data blocks are alarming, which, of course, is reflected in the speed performance of RAID arrays when they operate in a real environment.

Over two years, few changes have accumulated:

  • Supermicro is moving away from the proprietary "flipped" UIO form factor for controllers. Details will be below.
  • LSI 2108 (SAS2 RAID with 512MB cache) and LSI 2008 (SAS2 HBA with optional RAID support) are still in service. Products based on these chips, both from LSI and from OEM partners, are quite well established and are still relevant.
  • LSI 2208 appeared (the same SAS2 RAID with LSI MegaRAID stack, only with dual core processor and 1024MB cache) and (an improved version of LSI 2008 with more fast processor and PCI-E 3.0 support).

Transition from UIO to WIO

As you remember, UIO boards are regular PCI-E x8 boards, in which the entire element base is located with reverse side, i.e. when installed in the left riser it is on top. This form factor was needed to install the boards in the lowest slot of the server, which made it possible to place four boards in the left riser. UIO is not only the form factor of expansion cards, it is also cases designed to install risers, the risers themselves and motherboards of a special form factor, with a cutout for the lower expansion slot and slots for installing risers.
There were two problems with this solution. Firstly, the non-standard form factor of expansion cards limited the client’s choice, because In the UIO form factor there are only a few SAS, InfiniBand and Ethernet controllers. Secondly, there is an insufficient number of PCI-E lines in the slots for risers - only 36, of which there are only 24 lines for the left riser, which is clearly not enough for four boards with PCI-E x8.
What is WIO? At first it turned out that it was possible to place four boards in the left riser without the need to “turn the sandwich butter side up,” and risers for regular boards appeared (RSC-R2UU-A4E8+). The shortage of lines (now 80) was then solved by using slots with higher pin density.
UIO riser RSC-R2UU-UA3E8+
WIO riser RSC-R2UW-4E8

Results:
  • WIO risers cannot be installed in motherboards designed for UIO (for example, X8DTU-F).
  • UIO risers cannot be installed in new boards designed for WIO.
  • There are risers for WIO (on the motherboard) that have a UIO slot for cards. Just in case you still have UIO controllers. They are used in platforms for Socket B2 (6027B-URF, 1027B-URF, 6017B-URF).
  • There will be no new controllers in the UIO form factor. For example, the USAS2LP-H8iR controller on the LSI 2108 chip will be the last, there will be no LSI 2208 for UIO - only a regular MD2 with PCI-E x8.

PCI-E controllers

IN this moment Three varieties are relevant: RAID controllers based on LSI 2108/2208 and HBAs based on LSI 2308. There is also a mysterious SAS2 HBA AOC-SAS2LP-MV8 on the Marvel 9480 chip, but I should write about it because of its exoticism. Most cases of using internal SAS HBAs are storage systems with ZFS under FreeBSD and various varieties of Solaris. Due to the absence of support problems in these OSs, the choice in 100% of cases falls on LSI 2008/2308.
LSI 2108
In addition to the UIO "AOC-USAS2LP-H8iR, which is mentioned in two more controllers were added:

AOC-SAS2LP-H8iR
LSI 2108, SAS2 RAID 0/1/5/6/10/50/60, 512MB cache, 8 internal ports (2 SFF-8087 connectors). It is an analogue of the LSI 9260-8i controller, but manufactured by Supermicro, there are minor differences in the board layout, the price is $40-50 lower than LSI. All additional LSI options are supported: activation, FastPath and CacheCade 2.0, battery cache protection - LSIiBBU07 and LSIiBBU08 (now it is preferable to use BBU08, it has an expanded temperature range and comes with a cable for remote installation).
Despite the emergence of more powerful controllers based on the LSI 2208, the LSI 2108 still remains relevant due to its lower price. Performance with conventional HDDs is sufficient in any scenario; the IOPS limit for working with SSDs is 150,000, which is for most budget solutions more than enough.

AOC-SAS2LP-H4iR
LSI 2108, SAS2 RAID 0/1/5/6/10/50/60, 512MB cache, 4 internal + 4 external ports. It is analogous to the LSI 9280-4i4e controller. Convenient for use in expander housings, because there is no need to take the output from the expander outside to connect additional JBODs, or in 1U cases with 4 disks, if necessary, provide the ability to increase the number of disks. Supports the same BBUs and activation keys.
LSI 2208

AOC-S2208L-H8iR
LSI 2208, SAS2 RAID 0/1/5/6/10/50/60, 1024MB cache, 8 internal ports (2 SFF-8087 connectors). It is analogous to the LSI 9271-8i controller. LSI 2208 is further development LSI 2108. The processor became dual-core, which made it possible to raise the IOPS performance limit to 465,000. Support for PCI-E 3.0 was added and the cache increased to 1GB.
The controller supports BBU09 cache battery protection and CacheVault flash protection. Supermicro supplies them under the part numbers BTR-0022L-LSI00279 and BTR-0024L-LSI00297, but it’s easier to purchase from us through the LSI sales channel (the second part of the part numbers are the original LSI part numbers). MegaRAID Advanced Software Options activation keys are also supported, part numbers: AOC-SAS2-FSPT-ESW (FastPath) and AOCCHCD-PRO2-KEY (CacheCade Pro 2.0).
LSI 2308 (HBA)

AOC-S2308L-L8i and AOC-S2308L-L8e
LSI 2308, SAS2 HBA (with IR firmware - RAID 0/1/1E), 8 internal ports (2 SFF-8087 connectors). This is the same controller, comes with different firmware. AOC-S2308L-L8e - IT firmware (pure HBA), AOC-S2308L-L8i - IR firmware (with support for RAID 0/1/1E). The difference is that L8i can work with IR and IT firmware, L8e - only with IT, firmware in IR is blocked. Is analogous to the LSI 9207-8 controller i. Differences from LSI 2008: faster chip (800 MHz, as a result, the IOPS limit has risen to 650 thousand), support for PCI-E 3.0 has appeared. Application: software RAIDs (ZFS, for example), budget servers.
There will be no cheap controllers with RAID-5 support based on this chip (iMR stack, ready-made controllers - LSI 9240).

Onboard controllers

In the latest products (X9 boards and platforms with them), Supermicro indicates the presence of a SAS2 controller from LSI with the number “7” in the part number, and the number “3” indicates the chipset SAS (Intel C600). But there is no difference between LSI 2208 and 2308, so be careful when choosing a board.
  • The LSI 2208-based controller soldered onto motherboards has a limitation of a maximum of 16 disks. When you add 17, it simply will not be detected, and you will see the message “PD is not supported” in the MSM log. Compensation for this is significantly more low price. For example, the combination “X9DRHi-F + external controller LSI 9271-8i” will cost about $500 more than the X9DRH-7F with LSI 2008 on board. It is not possible to get around this limitation by flashing the LSI 9271 - flashing another SBR block, as in the case of the LSI 2108, does not help.
  • Another feature is the lack of support for CacheVault modules; the boards simply do not have enough space for a special connector, so only BBU09 is supported. The possibility of installing the BBU09 depends on the housing used. For example, LSI 2208 is used in 7127R-S6 blade servers; there is a connector for connecting a BBU, but to install the module itself, additional fasteners MCP-640-00068-0N Battery Holder Bracket are required.
  • The SAS HBA (LSI 2308) firmware will now have to be updated, since sas2flash.exe does not start in DOS on any of the boards with LSI 2308 with the error "Failed to initialize PAL".

Controllers in Twin and FatTwin platforms

Some 2U Twin 2 platforms come in three versions, with three types of controllers. For example:
  • 2027TR-HTRF+ - chipset SATA
  • 2027TR-H70RF+ - LSI 2008
  • 2027TR-H71RF+ - LSI 2108
  • 2027TR-H72RF+ - LSI 2208
Such diversity is ensured by the fact that the controllers are located on a special backplane, which is connected to a special slot on the motherboard and to the disk backplane.
BPN-ADP-SAS2-H6IR (LSI 2108)


BPN-ADP-S2208L-H6iR (LSI 2208)

BPN-ADP-SAS2-L6i (LSI 2008)

Supermicro xxxBE16/xxxBE26 cases

Another topic directly related to controllers is the modernization of enclosures with . Varieties have appeared with an additional cage for two 2.5" disks located on the rear panel of the case. Purpose - a dedicated disk (or mirror) for loading the system. Of course, the system can be loaded by selecting a small volume from another disk group or from additional disks attached inside the case (in 846 cases you can install additional fasteners for one 3.5" or two 2.5" drives), but the updated modifications are much more convenient:




Moreover, these additional drives do not have to be connected specifically to the chipset SATA controller. Using the SFF8087->4xSATA cable, you can connect to the main SAS controller via the SAS expander output.
P.S. I hope the information was useful. Don't forget that you can get the most complete information and technical support for products from Supermicro, LSI, Adaptec by PMC and other vendors from True System.

Tests of RAID 6, 5, 1 and 0 arrays with Hitachi SAS-2 drives

Apparently, gone are the days when a decent professional 8-port RAID controller cost quite a lot of money. Nowadays, solutions have appeared for the Serial Attached SCSI (SAS) interface, which are very attractive in terms of price, functionality, and performance. This review is about one of them.

LSI MegaRAID SAS 9260-8i controller

Previously, we already wrote about the second generation SAS interface with a transfer speed of 6 Gbit/s and the very cheap 8-port HBA controller LSI SAS 9211-8i, designed for organizing entry-level data storage systems based on the simplest RAID arrays SAS and SATA- drives. The LSI MegaRAID SAS 9260-8i model will be a higher class - it is equipped with more powerful processor with hardware processing of arrays of levels 5, 6, 50 and 60 (ROC technology - RAID On Chip), as well as a significant volume (512 MB) of on-board SDRAM memory for effective data caching. This controller also supports SAS and SATA interfaces with a data transfer rate of 6 Gbps, and the adapter itself is designed for PCI Express x8 version 2.0 (5 Gbps per lane), which is theoretically almost enough to satisfy the needs of 8 high-speed SAS ports. And all this at a retail price of around $500, that is, only a couple of hundred more expensive than the budget LSI SAS 9211-8i. The manufacturer himself, by the way, refers this decision to the MegaRAID Value Line series, that is, economical solutions.




LSIMegaRAID SAS9260-8i 8-port SAS controller and its SAS2108 processor with DDR2 memory

The LSI SAS 9260-8i board has a low profile (MD2 form factor), is equipped with two internal Mini-SAS 4X connectors (each of them allows you to connect up to 4 SAS drives directly or more via port multipliers), is designed for the PCI Express bus x8 2.0 and supports RAID levels 0, 1, 5, 6, 10, 50 and 60, dynamic SAS functionality and much more. etc. The LSI SAS 9260-8i controller can be installed both in 1U and 2U rack servers (Mid and High-End class servers), and in ATX and Slim-ATX cases (for workstations). RAID support is provided in hardware - an integrated LSI SAS2108 processor (PowerPC core at 800 MHz), complemented by 512 MB of DDR2 800 MHz memory with ECC support. LSI promises processor speeds of up to 2.8 GB/s for reading and up to 1.8 GB/s for writing. Among the rich functionality of the adapter, it is worth noting the functions Online Capacity Expansion (OCE), Online RAID Level Migration (RLM) (expanding the volume and changing the type of arrays on the go), SafeStore Encryption Services and Instant secure erase (encrypting data on disks and secure deletion data), support solid state drives(SSD Guard technology) and many others. etc. An optional battery module is available for this controller (with it, the maximum operating temperature should not exceed +44.5 degrees Celsius).

LSI SAS 9260-8i controller: main technical characteristics

System interfacePCI Express x8 2.0 (5 GT/s), Bus Master DMA
Disk interfaceSAS-2 6 Gbit/s (supports SSP, SMP, STP and SATA protocols)
Number of SAS ports8 (2 x4 Mini-SAS SFF8087 connectors), supports up to 128 drives via port multipliers
RAID supportlevels 0, 1, 5, 6, 10, 50, 60
CPULSI SAS2108 ROC (PowerPC @ 800 MHz)
Built-in cache memory512 MB ECC DDR2 800 MHz
Energy consumption, no more24 W (+3.3 V and +12 V power from PCIe slot)
Operating/Storage Temperature Range0…+60 °С / −45…+105 °С
Form factor, dimensionsMD2 low-profile, 168×64.4 mm
MTBF value>2 million h
Manufacturer's warranty3 years

The manufacturer outlined typical applications for the LSI MegaRAID SAS 9260-8i as follows: various video stations (video on demand, video surveillance, video creation and editing, medical images), high-performance computing and digital data archives, various servers (file, web, email, databases). In general, the vast majority of problems solved in small and medium-sized businesses.

In a white and orange box with a frivolously smiling, toothy lady's face on the “title” (apparently to better attract bearded system administrators and stern system builders) there is a controller board, brackets for installing it in ATX, Slim-ATX cases, etc., two 4-disk a cable with Mini-SAS connectors on one end and regular SATA (without power) on the other (for connecting up to 8 drives to the controller), as well as a CD with PDF documentation and drivers for numerous versions of Windows, Linux (SuSE and RedHat), Solaris and VMware.


Delivery set of the boxed version of the LSI MegaRAID SAS 9260-8i controller (mini MegaRAID Advanced Services Hardware Key is available upon separate request)

With a special hardware key (it is supplied separately), LSI MegaRAID Advanced Services software technologies are available for the LSI MegaRAID SAS 9260-8i controller: MegaRAID Recovery, MegaRAID CacheCade, MegaRAID FastPath, LSI SafeStore Encryption Services (their consideration is beyond the scope of this article). In particular, in terms of increasing the performance of a traditional disk array (HDD) using a solid-state drive (SSD) added to the system, MegaRAID CacheCade technology will be useful, with the help of which the SSD acts as a second-level cache for the HDD array (analogous to a hybrid solution for HDD), in some cases, providing up to a 50-fold increase in disk subsystem performance. Also of interest is the MegaRAID FastPath solution, which reduces the processing latency of I/O operations by the SAS2108 processor (by disabling optimization for HDDs), which allows you to speed up the operation of an array of several solid-state drives (SSDs) connected directly to the SAS 9260-8i ports.

It is more convenient to perform operations on configuring, setting up and servicing the controller and its arrays in a proprietary manager in the operating system environment (the settings in the BIOS Setup menu of the controller itself are not rich enough - only basic functions are available). In particular, in the manager, with a few clicks of the mouse, you can organize any array and set policies for its operation (caching, etc.) - see screenshots.




Examples of screenshots of the Windows manager for configuring RAID arrays of levels 5 (above) and 1 (below).

Testing

To get acquainted with the basic performance of the LSI MegaRAID SAS 9260-8i (without the MegaRAID Advanced Services Hardware Key and related technologies), we used five high-performance SAS drives with a spindle speed of 15 thousand rpm and support for the SAS-2 interface (6 Gbit/ c) - Hitachi Ultrastar 15K600 HUS156030VLS600 with a capacity of 300 GB.


Hitachi Ultrastar 15K600 hard drive without top cover

This will allow us to test all basic levels of arrays - RAID 6, 5, 10, 0 and 1, and not only with the minimum number of disks for each of them, but also “for growth”, that is, when adding a disk to the second of the 4-channel SAS ports of the ROC chip. Note that the hero of this article has a simplified analogue - a 4-port LSI MegaRAID SAS 9260-4i controller on the same element base. Therefore, our tests of 4-disk arrays are equally applicable to it.

The maximum sequential read/write speed of payload data for the Hitachi HUS156030VLS600 is about 200 MB/s (see graph). The average random access time when reading (according to specifications) is 5.4 ms. Built-in buffer - 64 MB.


Hitachi Ultrastar 15K600 HUS156030VLS600 sequential read/write speed chart

The test system was based on Intel processor Xeon 3120, motherboard with Intel chipset P45 and 2 GB DDR2-800 memory. The SAS controller was installed in the PCI Express x16 v2.0 slot. The tests were carried out under the control of operating rooms Windows systems XP SP3 Professional and Windows 7 Ultimate SP1 x86 (pure American versions), since their server counterparts (Windows 2003 and 2008, respectively) do not allow some of the benchmarks and scripts we used to work. The tests used were AIDA64, ATTO Disk Benchmark 2.46, Intel IOmeter 2006, Intel NAS Performance Toolkit 1.7.1, C’T H2BenchW 4.13/4.16, HD Tach RW 3.0.4.0 and from Futuremark PCMark Vantage and PCMark05. Tests were carried out both on unpartitioned volumes (IOmeter, H2BenchW, AIDA64) and on formatted partitions. In the latter case (for NASPT and PCMark), the results were taken both for the physical beginning of the array and for its middle (array volumes of the maximum available capacity were divided into two equal-sized logical partitions). This allows us to more adequately evaluate the performance of solutions, since the fastest initial sections of volumes, on which file benchmarks are carried out by most browsers, often do not reflect the situation on other sections of the disk, which can also be used very actively in real work.

All tests were carried out five times and the results were averaged. We will look at our updated methodology for evaluating professional disk solutions in more detail in a separate article.

It remains to add that during this testing we used controller firmware version 12.12.0-0036 and drivers version 4.32.0.32. Write and read caching has been enabled for all arrays and disks. Perhaps the use of more modern firmware and drivers saved us from the oddities noticed in the results of early tests of the same controller. In our case, such incidents were not observed. However, we also do not use the FC-Test 1.0 script, which is very dubious in terms of the reliability of the results (which in certain cases the same colleagues “would like to call confusion, vacillation and unpredictability”) in our package, since we have previously repeatedly noticed its inconsistency on some file patterns ( in particular, sets of many small, less than 100 KB, files).

The charts below show the results for 8 array configurations:

  1. RAID 0 of 5 disks;
  2. RAID 0 of 4 disks;
  3. RAID 5 of 5 disks;
  4. RAID 5 of 4 disks;
  5. RAID 6 of 5 disks;
  6. RAID 6 of 4 disks;
  7. RAID 1 of 4 disks;
  8. RAID 1 of 2 disks.

By RAID 1 array of four disks (see screenshot above), LSI obviously means a stripe+mirror array, usually referred to as RAID 10 (this is confirmed by test results).

Test results

In order not to overload the review web page with a countless set of diagrams, sometimes uninformative and tiring (which is often the fault of some “rabid colleagues” :)), we have summarized the detailed results of some tests in table. Those who want to analyze the subtleties of our results (for example, find out the behavior of the participants in the most critical tasks for themselves) can do this on their own. We will focus on the most important and key test results, as well as on average indicators.

First, let's look at the results of “purely physical” tests.

The average time for random data access when reading on a single Hitachi Ultrastar 15K600 HUS156030VLS600 disk is 5.5 ms. However, when organizing them into arrays, this indicator changes slightly: it decreases (thanks to effective caching in the LSI SAS9260 controller) for “mirror” arrays and increases for all others. The largest increase (about 6%) is observed for Level 6 arrays, since in this case the controller has to simultaneously access the largest number of disks (three for RAID 6, two for RAID 5 and one for RAID 0, since the access in this test occurs in blocks of only 512 bytes, which is significantly smaller than the size of array interleaving blocks).

The situation with random access to arrays during writing (in blocks of 512 bytes) is much more interesting. For a single disk, this parameter is about 2.9 ms (without caching in the host controller), however, in arrays on the LSI SAS9260 controller, we observe a significant decrease in this indicator - thanks to good write caching in the controller's 512 MB SDRAM buffer. Interestingly, the most dramatic effect is obtained for RAID 0 arrays (random write access time drops by almost an order of magnitude compared to a single drive)! This should undoubtedly have a beneficial effect on the performance of such arrays in a number of server tasks. At the same time, even on arrays with XOR calculations (that is, a high load on the SAS2108 processor), random write accesses do not lead to obvious performance degradation - again thanks to the powerful controller cache. It is natural that RAID 6 is slightly slower here than RAID 5, but the difference between them is essentially insignificant. The behavior of a single “mirror” in this test was somewhat surprising, as it showed the slowest random write access (perhaps this is a “feature” of the microcode of this controller).

The speed graphs for linear (sequential) reading and writing (in large blocks) for all arrays do not have any special features (for reading and writing they are almost identical, provided that the controller write caching is enabled) and they are all scaled according to the number of disks participating in parallel in the “useful » process. That is, for a five-disk RAID 0 disk the speed is “quintupled” relative to a single disk (reaching 1 GB/s!), for a five-disk RAID 5 it is “quadrupled”, for RAID 6 it is “tripled” (triples, of course :)), for RAID 1 of four disks it doubles (no “y2eggs”! :)), and for a simple mirror it duplicates the graphs of a single disk. This pattern is clearly visible, in particular, in the maximum speed of reading and writing real large (256 MB) files in large blocks (from 256 KB to 2 MB), which we illustrate with a diagram of the ATTO Disk Benchmark 2.46 test (the results of this test for Windows 7 and XP are almost identical).

Here, the only thing unexpectedly missing from the overall picture was the case of reading files on a RAID 6 array of 5 disks (the results were double-checked). However, for reading in 64 KB blocks, the speed of this array reaches the required 600 MB/s. So let’s attribute this fact to a “feature” of the current firmware. Note also that when writing real files, the speed is slightly higher due to caching in a large controller buffer, and the difference with reading is more noticeable, the lower the actual linear speed of the array.

As for the interface speed, usually measured by buffer writing and reading (multiple accesses to the same disk volume address), here we are forced to state that for almost all arrays it turned out to be the same due to the inclusion of the controller cache for these arrays (see table). Thus, the recording performance for all participants in our test was approximately 2430 MB/s. Note that the PCI Express x8 2.0 bus theoretically gives a speed of 40 Gbit/s or 5 GB/s, however, according to useful data, the theoretical limit is lower - 4 GB/s, which means that in our case the controller actually worked on version 2.0 of the PCIe bus. Thus, the 2.4 GB/s we measured is obviously the real bandwidth of the controller’s onboard memory (DDR2-800 memory with a 32-bit data bus, as can be seen from the configuration of the ECC chips on the board, theoretically gives up to 3.2 GB/s). When reading arrays, caching is not as “comprehensive” as when writing, which is why the “interface” speed measured in utilities is usually lower than the read speed of the controller cache memory (typical 2.1 GB/s for arrays of levels 5 and 6) , and in some cases it “falls” to the buffer reading speed of the hard drives themselves (about 400 MB/s for a single hard drive, see the graph above), multiplied by the number of “sequential” disks in the array (these are just the cases of RAID 0 and 1 from our results).

Well, we have sorted out the “physics” to a first approximation, it’s time to move on to the “lyrics”, that is, to tests of “real” application guys. By the way, it will be interesting to find out whether the performance of arrays scales when performing complex user tasks as linearly as it scales when reading and writing large files (see the ATTO test diagram just above). The inquisitive reader, I hope, has already been able to predict the answer to this question.

As a “salad” for our “lyrical” part of the meal, we will serve desktop-by-nature disk tests from the PCMark Vantage and PCMark05 packages (under Windows 7 and XP, respectively), as well as a similar “track” test of applications from the reputable German package H2BenchW 4.13 C'T magazine. Yes, these tests were originally created to evaluate desktop hard drives and low-cost workstations. They emulate the execution of typical advanced tasks on disks. personal computer- working with video, audio, Photoshop, antivirus, games, swap file, installing applications, copying and recording files, etc. Therefore, their results in the context of this article should not be taken as the ultimate truth - after all, Multi-disk arrays perform other tasks more often. However, in light of the fact that the manufacturer itself is positioning this RAID controller, including for relatively inexpensive solutions, this class of test tasks is quite capable of characterizing a certain proportion of applications that will actually be executed on such arrays (the same work with video, professional graphics processing, swapping OS and resource-intensive applications, copying files, antivirus, etc.). Therefore, the importance of these three comprehensive benchmarks in our overall package should not be underestimated.

In the popular PCMark Vantage, on average (see chart), we observe a very remarkable fact - the performance of this multi-disk solution almost does not depend on the type of array used! By the way, within certain limits, this conclusion is also true for all individual test tracks (types of tasks) included in the PCMark Vantage and PCMark05 packages (see the table for details). This may mean either that the controller firmware algorithms (with cache and disks) hardly take into account the specifics of this type of application, or that the bulk of these tasks are performed in the cache memory of the controller itself (and most likely we are seeing a combination of these two factors ). However, for the latter case (that is, executing tracks to a large extent in the cache of the RAID controller), the average performance of the solutions is not so high - compare these data with the test results of some “desktop” (“chipset-based”) 4-disk RAID 0 and 5 and inexpensive single SSDs on the SATA 3 Gb/s bus (see review). If, compared to a simple “chipset” 4-disk RAID 0 (and on twice as slow hard drives as the Hitachi Ultrastar 15K600 used here), LSI SAS9260 arrays are less than twice as fast in PCMark tests, then relative to not even the fastest “budget” single SSDs definitely outperform them all! The results of the PCMark05 disk test give a similar picture (see table; there is no point in drawing a separate diagram for them).

A similar picture (with some reservations) for arrays on LSI SAS9260 can be observed in another “track” application benchmark - C’T H2BenchW 4.13. Here, only the two slowest (by design) arrays (RAID 6 of 4 disks and a simple “mirror”) noticeably lag behind all other arrays, the performance of which obviously reaches that “sufficient” level when it no longer rests on the disk subsystem, and the efficiency of operation of the SAS2108 processor with the controller cache memory for these complex sequences of calls. What makes us happy in this context is that the performance of arrays based on LSI SAS9260 in tasks of this class is almost independent of the type of array used (RAID 0, 5, 6 or 10), which allows the use of more reliable solutions without compromising the final performance.

However, “Maslenitsa is not all for the cat” - if we change the tests and check the operation of arrays with real files on file system NTFS, then the picture will change dramatically. Thus, in the Intel NASPT 1.7 test, many of the “preset” scenarios of which are quite directly related to tasks typical of computers equipped with an LSI MegaRAID SAS9260-8i controller, the disposition of the arrays is similar to what we observed in the ATTO test when reading and writing large files - performance increases proportionally as the “linear” speed of the arrays increases.

In this chart we show the average for all NASPT tests and patterns, while in the table you can see detailed results. I would like to emphasize that we ran NASPT both under Windows XP (this is what many browsers usually do) and under Windows 7 (which, due to certain features of this test, is done less frequently). The fact is that Seven (and its “big brother” Windows 2008 Server) use more aggressive caching algorithms when working with files than XP. In addition, copying of large files in Semerka occurs mainly in blocks of 1 MB (XP, as a rule, operates in blocks of 64 KB). This leads to the fact that the results of the Intel NASPT “file” test differ significantly in Windows XP and Windows 7 - in the latter they are much higher, sometimes more than twice! By the way, we compared the results of NASPT (and other tests of our package) under Windows 7 with 1 GB and 2 GB installed system memory(there is information that with large amounts of system memory, caching of disk operations in Windows 7 is enhanced and NASPT results become even higher), however, within the measurement error, we did not find any difference.

We leave the debate about which OS (in terms of caching policies, etc.) to test disks and RAID controllers under for the discussion thread of this article. We believe that drives and solutions based on them need to be tested under conditions that are as close as possible to the real situations of their operation. That is why, in our opinion, the results we obtained for both operating systems are of equal value.

But let's return to the average performance chart in NASPT. As you can see, the difference between the fastest and slowest arrays we tested here is on average just under three times. This, of course, is not a five-fold gap, as when reading and writing large files, but it is also very noticeable. The arrays are located in fact proportional to their linear speed, and this is good news: this means that the LSI SAS2108 processor processes data quite quickly, creating almost no bottlenecks when the arrays of levels 5 and 6 are actively working.

To be fair, it should be noted that in NASPT there are patterns (2 out of 12) in which the same picture is observed as in PCMark with H2BenchW, namely that the performance of all tested arrays is almost the same! These are Office Productivity and Dir Copy to NAS (see table). This is especially obvious under Windows 7, although for Windows XP the trend of “convergence” is obvious (compared to other patterns). However, in PCMark with H2BenchW there are patterns where there is an increase in the performance of arrays in proportion to their linear speed. So everything is not as simple and unambiguous as some might like.

At first, I wanted to discuss a chart with general array performance indicators averaged over all application tests (PCMark+H2BenchW+NASPT+ATTO), that is, this one:

However, there is nothing special to discuss here: we see that the behavior of arrays on the LSI SAS9260 controller in tests that emulate the operation of certain applications can vary dramatically depending on the scenarios used. Therefore, it is better to draw conclusions about the benefits of a particular configuration based on exactly what tasks you are going to perform. And another professional test can significantly help us with this - synthetic patterns for IOmeter, emulating a particular load on the data storage system.

Tests in IOmeter

In this case, we will omit the discussion of numerous patterns that carefully measure the speed of operation depending on the size of the access block, the percentage of write operations, the percentage of random accesses, etc. This is, in fact, pure synthetics that provides little useful practical information and is of interest rather purely theoretically. After all, we have already clarified the main practical points regarding “physics” above. It is more important for us to focus on patterns that emulate real job- servers various types, as well as file operations.

To emulate servers such as File Server, Web Server and DataBase (database server), we used the same and well-known patterns proposed at one time by Intel and StorageReview.com. For all cases, we tested the arrays with command queue depth (QD) from 1 to 256 in increments of 2.

In the “Database” pattern, which uses random disk access in 8 KB blocks within the entire volume of the array, one can observe a significant advantage of arrays without parity (that is, RAID 0 and 1) with a command queue depth of 4 and higher, while all arrays with parity control (RAID 5 and 6) demonstrate very similar performance (despite the twofold difference between them in the speed of linear accesses). The situation can be explained simply: all arrays with parity control showed similar values ​​in tests for average random access time (see the diagram above), and it is this parameter that mainly determines the performance in this test. It is interesting that the performance of all arrays increases almost linearly with increasing command queue depth up to 128, and only at QD=256 in some cases can a hint of saturation be seen. Maximum performance arrays with parity control at QD=256 was about 1100 IOps (operations per second), that is, the LSI SAS2108 processor spends less than 1 ms to process one piece of data of 8 KB (about 10 million single-byte XOR operations per second for RAID 6; of course , the processor also performs other tasks in parallel for data input/output and working with cache memory).

In the pattern of a file server that uses blocks of different sizes with random read and write access to the array within its entire volume, we observe a picture similar to DataBase with the difference that here five-disk arrays with parity (RAID 5 and 6) are noticeably faster in speed their 4-disk counterparts and demonstrate almost identical performance (about 1200 IOps at QD=256)! Apparently, adding a fifth disk to the second of the controller's two 4-channel SAS ports somehow optimizes the computing load on the processor (at the expense of I/O operations?). It may be worth comparing the speed of 4-disk arrays when the drives are connected in pairs to different Mini-SAS connectors of the controller in order to identify the optimal configuration for organizing arrays on the LSI SAS9260, but this is a task for another article.

In the web server pattern, where, according to its creators, there are no disk write operations as a class (and therefore no calculation of XOR functions per write), the picture becomes even more interesting. The fact is that all three five-disk arrays from our set (RAID 0, 5 and 6) show identical performance here, despite the noticeable difference between them in the speed of linear reading and parity calculations! By the way, these same three arrays, but with 4 disks, are also identical in speed to each other! And only RAID 1 (and 10) falls out of the overall picture. Why this happens is difficult to judge. The controller may have very efficient algorithms for sampling the "lucky drives" (that is, those of the five or four drives from which the desired data arrives first), which in the case of RAID 5 and 6 increases the likelihood of data arriving from the platters earlier, preparing the processor in advance for necessary calculations (remember the deep command queue and large DDR2-800 buffer). And this can ultimately compensate for the delay associated with XOR calculations and equalizes their “chances” with “simple” RAID 0. In any case, the LSI SAS9260 controller can only be praised for its extremely high results (about 1700 IOps for 5-disk arrays at QD=256) in the Web Server pattern for arrays with parity. Unfortunately, the fly in the ointment was quite low performance a two-disk “mirror” in all these server patterns.

The Web Server pattern is echoed by our own pattern, which emulates random reading of small (64 KB) files within the entire array space.

Again, the results were combined into groups - all 5-disk arrays are identical to each other in speed and are leaders in our “race”, 4-disk RAID 0, 5 and 6 are also indistinguishable from each other in terms of performance, and only “DSLRs” fall out of the general masses (by the way, a 4-disk “DSLR”, that is, RAID 10 turns out to be faster than all other 4-disk arrays - apparently due to the same “selecting a successful disk” algorithm). We emphasize that these patterns are valid only for a large command queue depth, while with a small queue (QD = 1-2) the situation and leaders can be completely different.

Everything changes when servers work with large files. In the conditions of modern “heavier” content and new “optimized” operating systems such as Windows 7, 2008 Server, etc. Working with megabyte files and 1 MB data blocks is becoming increasingly important. In this situation, our new pattern, which emulates random reading of 1-MB files within the entire disk (details of the new patterns will be described in a separate article on the method), comes in handy to more fully evaluate the server potential of the LSI SAS9260 controller.

As we can see, the 4-disk “mirror” here leaves no hope for leadership, clearly dominating any queue of commands. Its performance also initially grows linearly with increasing command queue depth, but at QD=16 for RAID 1 it reaches saturation (speed of about 200 MB/s). A little “later” (at QD=32) performance “saturation” occurs in the slower arrays in this test, among which “silver” and “bronze” have to be given to RAID 0, and arrays with parity control find themselves as outsiders, losing even before brilliant RAID 1 of two disks, which turns out to be unexpectedly good. This leads us to the conclusion that even when reading, the computational XOR load on the LSI SAS2108 processor when working with large files and blocks (randomly located) turns out to be very burdensome for it, and for RAID 6, where it actually doubles, it is sometimes even prohibitive - The performance of the solutions barely exceeds 100 MB/s, that is, 6-8 times lower than with linear reading! “Redundant” RAID 10 is clearly more profitable to use here.

When randomly recording small files, the picture is again strikingly different from what we saw earlier.

The fact is that here the performance of the arrays practically does not depend on the depth of the command queue (obviously, the huge cache of the LSI SAS9260 controller and the rather large caches of the hard drives themselves have an effect), but it changes radically with the type of the array! The undisputed leaders here are the “simple ones” for the RAID 0 processor, and the “bronze” with more than two times the loss to the leader is for RAID 10. All arrays with parity control formed a very close single group with a double-disc DSLR (details on them are given in a separate diagram under the main one), losing three times to the leaders. Yes, this is definitely a heavy load on the controller processor. However, frankly speaking, I did not expect such a “failure” from the SAS2108. Sometimes even software RAID 5 on a “chipset” SATA controller (with caching) using Windows and calculation using the PC’s central processor) is able to work faster... However, the controller still produces “its” 440-500 IOps stably - compare this with the diagram for average access time when writing at the beginning of the results section.

The transition to random writing of large 1 MB files leads to an increase in absolute speed indicators (for RAID 0 - almost to the values ​​for random reading of such files, that is, 180-190 MB/s), however, the overall picture remains almost unchanged - arrays with parity many times slower than RAID 0.

A curious picture for RAID 10 is that its performance decreases with increasing command queue depth, although not by much. For other arrays there is no such effect. The two-disc “mirror” here again looks modest.

Now let's look at patterns in which files are read and written to disk in equal quantities. Such loads are typical, in particular, for some video servers or during active copying/duplication/backup of files within one array, as well as in the case of defragmentation.

First - 64 KB files randomly throughout the array.

Some similarity with the results of the DataBase pattern is obvious here, although the absolute speeds of the arrays are three times higher, and even at QD=256 some performance saturation is already noticeable. A larger (compared to the DataBase pattern) percentage of write operations in this case leads to the fact that arrays with parity and a two-disk “mirror” become obvious outsiders, significantly inferior in speed to RAID 0 and 10 arrays.

When moving to 1 MB files, this pattern is generally preserved, although absolute speeds approximately triple, and RAID 10 becomes as fast as a 4-disk stripe, which is good news.

The last pattern in this article will be the case of sequential (as opposed to random) reading and writing of large files.

And here many arrays already manage to accelerate to very decent speeds in the region of 300 MB/s. And although the more than twofold gap between the leader (RAID 0) and the outsider (two-disk RAID 1) remains (note that with linear reading OR writing this gap is fivefold!), RAID 5 entered the top three, and the remaining XOR arrays did not catch up may not be reassuring. After all, judging by the list of applications of this controller that LSI itself provides (see the beginning of the article), many target tasks will use exactly this type of access to arrays. And this is definitely worth considering.

In conclusion, I will provide a final diagram in which the indicators of all the IOmeter test patterns mentioned above are averaged (geometrically for all patterns and command queues, without weighting coefficients). It is curious that if the averaging of these results within each pattern is carried out arithmetically with weighting coefficients of 0.8, 0.6, 0.4 and 0.2 for command queues 32, 64, 128 and 256, respectively (which conditionally takes into account the drop in the share of operations with high command queue depth in general work drives), then the final (for all patterns) normalized array performance index will coincide within 1% with the geometric mean.

So, the average “hospital temperature” in our patterns for the IOmeter test shows that there is no escape from “physics and mathematics” - RAID 0 and 10 are clearly in the lead. For arrays with parity control, a miracle did not happen - although the LSI SAS2108 processor demonstrates In some cases, decent performance, in general, such arrays cannot “reach” the level of a simple “stripe”. At the same time, it is interesting that 5-disk configurations clearly add value compared to 4-disk configurations. In particular, 5-disk RAID 6 is definitely faster than 4-disk RAID 5, although in terms of “physics” (random access time and linear access speed) they are virtually identical. The two-disk “mirror” was also disappointing (on average it is equivalent to a 4-disk RAID 6, although the mirror does not require two XOR calculations for each bit of data). However, a simple “mirror” is obviously not a target array for a fairly powerful 8-port SAS controller with a large cache and a powerful on-board processor. :)

Pricing information

The LSI MegaRAID SAS 9260-8i 8-port SAS controller with a complete set is offered at a price of around $500, which can be considered quite attractive. Its simplified 4-port analogue is even cheaper. A more accurate current average retail price of the device in Moscow, relevant at the time you read this article:

LSI SAS 9260-8iLSI SAS 9260-4i
$571() $386()

Conclusion

Summarizing what was said above, we can conclude that we will not risk giving uniform recommendations “for everyone” regarding the 8-port LSI MegaRAID SAS9260-8i controller. Everyone should draw their own conclusions about the need to use it and configure certain arrays with its help - strictly based on the class of tasks that are supposed to be launched. The fact is that in some cases (on some tasks) this inexpensive “mega-monster” is capable of showing outstanding performance even on arrays with double parity (RAID 6 and 60), but in other situations the speed of its RAID 5 and 6 clearly leaves much to be desired . And the only salvation (almost universal) will be a RAID 10 array, which can be organized with almost the same success on cheaper controllers. However, it is often thanks to the processor and cache memory of the SAS9260-8i that the RAID 10 array behaves no slower than a stripe of the same number of disks, while ensuring high reliability of the solution. But what you should definitely avoid with the SAS9260-8i is a two-disk “mirror” and 4-disk RAID 6 and 5 - these are obviously suboptimal configurations for this controller.

Thanks to Hitachi Global Storage Technologies
for the hard drives provided for testing.



tell friends