Hardware RAID controllers. FAQ on the practical implementation of RAID.

💖 Like it? Share the link with your friends

15.02.1996 Sergey Romanchikov

The weakest places in terms of reliability in a computer are RAM and hard drives, which are also one of the slowest links in a computer. One of the ways to organize work disk system are RAID matrices, the guarantee of reliability and performance of which is provided by modern RAID controllers. What is a RAID controller Common RAID algorithms RAID controller design Hot Swap technology. Spare disks RAID system and alternatives Software and hardware implementations of RAID level 5 mirroring and mirroring, which is more profitable? What operating systems does RAID work with?

Over the past few years, the power and speed of all classes of computers have significantly increased - today even a small company can afford to have a local network, one or more servers, and Internet access. A large number of software and hardware, many options for ready-made integrated solutions allow you to quickly deploy and configure the office. One of the biggest challenges associated with providing this process is to achieve maximum performance and reliability at a minimum cost. As a rule, these requirements are imposed, first of all, on machines that implement group work: file servers, application servers, mail hosts, multimedia graphics stations. Many of these computers must, without shutting down for years, provide stable operation throughout their entire life cycle with 100% data integrity and minimal recovery time - ideally tending to zero. As you know, the weakest places in a computer in terms of reliability are RAM and hard drives, which are also one of the slowest links in a computer. One of the options for organizing the operation of a disk system is RAID matrices, the guarantee of reliability and speed of which is provided by modern RAID controllers.

If you have the fastest processor on the market today, lots of RAM and processor cache, but if the computer's disk system is slow and unstable, then the overall performance of your configuration will be extremely poor. You will hardly want to use such a machine as a server or graphics station - there is an unjustified cost of funds for fast processors and memory, which are dead capital, if you do not take care in advance about choosing the appropriate system for working with hard drives. One of the options for organizing the operation of a disk system is RAID matrices, which are created from standard SCSI or SSA disks using special controllers. This technology, which originated from mainframes and powerful RISC computers, is increasingly finding its way to PC platforms. Low price, 100% compatible with major operating systems, support for common software and the availability of auxiliary utilities make it possible to create, based on inexpensive PCs, fast and reliable servers of the scale of a medium-sized enterprise or a division of a large company.

Today, solutions that involve the use of RAID controllers are offered by all well-known vendors. computer equipment actively working in the domestic market. The controller models based on the i960 processor were the most popular among the brand name server manufacturers, which is explained by its high performance, support for hot-swapping technology and providing a large number of service functions. With such models, the main brands of PC servers from IBM, HP, Compaq, Intel, Digital, ALR, etc. are now supplied. All of them are usually supplied in two configurations: with and without RAID systems. While the benefits of RAID are obvious, the customer does not always have the funds to purchase a RAID option. Fortunately, modern models of disk array controllers are quite standard and universal. But, on the other hand, almost all brand name models come with only dual-channel RAID controller options, which deprives network administrators and technical specialists of the opportunity to use the potential various models. There are cases when customers refused brand name RAID matrices due to lack of funds, although there was enough money to install a small RAID array. After all, now in the domestic market, the minimum matrix of one i960-based RAID controller and 2 1 GB SCSI disks costs only about 1.6 thousand dollars. True, if you installed a server without RAID, and then found an opportunity to purchase it, this It is easy to implement both with the help of the manufacturer, and independently. This is used by many organizations wishing to purchase good server a little cheaper.

In our practice, we had to install Mylex RAID controllers on almost all server models from IBM 320, Intel Altair, Xpress, Digital Prioris, etc. The biggest problem that can be encountered along the way is replacing the original BIOS controller with one developed under your specific model. However, by creating your own disk system, you can build a very flexible configuration, focusing on the fastest, or the most economical, or the most reliable system. You can always provide for the possibility of expansion, redundancy and reconfiguration. The modern Russian computer market has always been famous for its "craftsmen" who are able to quickly and efficiently assemble computers of almost any configuration. Now this can also be said about powerful servers, thanks to the availability of RAID technology for end users - the only drawback so far is the lack of information about the possibilities of work and how to create RAID matrices.

What is a RAID controller

Practiced RAID Algorithms

At a certain stage in the development of computer technology, it became necessary to create one or more virtual disks large capacity from a collection of inexpensive and small devices. To accomplish this task, algorithms for combining disks, now known as RAID algorithms, were developed and standardized. The general principles of their work have been repeatedly described in the Russian press and are summarized here.

The main idea of ​​these algorithms is that the input stream of information is divided into blocks, which, in turn, are written to disks. When reading, the reverse process occurs - blocks of information are collected from the drives and converted into a single stream. Thus, the program for working with this system may not suspect that instead of one drive, it interacts with several. In practice, there are many applications of such algorithms, but matrices are the most widely used in the computer field. hard drives- RAID (Redundant Array of Inexpensive Disks). Depending on how the blocks are distributed in the disk array, there are several levels of RAID, from zero to fifth. In practice, mainly 0.1 and 5 levels have become widespread. Now you can find controllers with 6, 7, etc. RAID level. Since only five algorithms were initially standardized, all other ways to implement the operation of disk arrays are a continuation of the development of RAID technology and may differ from different vendors. To organize the work of a computer with a matrix disk subsystem, it is enough to know the 0.1 and 5 algorithms, which, as a rule, cover all the necessary problems, are easy to use and quite effective.

