The Dell EMC Unity Storage array has many factors to consider when sizing the solution. Today we dive into the innovative Dell EMC Unity Storage solution and help you determine what you need to size the Dell EMC Unity array appropriately. We’ll talk about how to calculate capacity using a Unity feature called ‘Dynamic Pools,’ how controller and RAID influence performance, and network interface and configuration options.
Factors influencing capacity with Unity All Flash
Block size – every file system and application has a default block size.
- Windows server: 4K
- Exchange & SQL: 64K
- Oracle: “it depends”
If the block size of the application and file don’t match, there are two possible outcomes, both of which are bad.
- Wasted disk space
- Your controller has to work much harder, and negatively impacting performance.
For example, If you have small block sizes in your file systems such as 4k but configure large block sizes in a storage array disk space is wasted. Configuring the reverse, large file system or application blocks sizes paired with small storage array block sizes; the storage array will have to work hard completing multiple write operations to complete one file system or application write. Unity offers 8k and 32k block sizes, so although there will not be an exact match, this ratio of file system or application block sizes to multiples of two is still optimal. A sizing tool will always assume you are matching application and file system block sizes as much as possible, so it’s crucial to choose wisely.
RAID Level Choices – protects your data from disk loss at the penalty of additional blocks
- RAID10: mirrored blocks (often selected for database applications)
- RAID5: one additional block (compromise of RAID 10 & RAID6)
- RAID6: two additional blocks (selected for low IOP profiles)
It’s important to keep in mind that your application requirements often determine your RAID level.
We previously mentioned calculating capacity with Dynamic Pools. Let’s dive a little bit deeper into Dynamic Pools in a Dell EMC Unity All-Flash Storage array.
Dynamic Pools mean dedicated drives and RAID are no longer, but instead the RAID is virtualized across drives. In the image above, the green blocks represent one example of many in a 4+1 RAID5 with six drives. The green RAID stripe will do its five writes in the first five drives. The next write operation uses the same first four drives and then offsets with the last block in orange in the 6th drive and so on. This approach spreads the I/O across all available devices for performance, efficient space usage, and availability. You no longer need to be concerned with what RAID stripe is tied to which disk drive. An algorithm manages this process and pools all the drives. A minimum of one additional drive is added to each pool for spare space in the event of a device failure.
RAID Width Options
RAID5: 4+1, 8+1, 12+1
RAID6: 4+2, 6+2, 8+2, 10+2, 12+2, 14+2
RAID Width is the size of the stripe of a single write process. The benefit of a shorter RAID width is better performance whereas the benefit of a longer RAID width is space efficiency.
The Dell EMC Unity Storage array has compression and deduplication working together. Data reduction can range from 1.22 to 12:1 and more. Flat files tend to deduplicate very well resulting in at least a 3:1 reduction or better. Expect databases to deduplicate and compress at ratios of 1.5:1 – 2.1:1. Compressed files such as images and video will see little to no data reduction at all. If you’re considering implementing deduplication and compression, we’d also encourage you to take a look at Dell EMC’s Squeeze Tool which can estimate your data reduction ratio on a per volume basis. If interested contact VirtuIT Systems for help with the Squeeze Tool.
For a full example of how the dynamic pools work, check out this video (hint: example starts at 10 minutes!)
Now that we’ve discussed sizing for capacity let’s dive into sizing for performance. The three main elements that we have to consider are:
- What kind of CPU does it have?
- Is it a single socket or dual?
- How many cores?
- From what family of processors?
- How much memory is available?
- How many network ports to I have and what speeds are they operating?
The memory will serve as the primary write cache for all incoming writes. Reads can also occur out of that memory and is also where all of the services operate. Snapshots, replication, data reduction, are all resources services managed by the controller CPU and memory.
In modern storage arrays, much of the performance is dictated by the SSDs because they’re much faster than spinning disk. However, when you’re running snapshots, replication, & data compression and deduplication, you’re going to see an impact on performance as they’re a tax on your controller system. It is essential to ensure the controller that you’re using can handle the storage and services you choose to leverage. Higher capacity storage arrays will also require more power controllers since we are asking the controller to manage more physical devices.
RAID level will also impact performance. The RAID levels we went over are:
- RAID10 – provides the best performance using the most space
- RAID5 – is a compromise
- RAID6 – creates the most overhead
Try and pick RAID levels in pools that are a balance between the workload and performance the application requires. If you haven’t yet, please check out this video for an example of performance and capacity.
- 80%R, 20% W
- 67%R, 33% W
- 50% R, 50% W
- 100% R
Whenever we’re looking at writes, it’s important to understand that a high number of writes will tax the controller. Any writes that get written to the DRAM memory pool in our controller then needs to be destaged to the solid state disk (SSD). A higher percentage of writes will reduce the overall IOPS performance.
Finally, let’s look at sizing out our network throughput. If you’re looking at NAS or iSCSI, then your options are 1Gb, 10Gb, or 25Gb. When using Fiber Channel, your choices are 8Gb or 16Gb. Here is a chart that breaks down the port capabilities.
As you size for IOPs and capacity, make sure you have enough ports for availability & the IOPS that you expect.
How can we increase throughput and availability?
If it’s a block protocol like Fiber Channel or iSCSI, you’ll want to look at MPIO or PowerPath for path management so you can have multiple paths coming from the storage array each controller individually into different switches and also have those multiple paths going out to the hosts.
If it’s SMB or NFS, it’s very similar with the only difference being its link aggregation (LACP) and Fail Safe Networking. The Dell EMC Unity All Flash Array also allows up to 24 ports total for scalability.
How do I get started?
Take an inventory of all of your applications by performance and capacity needs. Some probing questions are:
- How much usable space do my applications need?
- What type of performance level do I have?
- What type of RAID level should I consider?
- What is the ratio of reads to writes?
If you need help with this, contact us to run an assessment helping you determine the right strategy and make recommendations.