If you decide to use shared storage for VDI (which is almost always advisable), there are a few things you should do to ensure fault tolerance and high performance.
Of course, you should first consider whether shared storage is right for your VDI project. Direct-attached storage is also an option for some environments. It's often cheaper and simpler to deploy, plus bandwidth constraints and shared resources don't affect it.
If you take the shared-storage route, here are some important considerations to keep in mind:
Your users' overall VDI experience is largely affected by the performance of the storage subsystem. While it is easy to focus on designing a storage solution that can deliver the required number of IOPS, raw disk performance alone is not sufficient to ensure a good end-user experience. The virtual desktop host servers must be able to efficiently communicate with the storage mechanism. As such, it is important to take measures to prevent a communications bottleneck when you deploy shared storage for VDI.
Developing a fault-tolerant storage communications architecture is equally important. That will prevent the network link that connects the host server to the storage device from potentially becoming a single point of failure.
More on storage for VDI
VDI storage management guide
Quiz: How much do you know about VDI storage and backup?
Understanding solid-state storage for VDI
One of the first choices you will need to make is the type of network connection you'll use between the storage device and your host servers. In a shared-storage environment, you will typically need to use either iSCSI or Fibre Channel.
Fibre Channel host bus adapters are capable of communicating at a speed of 8 GB per second. In contrast, iSCSI is commonly used over 10 Gigabit Ethernet. As such, it is easy to assume that iSCSI will deliver better performance. Fibre Channel, however, almost always performs better than 10 GB iSCSI -- even though its total rated throughput is 2 GB slower -- because of the overhead associated with the iSCSI protocol. Using network interface cards with TCP/IP offload engines can help improve iSCSI's performance, but not to the level of Fibre Channel.
Assuming that the host servers are in close physical proximity to the storage array, the only reasons to use iSCSI would be that it costs less than Fibre Channel and can be used over standard Ethernet. Incidentally, it is possible to run Fibre Channel over Ethernet (FCoE), but FCoE does not perform as well as native Fibre Channel because of the Ethernet encapsulation process.
Regardless of whether you choose iSCSI or Fibre Channel for shared storage, redundancy is an important part of fault tolerance. Hardware vendors offer multi-port Ethernet cards and multi-port host bus adapters. Even so, such devices do not provide true redundancy because the adapter itself can become a single point of failure. In order to provide truly redundant communications, you should be using multiple physical adapters.
The goals of providing high performance and fault tolerance should be taken into account when designing shared storage for VDI. As a best practice, it is generally advisable to use a RAID 10 array that delivers the performance of a stripe set (RAID 0) but offers the redundancy of mirroring (RAID 1).
In a RAID 10 array, every hard disk is mirrored, which provides protection against a multidrive failure.
Organizations on a tight budget might also consider using RAID 5 (striping with parity). RAID 5 offers protection from a single drive failure. RAID 5, however, stores parity information on each drive within the array. The overhead involved in writing the parity information causes a RAID 5 array to perform poorly when compared to a stripe set without parity (a RAID 0 array). RAID 5 also lacks the ability to protect against multi-disk failures.
If there are significant budgetary constraints around storage for VDI, then a RAID 5 array might be a viable option for smaller organizations. It can theoretically deliver the required IOPS assuming enough spindles are used.
If you decide to use a RAID 5 array, remember that a failing drive greatly diminishes the array's performance. Simply replacing the failed drive does not immediately restore the array's performance since the contents of the failed drive must be regenerated onto the new one. That process cuts into the array's effectiveness.