RAID0 is an algorithm in which each piece of information in the input stream is divided into N fixed blocks (where N is the number of disks in the matrix), and then each block is sequentially written to its own disk. In a controller-bus-disk connection, the slowest device is the disk. By using a large number of disks, you can get an increase in the write / read speed of the system as long as the bandwidth of the interface bus allows. RAID0 does not create any redundancy and does not provide 100% data integrity in the event of a problem with one of the drives. Its purpose is to make the disk system as fast as possible, the speed of which, ideally, is N times the speed of a single disk.

RAID1, or mirroring, requires an even number of drives and duplicates information in pairs. This algorithm already provides a 100% guarantee of data safety in case of failure of any of the disks and a theoretical increase in speed by N / 2 times, but the cost of disk space is doubled. The algorithm is used in systems where reliability of data safety is necessary and the volume of the disk matrix is ​​insignificant. RAID5 is a cross between 0 and 1 and is the most popular for organizing server disk arrays. A portion of information from the input stream is divided into N-1 blocks, and the N-th block is calculated from the N-1 first ones and is a control block. In the event of an irretrievable loss of one of the N blocks, the information is uniquely restored from the N-1 others. The control block is written to each cycle from cycle to cycle. new disk, making, as it were, a "roundabout". Thus, all disks in the matrix are equivalent, subject to the same wear, and, in the event of a failure of any block on the disk or the entire disk, the information is restored without loss. The cost of disk space is N/(N-1) times more than a single disk - as the number of disks increases, the price decreases, and the theoretical write/read speed is also N/(N-1) times greater than a single disk.

RAID controller design

The RAID controller is an intelligent SCSI or SSA controller that can be used to organize RAID algorithms on disk arrays. Modern models have 1,2 or 3 SCSI channels, each of which can be connected from 1 to 7 SCSI devices in case of SCSI bus and 127 in case of SSA. SCSI devices are the most widely used today. Structurally, almost all modern SCSI RAID controllers are the same and represent an expansion slot card for PCI, EISA buses or an external device for the SCSI bus. The vast majority of RAID controllers are based on RISC Intel processor i960, and almost all of them are identical in hardware and differ only BIOS versions. As in other areas, there are market trendsetters in the field of RAID controllers, the proposed solutions of which usually become the de facto standard. Today, the main OEM supplier and manufacturer of these devices is Mylex. There are a number of companies on the world market that sell these devices with minor design differences, such as MegaRAID. Among the models well represented in Russia, there are differences between the models used for servers from Intel and for IBM with the SSA bus. The differences are not fundamental and cannot affect their compatibility with each other.

Another option for organizing RAID controllers is based on the Motorola 68000/68020/68030 series of processors. Models for various buses (ISA, EISA, PCI) for the SCSI standard are known under the DPT brand. These controllers are known all over the world and are also presented on the domestic market, although they are less popular than those built on the basis of an Intel chip. A typical design of controllers based on the i960 processor is a board with a soldered full-size or "lightweight" version of this chip (Fig. 1).

Rice. 1. Example of the general layout of the RAID 960 controller

As with any microprocessor device, the controller requires RAM, the minimum size of which in most models is 2 MB. If more memory is available, the controller uses it to cache data. The upper limit is limited by the size of the SIMM (32 - 64 MB). The device has its own replaceable BIOS, made according to FLASH technology or in the form of a removable ROM chip. Depending on the number of SCSI channels, the board has 1,2 or 3 SCSI chips, respectively - NCR53C720. The RAID controller board has jumpers for enabling and disabling SCSI channels (JP1, JP2, JP3), necessary for its installation on the end device, and pins for indicating the bus and cache status (JP5). The indication can be connected to ordinary LEDs on the computer case, showing the activity of devices or the state of "full cache". On the outside of the board, there are usually one or two connectors for an external SCSI cable. Using these connectors, you can connect external SCSI devices or disk arrays.

Each device may or may not come with a cache power backup battery and a WIDE FAST SCSI-2 to FAST SCSI-2 adapter, which is required when using different SCSI standards on the board and on the drives. The controller processor program has a large number of disk functions that are configured using the configuration utility. All logic matrix management operations, RAID algorithms and cache memory management are carried out by the controller itself without recourse to the central processor and data bus. Using Bus Mastering modes for EISA and PCI buses, the device is capable of transferring data at speeds of 33 MB/s and 132 MB/s.

Hot swap technology. Backup disks.

Hard disks- one of the few components that has a mechanical part that is primarily subject to wear during long-term operation. And no matter how good and reliable disks are used, there is always a possibility of their failure, which increases with the time of operation. Although in the case of, say, RAID5, a disk failure would not cause data loss, the system would be left without redundancy - this would be a signal for the network administrator to sound the alarm. If the organization of the server allows it to stop, then replacing a non-working disk will not be difficult. But, as a rule, all computers with the status "server" cannot be turned off at any time without tangible consequences. RAID controllers solve this problem by supporting hot-swapping and spare drive technology. In the event of a disk failure or any other problems due to which the controller cannot continue to operate it, for example, the allowed number of bad blocks is exceeded, the disk is marked as "dead" (Kill Drive) and does not participate in further work. In this case, the operator can remove this disk from the system and replace it with another one. After connecting and detecting a new disk by the RAID controller, it will be formatted (if necessary) and the matrix rebuild operation will be performed (Rebuild). Thus, the system will again restore its previous appearance.

