Servers offer a variety of RAID and associated capabilities. Some are implemented entirely in software, some in hardware, and some require a combination of both.
Before describing the different RAID levels supported platforms, it is necessary to explain some technical terms.
Stripe size - The smallest block of data that is written to a physical drive. Typically this is 4KB.
Stripe width - The number physical drives being used for a logical disk stripe.
Read/Modify/Write - In RAID 5, if a write occurs which is less than the stripe size, then the subsystem must read in data from a drive, merge it with the data to be written, and then calculate parity. This leads to poor write performance in RAID 5 if most writes are smaller than the stripe size.
Volume set - Windows supports the ability to concatenate space on drives to form a single large logical drive. This is different from a RAID 0 stripe because the space is used sequentially. In a volume set, data is written to the first drive in the set until that drive is filled. Then, data is written to each subsequent drive until that drive is filled.
Write-back cache - Many modern disk controllers have several megabytes of cache on board. Onboard cache allows the controller greater freedom in organizing scheduling reads and writes to disks attached to the controller. Usually the controller allows a system administrator to control the way in which the cache is used. In write-back mode, the controller reports a write operation as complete as soon as the data is in the cache. This improves write performance at the expense of reliability. If power fails or the system crashes, then data in the cache is lost, resulting in damage to the file system.
Systems using write-back cache policy should be protected by an Uninterruptible Power Supply (UPS) which reduces the chance of serious data loss.
Write through-cache - Opposite of write-back. When running in a write-through mode, the controller does not report a write as complete until it is written to the disk drives. This reduces read/write performance by forcing the controller to suspend an operation while it satisfies the write request.