Creating Windows EC2 Instance and RAID group to improve I/O
This Blog has been moved from Medium to blogs.tensult.com. All the latest content will be available there. Subscribe to our newsletter to stay updated.
Performance is critical for most of the applications in 21st century, and all most all the times' disk I/O is the culprit so here I am explaining on about RAID setup for Windows to improve disk performance by reducing latency issues so that the applications can respond much faster to the end-users.
RAID stands for Redundant Array & Independent Disk and essentially what it does is putting a whole bunch of disks together and acts as one disk to improve I/O performance.
We can implement RAID with the following configurations.
RAID 0 (Disk Striping):
RAID 0 splits data across any number of disks allowing higher data throughput. An individual file is read from multiple disks giving it access to the speed and capacity of all of them. This RAID level is often referred to as striping and has the benefit of increased performance.
Minimum number of disks: 2
Pros: Increased performance (Write and read speeds).
Cons: No redundancy.
Business use: Live streaming, IPTV, VOD Edge Server
RAID 1 (Disk Mirroring):
RAID 1 writes and reads identical data to pairs of drives. This process is often called data mirroring and its primary function is to provide redundancy. If any of the disks in the array fails, the system can still access data from the remaining disk(s).
Minimum number of disks: 2
Pros: Fault tolerance and easy data recovery. Increased read performance.
Cons: Lower usable capacity. Higher cost per megabyte (double the amounts of drives is required to achieve the desired capacity).
Business use: Standard application servers where data redundancy and availability are important.
RAID 5 (Striping with parity):
RAID 5 stripes data blocks across multiple disks like RAID 0, however, it also stores parity information (Small amount of data that can accurately describe larger amounts of data) which is used to recover the data in case of disk failure.
Minimum number of disks: 3
Pros: Fault tolerance and increased performance (lower than RAID 0)
Cons: Lower performance with servers performing large amounts of write operations because of parity overhead.
Ideal use: File storage servers and application servers.
RAID 6 — Striping with double parity
RAID 6 is similar to RAID 5, however, it provides increased reliability as it stores an extra parity block. That effectively means that it is possible for two drives to fail at once without breaking the array.
Minimum number of disks: 4
Pros: Even higher redundancy than RAID 5. Increased read performance.
Cons: Lower performance with servers performing large amounts of write operations because of parity overhead.
Ideal use: Large file storage servers and application servers.
RAID 10 (Striping + Mirroring):
RAID 10 combines the mirroring of RAID 1 with the striping of RAID 0. Or in other words, it combines the redundancy of RAID 1 with the increased performance of RAID 0. It is best suitable for environments where both high performance and security are required.
Minimum number of disks: 4
Pros: Very high performance. Fault tolerance.
Cons: Lower usable capacity/High cost. Limited scalability
Ideal use: Highly utilized database servers/ servers performing a lot of write operations
Create a Windows EC2 Instance with four EBS volumes.
Once the Windows Instance is provisioned get the windows User Id and Password to access it through RDP, make sure to add RDP access(port 3389) to the Security Group Inbound rule. In Source, as recommended should be “My IP” as it is not a best practice to open RDP ports to the world, try using a defined IP range or use MYIP as this will use your current IP range thereby limiting the access to the external world
Add the windows key for the Instance to decrypt password for accessing instance through RDP shown in below image.
Once you get the credentials, run ‘mstsc’ command on windows and Login to the Windows Instance. Since I’m using a Mac so I need to access from Microsoft Windows Desktop 8.
Now go to the Disk Management option by right clicking and ‘delete’ all EBS volumes apart from the ‘Root’ volume.
Now all volumes are unallocated, you can go to any of the volumes right-click and select any of the RAID options depending on the requirement. In this case, I’ll be selecting STRIPPED volume(RAID 0) and allocate rest other disks and Combine them to one disk naming it as D: drive.
Note:- RAID 5 and RAID 6 are not recommended for Amazon EBS because the parity write operations of these RAID modes consume some of the IOPS available to your volumes. Depending on the configuration of your RAID array, these RAID modes provide 20–30% fewer usable IOPS than a RAID 0 configuration. Increased cost is a factor with these RAID modes as well; when using identical volume sizes and speeds, a 2-volume RAID 0 array can outperform a 4-volume RAID 6 array that costs twice as much.
This way we have created a new volume D: across four EBS volumes and now we’ll be getting much high Disk I/O than using all four disks individually.
Advantage: When we perform the RAID 0 Striping of multiple volumes, IOPS are distributed among the volumes of a stripe. If you add another volume to RAID 0, you get the straight addition of IOPS throughput of that volume and additional volume size.
Conclusion
Now by following the above steps, you’ll be able to avoid latency/slowness of application on your Windows EC2 Instance. RAID is a great feature and beneficial for your organisation in preventing latency issues. For any doubts or clarifications kindly get in touch.