This can continue for as long as spare drives are available, or until another drive fails in non-redundant mode. This can happen if bad drive not replaced immediately. As a rule, it is not always possible to immediately replace the disk and the reaction time can be quite long (if there is no qualified operator around the clock). Modern RAID controllers allow solving this problem without human intervention - a disk or several disks are pre-installed in the matrix, which are marked as standby (StandBy) during the configuration of the RAID matrix. In this case, the command to spin up the spindle is not sent to the reserve disks, they are not operated in any way, and therefore do not wear out. When a "dead" disk appears, the standby one from the StandBy mode is immediately automatically transferred to the working one and Rebuild is carried out. In this mode, the server will work until the spare disks run out. Replacing the "dead" with a new backup can be done at any convenient time.

The use of redundant disk technology is preferable for a number of reasons: firstly, the cost of good designs that provide correct and reliable disconnection and reconnection of the SCSI bus is quite high and, on this moment, comparable to the cost of 1 GB SCSI disk; secondly, the state of things in the hard drive market over the past few years is such that, perhaps, a year after the purchase of drives, you will not be able to find exactly the same model, at least in the short term. Using same in matrix different models hard drives can lead to big problems up to the inability to work together.

RAID systems and alternatives

Software and hardware implementations of mirroring

Today, there are many ways to organize disk systems in addition to RAID matrices. Of greatest interest is the organization of RAID1 - mirroring. This method can be implemented both in software (in Novell NetWare, Windows NT) and in hardware (on Adaptec, Tekram, etc. SCSI controllers). Although the methods are certainly inexpensive, they have a number of significant drawbacks. Software mirroring is very computationally intensive. Disk maintenance programs take some time to complete, which directly affects the performance of the disk system. In addition, at software implementation there is always the possibility of data loss in the event of a crash operating system, accidental hardware reset, or loss of power to the computer. Such an implementation of mirroring, of course, takes place in modern solutions, but should be used only on reliable machines and in conditions of financial savings.

Hardware RAID1 is a more reliable solution. Perhaps this is not a bad option for implementing a computer disk system with small disk arrays of 2 or 4 disks. In addition, a SCSI controller makes mirroring relatively inexpensive. The main disadvantages of this solution is that as the matrix grows, the system becomes more and more expensive compared to RAID5, and the speed of communication with disks remains low. At some value of the volume of the disk matrix, a turning point occurs, when RAID5 becomes more profitable. Thus, by implementing mirroring on one of the inexpensive SCSI controllers, you deprive yourself of the possibility of an additional inexpensive expansion of the disk system. In addition, experience suggests that, despite the hardware implementation of mirroring functions, a system performance loss of up to 25% compared to a single disk is possible.

RAID Level 5 vs. Mirroring, which is better?

When designing a disk system, an important factor is its cost. In order to use the allocated funds for the implementation of this task as efficiently as possible, it is necessary to correctly approach the choice of the type of disk matrix. Here's a small calculation for RAID5 and RAID1 to help you do this. Both algorithms allow for 100% fail-safe operation. Let's consider two alternatives. The first one is a disk system based on a low-end RAID controller model, the second one is based on one of the simple SCSI device models. For example, take one of the most popular controllers on our market Adaptec 2940 for RAID1 ($250) and Mylex DAC960PL-1 ($1000) for RAID5. As a basis for the matrices, we will choose some conditional disks (the model does not matter) with a capacity of 1 GB ($ 350). RAID5 requires at least 3 disks, mirroring - 2.

As can be seen from the graph of the dependence of the cost on the used disk space, shown in Fig. 2., with such initial data, the implementation of the disk system on RAID1 is good with a used disk space of 1 or 2 GB. With a larger matrix, the best solution would be RAID5. It should be noted that it is always necessary to take into account the possibility of expanding the system. Therefore, in the case of 3 GB in the above example, it is better to choose RAID5. These considerations do not take into account the fact that when organizing mirroring, the speed of access to all disks is less than to one, and when organizing RAID5 it is faster. In addition, one should take into account the fact that the DAC960 has much more functions, and among them are such important ones as hot-swapping and the ability to install redundant disks.

(1x1)

Rice. 2. Change in the cost of the disk system depending on the amount of disk space

Based on these considerations, we can draw a general conclusion for this example. When organizing a disk array with a capacity of 1-3 GB, you can use different, including software, algorithms for creating disk server systems. When creating a larger matrix, you need to seriously think about using controllers with RAID 5. The above recommendations are, of course, conditional. Each designer must himself evaluate the need to use a particular technology, depending on specific conditions.

FAQ

What operating systems does RAID work with? RAID controllers such as those from Mylex are compatible with standard PC platforms and are MS-DOS certified; Novell NetWare; Windows NT and Advanced Server; IBM OS/2; SCO UNIX; UnixWare.

The controller comes standard with drivers for working with these operating systems (DAC Software kit) along with a description of settings and configuration. Working models of servers with RAID, operated in the Solaris environment, have been created. Working with Windows 95 is possible with RAID even with DOS drivers. It is possible that the list of operating systems is not limited to this, only really verified facts are given here.

How big is the controller cache? Of course, the more, the better - you can't spoil the controller with a cache. But to really get to optimal choice the amount of cache memory, it is necessary to at least approximately imagine how much operational information is constantly working with the disk system. The minimum volume of 2 MB is used for the operation of the controller processor. It is difficult to give clear recommendations here, but according to current experience, it is better to adhere to the following parameters: for matrices with a capacity of 5 GB - 4-8 MB of cache, for matrices of 5-10 GB - at least 8 MB of cache, for matrices of 10-20 GB - at least 16 MB . The cache memory of the controller is a regular 72 pin SIMM and can be easily replaced. When choosing a cache on your own, you should pay attention to the SIMM being with real parity and good dynamic characteristics. We've had precedents where some unknown modules memory from the motherboard did not work in RAID.

