Hi All ...
This part is somehow not about vSphere, but about some basic and advanced storage concepts. These concepts are necessary for understanding how Storage and Datastores
work in vSphere environment.
Credits:
- Duncan Epping
- Jason Nash
- Seán Byrne
Now, let's start..
1. Directly Attached Storage - DAS:
ATA aka IDE | Oldest interface which supports low speeds. |
Serial ATA aka SATA | The evolution of ATA, which supports higher speeds. Used in PCs and Servers. |
Small Computer System Interface aka SCSI | Old interface used by PCs for peripheral devices or servers for storage. |
Serial Attached SCSI aka SAS | Evolution of SCSI & SATA, which supports high speeds and many DAS connected together in the same backplane either SATA or SAS. |
2. Storage Area Network - SAN:
Internet SCSI aka iSCSI | Interface used to connect SAN to the server using TCP/IP protocol and RJ45 cabling. Transfer rate reaches 10 GBps using Host Bus Adapters (HBA). |
Fiber Channel | Optical interface used to connect SAN to the server using Fiber channel cabling, fiber switches and Fiber HBAs. |
3. Fiber Channel Networks Identifiers:
Fiber Channel Networks Identifiers are identifiers, hard-coded inside FC networks elements like MAC Addresses in Ethernet Networks, to identify each element uniquely.
The following table is a summary of these identifiers:
World-Wide Node Name(WWNN) | A like-MAC-address unique name for the device itself, however the number of ports it has. |
World-Wide Port Name(WWPN) | A like-MAC-address unique name for each port in the device, i.e. for dual port HBA, it’ll have one WWNN and two WWPN. |
4. FC LUNs Accessing:
Zoning is process of allowing communication between initiators and targets on FC Fabric. The following table is a small comparison between different types of Zoning:
Soft Zoning | Storage Processor (SP) controls which HBA can access which LUN using HBA's World Wide Name (WWN-64 bit identifier unique for each HBA). |
Hard Zoning | FC Switch (Fabric) controls which port can connect to which SP. SP controls certain LUNS, so each port will connect to certain LUNs. |
LUN Masking (Host Accessing) | Visibility of LUNs are controlled from either SP or host itself. It controls which host can connect to certain LUNs. |
5. RAID Types:
This comparison I created for summarizing differences between different types of RAID Configurations:
| Number of Disks | Capacity | Performance (R/W) | Pros. | Cons. |
RAID 0 (Data Striping) | Min. 2 Disks and up to as much disks as possible. | Summation of all disk spaces. | High/High | - High R/W performance. - High Capacity and no loss in disks. | - Zero reliability: no parity, no mirroring or any type of data protection. - One disk fails and all RAID is down and all data is lost. Hence, additional backup system is required. |
RAID 1 (Data Mirroring) | 2 Disks only. | Capacity of one disk. | High/Medium | - High Read performance. - Reliable as data is duplicated from one disk to another. - Supports only one disk failure. | - Capacity of one disk is lost. - Write performance is low somehow. |
RAID 5 (Data Striping with Distributed Parity) | Min. 3 disks and up to as much disks as possible. | Capacity of N-1 disks. | High/Low | - High Read performance. - Reliable as if one disk fails, the RAID is still up and the data is protected. - If a disk fails, RAID controller can re-build the lost part of data from the other parts and parity (Parity originally calculated from XOR operations). - Supports only one disk failure. | - Capacity of one disk is lost. - Low write performance due to parity calculations. - Low read performance if a disk is down due to calculations of missing data during Read operation. |
RAID 6 (Data Striping with Two Distributed Parity) | Min. 4 disks and up to as much disks as possible. | Capacity of N-2 disks. | High/Lowest | - High Read performance. - Reliable as if two disks fail, the RAID is still up and the data is protected. - If a disk fails, RAID controller can re-build the lost part of data from the other parts and parity (Parity originally calculated from XOR operations). This can be done also in case of two disks failure. - Supports two disks failure. | - Capacity of two disks is lost. - Lowest write performance due to parity calculations (worse than RAID 5). - Low read performance if a disk or two is down due to calculations of missing data during Read operation. |
RAID 0+1 (Striping then Mirroring) | Min. 4 disks and only dual number of disks. | Capacity of N/2 disks. | Highest/Highest (Although of high overhead 50%) | - Highest R/W performance. - Reliable as if a disk failed, its mirror is still there to get the data from. - If a disk fails, it can be replaced and the RAID can be rebuilt data from its mirror without data loss and RAID is still up. - Supports up to N/2 disks failures unless no case of disk and its mirror failure. | - High Capacity loss (N/2 disks). - High performance overhead (50% performance is lost in mirroring). - Long data rebuilding window as it mirrors the whole set of disks even if the failed disk is only one. |
RAID 1+0 (Mirroring then Striping) | Min. 4 disks and only dual number of disks. | Capacity of N/2 disks. | Highest/Highest (Although of high overhead 50%) | - Highest R/W performance. - Reliable as if a disk failed, its mirror is still there to get the data from. - If a disk fails, it can be replaced and the RAID can be rebuilt data from its mirror without data loss and RAID is still up. - Supports up to N/2 disks failures unless no case of disk and its mirror failure. - Short data rebuilding window as it only mirrors the failed disk stripe. | - High Capacity loss (N/2 disks). - High performance overhead (50% performance is lost in mirroring). |
6. Calculating IOps for RAID and Disk Types:
Each type of disk can give certain IOps which indicates its performance. Disk performance can be enhanced by using many disks in RAID Configuration (Check the table above) despite penalties in WRITE performance due to RAID configuration. The following article by Duncan Epping talks about these calculation in great details with Real-Life example:
The following table that I made is based on these calculations and calculation of Jason Nash in his video course vSphere 5: Optimize & Scale (VSOS 5) on Pluralsight (aka Trainsignal).
| Penality | SSD | 15k rpm | 10k rpm | 7.2k rpm | 5.4k rpm |
Normal Read IOps | --- | 6000 | 175 | 125 | 75 | 50 |
RAID 0 Write IOps | 1 | 6000 | 175 | 125 | 75 | 50 |
RAID 1 Write IOps | 2 | 3000 | 87 | 62 | 37 | 25 |
RAID 5 Write IOps | 4 | 1500 | 43 | 31 | 18 | 12 |
RAID 6 Write IOps | 6 | 1000 | 29 | 20 | 12 | 8 |
RAID 10 Write IOps | 2 | 3000 | 87 | 62 | 37 | 25 |
Last thing, these equations I got also from the previous article and also from Jason Nash course:
Raw IOps of certain RAID= N*DI
Backend IOps of App= Frontend IOps of App*(% Read+(% Write*P))
Number of Disks for certain Backend IOps (N)= Backend IOps/DI
N: Number of RAID disks
DI: Disk standard READ IOps
P: RAID Configuration Penalty
7. Converting IOps to MBps:
The following article was recorded for equations wrote by Seán Byrne for converting IOps to MBps:
http://www.ssdfreaks.com/content/599/how-to-convert-mbps-to-iops-or-calculate-iops-from-mbs
8. Storage Latency Considerations:
Storage latency is usually kept under 10 ms, when its peak (sharp narrow peak) is 20 ∼ 30 ms. It’s caused due to more random IO operations, long queues, or heavy jobs like backups. Latency is the biggest enemy against ESXi storage performance and high latency can cause poor VMs performance and high CPU overhead cycles.
Share the knowledge ...
Previous: vSphere 5.x Notes & Tips - Part IV: