Understanding RAID Controller and RAID Performance

Server can be provisioned with disk space from either Storage ( SAN , NAS , NFS etc .. ) or DAS ( Direct Attached Storage ) . There are lot of posts from the Storage Vendors on the Performance considerations that needs to be accounted in a Storage environment to achieve desired level of performance but i have not come across many articles on Performance considerations for DAS Environments . This blog post will cover some basic factors that has to be considered in a DAS environment .

RAID – Redundant Array of Disks are used in Servers and Storage to server three main purpose

  1. Increasing Reliability and providing Fault Tolerance
  2. Creation of large storage Volumes
  3. Increasing I/O capabilities and throughput

In Storage Systems , RAID is taken care by the Storage System whereas Servers come with RAID Controllers which help in providing RAID capabilities to local disks .

Overall Performance of RAID arrays in Servers are dependent of the below factors

  • RAID Controller Performance
  • RAID Level
  • Number of Disks and Drive Performance
  • Storage Interface Performance ( SAS vs SATA )

I will stick to explaining briefly understanding RAID Controller performance in this post as the other three factors are same as in Storage environments .

RAID Controller Performance :

Two important factors in a RAID controller that contributes to the performance of the RAID controller  are Processor and the associated Read / Write cache . Processor is responsible for processing all RAID operations such as write operations for redundant RAID modes  and calculating Parity bit that is written onto disk based on RAID level which in future would be used in rebuilding of data  based on parity in case of drive failures .

Cache :

Amount of Cache available on RAID controller varies with vendors and we will have to optimally split the cache into Read Cache and Write Cache  based on our requirements. Read Cache are helpful in scenarios where the data is read sequentially . RAID controllers will pre-fetch data from the disk the moment it detects sequential data and store it in the cache which will in turn mean faster response time .

Read Cache might not be effective in scenarios where the Reads are random . Also , Please note that the read performance of the disk arrays would be far better than writes ( due to associated disk penalties )  and hence most RAID controllers are configured for 25%:75% ( Read Cache:Write Cache).

As in Storage environments , Write cache are used as buffers wherein the host will write data onto the cache and acknowledgement will be sent from the cache . RAID controller will later write the data from Cache onto Disks .This helps in achieving higher disk throughput . Various techniques write like write-coalescing and command reordering are employed  to write data back to disk effectively .

Note that the acknowledgement is sent from the cache and it is imperative to write back the data to the disk to maintain data integrity . To maintain this integrity in cases of sudden power failure or a server crash , cache is generally backed by battery and it is advisable not to use cache in cases where there is no battery backed cache .

About Sudharsanhttp://vpando.comThis blog is to share my PERSONAL thoughts on Virtualization and Storage . My name is Sudharsan and I am a VMware Certified Professional and Microsoft Certified Technology Specialist on Hyper-V based out of India . Disclaimer : The views expressed anywhere on this blog is strictly mine .

Leave a comment