How to choose the correct cache mode? The RAID matrix cache has two modes of operation: Write Through and Write Back. In the first mode, the controller does not confirm the write until the data is on the disks; in the second, it is enough for the data to get into the cache. The second mode helps to significantly increase the performance of the RAID system. This is especially true in the presence of a large cache and the mode of writing / reading small amounts of information. Its significant drawback is that in the event of a power loss on the controller or a hardware reset, the information is irretrievably lost without getting to the disks. Three options are possible here: rejection of the additional speed of the RAID system in favor of reliability; neglecting the possibility of losing data from the cache in favor of performance; purchase of an additional battery (Battery BackUp) to maintain power to the SIMM in the absence of power on the board.

Is it possible to improve the performance of reading long files? Yes. Hard drives show poor performance when reading random sectors. You can increase this figure if you read the proposed sector in advance. To do this, there is an option "Read ahead" in the configuration utility of the controller. If the data contains frequently used long files, you must set the parameter to the "active" state.

How to determine the state of the controller when the server freezes? No matter how reliable servers and operating systems are, you cannot be sure that the system will not freeze. The most unpleasant thing in this situation is the need to do a hard reset without realizing what is happening with the disk system. You can prevent this situation with a hardware RAID setup. The controller board has a connector for three indicators: SCSI bus activity, PCI (EISA) bus activity, "full cache" (the data in the cache has not yet reached the disk). It is desirable to display the last of them on the server case LED. The status of these indicators can determine the activity of the controller. With a "clean" cache, you can safely reboot without fear of data loss. The manufacturer recommends that you wait at least 15 seconds. after hovering or at least 3 sec. after turning off the indicator "full cache" before doing a reboot.

What is the difference between MYLEX DAC960PL and MYLEX DAC960PD? These two controllers for the bus PCI standard WIDE FAST SCSI-2. The fundamental difference is in the type of I960 processor. The PD model has a full-sized chip, the PL model has a smaller version of the same chip. Both models work with standard SIMMs of any capacity (2-64 MB), but the PD model also supports EDRAM - memory with static registers that allows you to increase the access speed (not to be confused with EDO for the Triton chipset). General difference: PD model is more productive, PL is more economical. When a small matrix (up to 10 GB) is assembled without a large load on the disks, it is more expedient to choose a PL type controller. If the amount of disk space is more than 20 GB or you need good performance, then this requires a PD model.

By what means can RAI?D be configured? Any RAID controller should ship with an MS-DOS configuration utility (daccf.exe). After the physical installation of the RAID controller, you can boot from a floppy disk or an additional hard drive and run the utility. After creating the matrix and system disks, the entire configuration can be saved to a floppy disk directly from the program. After finishing work and rebooting, system disks are ready for work. To change the RAID configuration, you must stop the server and run this program. This can be avoided by using the Global Array Manager client/server utility under Novell NetWare. The server part, in the form of the nlm module, is loaded under NetWare and the administrator with his workstation can monitor the operation of disks, make changes up to the "kill" of the disk (kill drive). The Global Array Manager utility is also included in the standard delivery of the RAID controller.

How to make a RAID system

Planning for a disk-based RAID system should begin well before purchasing a controller with disks or a pre-built server with RAID. The administrator must be clear about the nature of the tasks that load the disk system and how to increase performance in accordance with costs. The choice of operating system and software plays a significant role in this. In the case of a self-installation of RAID or a complete server assembly, you need to have an idea what equipment and what kind of organization will allow you to get maximum performance with minimal cost. Three years of experience in the field of RAID servers and disk subsystems provides several recommendations for users wishing to migrate to this, as yet relatively unknown, technology.

The recommendations will be based on the following facts: RAID controllers manufactured by the American company Mylex are widely used in Russia, and the most relevant RAID controllers today are systems with WIDE/FAST SCSI-2 channels to PCI and EISA buses.

What disks to choose?

First of all, you need to choose really reliable and high-quality drives that can work smoothly for a long time. Among other characteristics, it is worth paying attention to the time between failures, which is often indicated in the catalogs as MTBF (hours). It is desirable that this figure be at least 500,000 hours. Remember that the probability of failure of a disk array as a whole system increases with an increase in the number of disks. The design of disks is conditionally divided into mechanical and electronic parts - the disk controller. The mechanical part is fully characterized by three parameters: spindle speed (Spindle Speed), head positioning speed (Track-to-Track Seek) and information recording density per cylinder. Modern models SCSI hard drives well-known manufacturers have a spindle speed of 5400 and 7200 revolutions per second (rps). The choice of such disks will make the matrix fast enough. However, the technology for producing 7200 rps discs is quite expensive and less reliable. Despite good catalog performance, 7200 rps drives are much more expensive. Their real probability of failure is several times higher than 5400 rps. If the primary task of creating a RAID matrix is ​​speed, then the choice of these disks is obvious, but if reliability and economy are required, then disks with 5400 rps are needed.

The performance of a disk matrix depends not only on the performance of disks, but also on their number and correct configuration. The disk controller is mainly characterized by its interface (FAST SCSI-2, WIDE FAST SCSI-2, etc.) and cache size. It is desirable that the cache size on the disk be at least 512 KB. This seemingly insignificant fact will increase the write / read performance, especially with frequent and small transactions - after all, in a disk matrix, this cache is added even with 10 disks, and as a result, you will get at least 5 MB. In addition, the cache greatly aids the work with the permanently multiplexed SCSI bus. The choice of FAST SCSI-2 (8 data bits) or WIDE FAST SCSI-2 (16 data bits) standard is due to other reasons. Standard FAST has a bandwidth of up to 10 MB / s, and if we take the average disk speed as 2 MB / s, then if there are less than 5 devices on the bus, it will not be a bottleneck. With an equal or greater number, the WIDE standard (20 MB / s) is more desirable. In a situation where the information is in the cache of the disk controllers, the WIDE bus will give faster results. When assembling a RAID on the WIDE bus yourself, you may also encounter the problem that the WIDE (68 pin) cables have a different pitch, and precise crimping equipment is needed to make your own cable. It will not work to make it "at home", and at the moment the Russian market is represented mainly by standard cables with 3 connectors. There are no problems with the purchase or manufacture of a cable according to the FAST (50pin) drawing.

An important task is to choose the capacity of hard drives. For example, when organizing RAID5 with a useful volume of 8 GB, you can put 3 disks of 4 GB each, 5 disks of 2 disks, and 9 disks of 1 GB each. In this case, you have to pay for 12, 10 or 9 GB of volume, respectively. A larger number of disks will theoretically give a greater speed of the matrix. The limitations here are purely constructive: the number of seats in the case, ventilation and the power of the power supply. When calculating the required power supply capacity, it should be remembered that disks consume maximum energy when spinning up. In RAID controllers, it is possible to set a plan for spinning up disk spindles in order to distribute the maximum load over time.

Cases also play an important role in disk systems. Drives require a case with good ventilation and a powerful power supply to ensure continuous stable operation. The seats for the discs must be located in such a way that there is enough space between them for the passage of air. Ventilation should be flowing, not closed. It is desirable if it is possible to install an additional ventilation panel. Now there are many low-cost RAID enclosures on the Russian market, and almost all of them are equipped with a Hot Swap design. When purchasing such enclosures for your system, it is important to pay attention to whether these modules really allow you to correctly and safely break and restore SCSI connections while the machine is running. It is always possible to refuse Hot Swap modules in favor of an additional disk (s) that will be in hot standby mode. If you're looking for a truly long-lasting server, it's highly recommended that you consider spare disks and not be tempted to use them to expand your matrix. Almost certainly in a year or a year and a half you will no longer find this disk model on the world market.

How many SCSI channels will be required?

Modern models of RAID controllers usually have up to 3 SCSI channels. Since these products are quite complex and expensive, you should choose the right model. If the user's task is to create the cheapest disk system, then a minimum of channels is selected based on the number of disks, and no more than 7 devices can be installed on one channel. If the task is to obtain maximum reliability and speed, then the best option is a 3-channel controller. If a compromise is necessary, then options are possible. Multi-channel RAID will increase the speed of the disk system because the channels work independently of each other. Access to disks on different channels occurs in parallel, and access to the same SCSI-channel - in multiplexer mode. In the case of RAID operation with a cache of disk controllers, the information transfer rate is limited only throughput SCSI buses, and on a multi-channel version of the RAID controller, this figure will be higher. To create a matrix of disks, the location of devices on SCSI buses is indifferent, the main thing is that their number is not less than the minimum for the selected RAID level (Fig. 1).

(1x1)

Rice. 1. Ways of organizing disk arrays

Ideally, the fastest disk subsystem should have a 3-channel RAID controller and one or two disks per channel. The convenience of multi-channel RAID lies in the fact that you can create your own matrix (Pack) on each channel, define each of them as a system disk and configure user work in such a way that independent groups communicate with different matrices (Fig. 2). With such an organization, the traffic of one system disk will have virtually no effect on the operation of the other.

(1x1)

Rice. 2. Matrix configuration scheme for different user groups

In scale local network the efficiency of such a server can be significantly increased. Although RAID controllers themselves are reliable and almost not prone to breakdowns during operation, when using multi-channel RAID, there is an additional guarantee of server fault tolerance, when in the event of a failure of one of the channels, it is always possible to rearrange the disks to others and continue working. From a technical point of view, the installation of a single or multi-channel controller is exactly the same. Multi-channel does not require additional expansion slots, additional power supply, etc. It uses the same configuration utilities and is also fully compatible with a standard PC platform, and the limitations here are only financial, for example, an inexpensive model of a single-channel RAID controller from Mylex today costs about $1,000. %. In addition, future designers of RAID systems can be advised not to install slow devices such as a CD or tape drive on the SCSI channels of the RAID controller. Although there are no theoretical prohibitions on this, but practical experience shows that these devices significantly slow down the operation of the matrix, especially if they are not connected to a separate channel. The best solution in this case is to supply an additional inexpensive SCSI controller.

Selecting the type of RAID algorithm

For achievement maximum performance operation of the server, it is necessary to correctly approach the choice of the RAID algorithm. As you know, RAID0 provides the fastest access to the disk subsystem. This algorithm is good for virtual disks used for intermediate storage of information during program operation or for organizing a paging file. It is also possible to use this algorithm to store large amounts of information that are not critical to possible loss, copies of which can always be restored from an archive. RAID0 is not only the fastest, but also the most disk space consuming algorithm. RAID0- The best decision for a powerful graphics station that works with very large volumes of multimedia files in real time, when the cache no longer saves. With such an organization, we were able to achieve the results of writing / reading files of 200 MB or more, when the use of the cache is already excluded, and get performance up to 14 MB / s. The peak speed in this case, with file sizes of 15 MB, reaches 30 MB / s (Fig. 3).

(1x1)

Rice. 3. Read/write performance of RAID system depending on file length

The RAID5 and RAID1 algorithms are used for virtual disks, the main requirement for which is the reliability of data storage. These are the data files Reserve copy, installed and configured software, operating systems, work modules and print server data, mail servers etc. These disks can be dedicated to storing critical archives and valuable files that may be required at any time. These levels reduce the useful amount of disk space, but allow you to be sure of guaranteed data safety. An important feature is that it is possible to make a number of virtual system disks with different RAID levels on one disk matrix. The organization of these disks does not depend on the number of SCSI channels, nor on the number or location of physical disks. Before configuring virtual disks, you need to be clear about what volume is needed for which RAID level. It is undesirable to create disks with a volume equal to that required at the moment. Always leave at least a 25% margin for expansion. This is due to the fact that changing the volume of virtual disks can cause many problems for the administrator: archiving all data to the streamer, stopping the server, reconfiguring, restoring data, etc. In the worst case, this simple unforeseen situation can cost at least a day of work for the administrator. If a user has strict, functionally delimited user groups, then it is useful for them to make different virtual disks, even with the same RAID level. This will make administration easier and possibly increase productivity. A good solution is to create virtual system disks for different user groups on different packs. In this case, the number of conflicting transactions is minimized, which can significantly improve server performance. In conclusion, the administrator should also be warned against creating a large number of small disks - in this case, he risks getting into a situation where there is not enough space on any of them to install the software, although the total amount of disk space would allow it.

Sergey Romanchikov ([email protected]) - General Director of the Kron-studio company (Moscow).

There are a lot of articles on the Internet describing RAID. For example, this one describes everything in great detail. But as usual, there is not enough time to read everything, so you need something short to understand - is it necessary or not, and what is better to use in relation to working with a DBMS (InterBase, Firebird or something else - it really doesn’t matter). Before your eyes - just such a material.

In the first approximation, RAID is the combination of disks into one array. SATA, SAS, SCSI, SSD - it doesn't matter. Moreover, almost every normal motherboard now supports the ability to organize SATA RAID. Let's go through the list of what RAIDs are and why they are. (I would like to note right away that you need to combine identical disks in RAID. Combining disks from different manufacturers, from one but different types, or different sizes - this is pampering for a person sitting at a home computer).

RAID 0 (Stripe)

Roughly speaking, this is a sequential combination of two (or more) physical disks into one "physical" disk. It is only suitable for organizing huge disk spaces, for example, for those who work with video editing. It makes no sense to keep databases on such disks - in fact, even if your database has a size of 50 gigabytes, why did you buy two disks of 40 gigabytes each, and not 1 x 80 gigabytes? Worst of all, in RAID 0, any failure of one of the disks leads to the complete inoperability of such a RAID, because data is written alternately to both disks, and accordingly, RAID 0 has no means to recover in case of failures.

Of course, RAID 0 provides a performance boost due to read/write striping.

RAID 0 is often used to store temporary files.

RAID 1 (Mirror)

Disk mirroring. If Shadow in IB/FB is software mirroring (see Operations Guide.pdf), then RAID 1 is hardware mirroring and nothing else. Save yourself from using software mirroring by means of the OS or third-party software. It is necessary or "iron" RAID 1, or shadow.

In the event of a failure, carefully check which drive has failed. The most common case of data loss on RAID 1 is incorrect actions during recovery (the wrong disk is specified as "whole").

As for performance - by writing the gain is 0, by reading it is possible up to 1.5 times, since reading can be done "in parallel" (in turn from different disks). For databases, the acceleration is small, while with parallel access to different (!) Parts (files) of the disk, the acceleration will be absolutely accurate.

RAID 1+0

By RAID 1+0 they mean the variant of RAID 10, when two RAID 1s are combined into RAID 0. The variant when two RAID 0s are combined into RAID 1 is called RAID 0+1, and "outside" is the same RAID 10.

RAID 2-3-4

These RAIDs are rare as they use Hamming codes or byte blocking + checksums etc. but the general summary is that these RAIDs only give reliability, with 0 performance gains, and sometimes even her deterioration.

RAID 5

It requires at least 3 disks. Parity data is distributed across all drives in the array

It is commonly said that "RAID5 uses independent disk access so that requests to different disks can be executed in parallel". It should be borne in mind that we are talking, of course, about parallel I / O requests. If such requests are sent sequentially (in SuperServer), then, of course, you will not get the effect of access parallelization on RAID 5. Of course, RAID5 will give a performance boost if the array will work with the operating system and other applications (for example, it will contain virtual memory, TEMP, etc.).

In general, RAID 5 used to be the most commonly used disk array for working with DBMS. Now such an array can also be organized on SATA disks, and it will turn out to be much cheaper than on SCSI. You can see the prices and controllers in the articles
Moreover, you should pay attention to the volume of purchased disks - for example, in one of the articles mentioned, RAID5 is assembled from 4 disks with a volume of 34 gigabytes, while the volume of the "disk" is 103 gigabytes.

Testing Five SATA RAID Controllers -

Hard drives play a very important role in our computer. All information is stored on them. I don't want to lose everything overnight due to hard drive failure. And they, as you know, also have their own limit of time to failure. Surely, many of you have heard of some kind of RAID arrays. They are made to speed up the computer and for data security. Let's talk about this in more detail.

What is RAID and what is it for?

RAID - a disk array of several hard drives. In practice, a RAID array is a system consisting of two hard drives connected to a motherboard that supports the ability to create arrays (or to a raid controller). What is a RAID controller? The device that manages your array and the processes that go with it. Usually they are used on server machines. For ordinary users, such a toy is of little use - not cheap and ineffective, given the amount of information processed by an ordinary computer. When creating a RAID array, the hardware of your computer will not change. Programmatically, all work with the raid is carried out in bios, that is, nothing laborious.

SCSI RAID: difference from a classic array

SCSI is an interface, the physical connection type of a device. It differs from the usual IDE or SATA interfaces, first of all, by a different operation algorithm, which provides more high speed, and overpriced, relative to the latter, price. It has become widespread on large-scale server machines; it is rarely installed among ordinary computers.

Installing a RAID array

  1. We find motherboard with support for raid arrays or SCSI RAID.
  2. We take two absolutely identical disks, connect them.
  3. We go into bios (depending on the model of the motherboard).
  4. Parameter SATA Configuration, set RAID.
  5. While the computer is booting, press Ctrl + I.
  6. Setting up a raid.

Ready! Important: when creating RAID arrays, all information from disks is deleted!

Array types

  • RAID 0 is a disk array to improve performance.
  • RAID 1 is a "mirror" disk array.
  • RAID 2 - arrays that use Hamming code.
  • RAID 3 and 4 are striped disk arrays with a dedicated parity disk.
  • RAID 5 - striped disks with a non-dedicated parity disk.
  • RAID 6 - striped disks with 2 independent parities.
  • There are also raids 10, 50, 60. But these are too complex structures.

Let's take a closer look at the two most popular version raid arrays. These are, respectively, RAID 0 and RAID 1. What is RAID 0 for? Everything is not so difficult. The principle of operation of the array is the parallel operation of different physical devices, which are given to the system as one. That is, it directly increases the speed of the system, just imagine: two disks participate in your raid 0 array. You are writing 10 gigabytes of data. If you had not created an array, then you would have to write them to a specific disk, while the second one would definitely be idle. In the case of a raid 0 array, your data is divided byte-by-byte into several streams, and is also written to the media randomly. That is, one movie can be stored on two physical devices at the same time, and one will only have 30% of its "weight". Minus RAID 0 in the absence of fault tolerance. Moreover, if one disk fails, then you will not be able to recover data from the second one either.

Now let's talk about RAID 1. In the case of this array, you will have to use several additional disks for "mirroring". If you have only two disks in the array, then it looks like this: you are working with disk number 1, and the computer duplicates all your actions for disk 2. In the event of a device failure, all your data will be safe and sound on the duplicate disk. Safe, no doubt. The downside of raid 1 is the loss of performance.

What you need a RAID array for, you now know, it remains only to decide what suits you best. Data safety or performance gain? Everyone's business!

Disk array with retro touches.

A responsible task lies on the shoulders of RAID controllers - managing the disk subsystem, that is, all the information stored on the server. They are responsible for the operation of disk arrays, allowing you to increase server performance or data storage reliability. Therefore, let's talk about the RAID controllers installed in the servers of the Big Three vendors, about their capabilities and features.

What is a RAID controller?

Most often, the tasks performed by servers require a high speed of reading / writing data and / or the need to save data when the drives themselves fail. Therefore, installing a single disk in a server rarely makes sense. This option can be considered if the load is very small, and data safety is not a concern at all. And the volumes of information that servers operate on often require much more storage space than a single disk can provide. And the more drives, the higher the probability of failure, especially under high load.

Problems of performance and fault tolerance of the disk subsystem are solved by creating arrays: logical structures into which, using a RAID controller, several drives are combined - hard drives and SSDs. At the same time, the array appears to the system as a single space for storing data.

There are many types of arrays that differ in performance, data storage reliability and the minimum required number of disks. The choice of a particular type depends on your tasks and needs, as well as on the capabilities of the RAID controller itself.

RAID controllers are divided into:

  • Software. The entire burden of managing the array falls on the central processor. The least productive and fault-tolerant solution.
  • Integrated. Built into the motherboard. A separate chip performs some of the control tasks, but still uses the central processor. Integrated controllers may have their own cache memory. Compared to software, they support more types of arrays, work much faster and more reliably.
  • Hardware. Made in the form of expansion boards or separate devices placed outside the server (external or bridge controllers). They are equipped with their own processor that performs all the necessary calculations, and, as a rule, a cache memory. Modular controllers can have external and internal ports:
    • Internal - designed to connect drives installed in the server itself.
    • External - used to connect external disk storages.
Even if your server is equipped with an integrated RAID controller, if necessary, you can install a modular one if the available capabilities, speed and reliability are not enough for you.

If there is cache memory on board the RAID controller, then it can be used for intermediate storage of data being written or read. This allows you to manage I/O operations more efficiently.

In order to avoid losing data in the cache during a power failure, two different approaches are used:

  • the controller is equipped with its own battery (BBU - Battery Backup Unit), which allows storing data in memory for up to 3 days,
  • or additional flash memory powered by a capacitive capacitor. When power fails, it unloads the contents of the cache into it. And since flash memory consumes very little power, the data in it is stored for months. Please note that flash memory is only used during a power failure.
And as soon as the server is up, the controller first flushes the contents of the cache to disk. If you have a battery, you can activate the WriteBack mode: when writing to disk, the controller will report the successful completion of the operation already at the moment when the data gets into the cache, and then in the "background" mode it will dump them on disks. Therefore, other processes will spend less time waiting for confirmation.

Some RAID controllers allow you to increase the amount of cache memory and install a battery if they do not have one. The larger the controller cache, the better the performance of RAID arrays.

RAID controllers in the Big Three servers

In order not to turn the article into an archaeological study, we will limit ourselves to those controllers that are used in server generations starting from 2009-2010:

HP: Gen7, Gen8, Gen9
Dell: Gen11, Gen12, Gen13
IBM: M3, M4, M5











Most HP and Dell RAID controllers natively support all major array types. IBM can count such models on one hand, in almost every case you will have to install 1-2 additional upgrade modules on the controller, which is not very convenient.

Another interesting feature of IBM RAID controllers is that most of them are used in several generations of servers. HP and Dell have a different tendency - with the release of a new generation of servers, they usually release a new generation of controllers.

How to choose the right controller?

If you decide to upgrade the server and are concerned about choosing a RAID controller, then first of all proceed from your needs.

Do you need good performance but don't care about data integrity? Or do you want to increase fault tolerance with little effort, sacrificing speed? Need a simple web server for your development needs? It is enough to choose an inexpensive controller and create RAID 0 or 1. You can even without cache memory.

If you're looking to save on storage or squeeze as much capacity as you can, consider RAID 5 or 50. This is a good solution for archiving. For such tasks, it is enough to take a controller with support for the desired type of RAID and a medium-sized cache.

When creating high-speed and reliable arrays for databases, or large storages for file servers, you need high-performance controllers with a large amount of cache memory and high throughput. This is the case when saving on one device can negate all your efforts.

Tags: Add tags

To combine several hard drives into a RAID array, in addition to having the drives themselves, you also need a controller. The RAID controller is a kind of foreman who manages the HDD brigade. They are divided into three types: software, integrated and hardware. To build high-level RAID arrays with more than 6-8 disks, it is better to use hardware controllers, since they provide minimal latency under high load. In addition, bulky software-managed RAID arrays create a serious load on the computer's processor.

Despite the obvious advantages of RAID arrays, you need to remember about the disadvantages: a high level of noise (the more disks, the more noise) and difficulties in transferring the array to another computer. Even if you connect the same controller on another computer and the disks in the same order with the same cables, there is no guarantee that RAID will work on the other hardware. It is guaranteed that it will work for writing and reading only on the equipment on which it was created, and in case of the slightest change in components, problems may arise that require additional settings.

Software RAID controllers

As a rule, software RAID controllers mean solutions for organizing RAID arrays at the level of operating system drivers. Mac OS X, many Linux distributions, as well as some professional editions of Windows have built-in tools for creating the simplest disk arrays of the RAID 0,1,0 + 1 and, less commonly, RAID 5 standard. Thus, having a couple of HDDs, you can easily organize an array means of the operating system. Indeed, in this case, expect high performance not worth it: this way of organizing RAID is completely dependent on the “hardware” of your computer, since the resources of the central processor and memory are used to coordinate the disks, which can lead to a decrease in system performance as a whole. In addition, organizing RAID arrays for storing important data at the operating system level is not recommended - such arrays are extremely unstable to failures and errors, so the risk is lost, information is very large when the operating system crashes.

Integrated RAID controllers

If earlier only professionals were interested in RAID arrays, today integrated RAID controllers with support for basic levels (enough to meet the needs of a home user) can be found not only on server motherboards, but also on ordinary models designed for purely home PCs. As a rule, these are still “semi-hardware” solutions, that is, the chip installed on the board coordinates the work, but for calculations it still refers to the CPU, since it does not have its own processor on board. However, unlike fully software controllers, such solutions work much more stable (the RAID array is “determined * even before the OS is loaded), since the hardware ‘Substitution’ occurs at the motherboard firmware level. With RAID-arrays in such systems, you can work not only in the OS, but also in the shells of boot disks and disk managers. Integrated controllers on modern motherboards, as a rule, support basic levels of RAID 0.1.5 and 10 (usually based on the use of no more than 6-8 drives in the system) and provide very high performance in arrays of traditional hard drives. Thus, for organizing a home RAID array from a small number of hard drives, the capabilities of the controller integrated into the motherboard are often more than enough.

Hardware RAID controllers

To create high-performance RAID arrays with a large number of hard drives, there are controllers made in the form of separate boards with a PCI Express interface. Their cost varies over a wide range, and top solutions can cost dozens of times more than all the "hardware" of a modern desktop combined. The thing is. that such boards are, in fact, "microcomputers" in a computer, that is, they have their own computing processor and even memory for coordinating arrays of more hard drives and do all this with minimal delays and without unnecessary calls to the central processor. Due to the high cost, it is hardly worth using them in home systems, especially since in the simplest RAID 0 or RAID 1 schemes with two hard drives, there will most likely not be a performance increase compared to a good integrated controller.

Hardware controllers can deliver greater performance gains than integrated solutions when building arrays with SSDs or when building high-level RAID arrays with more than six traditional drives. In addition, expensive hardware RAID controllers are often compatible with professional high-speed SAS hard drives (usually used in servers) and may have additional features to improve fault tolerance: their own cache memory on the board, the ability to run on battery power to save the contents of the cache memory in the event of a power failure and on-the-fly hardware error correction.

Of course, hardware controllers, unlike software and integrated ones, support much more RAID schemes, some even provide the ability to use non-standard levels, and also allow you to build complex hybrid arrays from different RAID levels while using hard and solid state drives.



tell friends