Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Create and access a list of your products
  • Manage your Dell EMC sites, products, and product-level contacts using Company Administration.

Dell Storage with Microsoft Storage Spaces Best Practices Guide

PDF

Storage tiers

Storage tiers enable the mixing of HDDs and SSDs in one pool and take advantage of the faster SSDs to maximize IOPS and throughput by using the SSDs as cache. Storage Spaces constantly analyzes data usage patterns and moves the most frequently used data from the HDD tier to the SSD tier to speed up access.

  • NOTE: Storage tiers are only supported with mirroring or simple spaces.

Storage Spaces creates a heat map based on the frequency that the data is used. Once in a day, an optimization process automatically runs and the most frequently accessed data (hot data) is moved to the SSD tier and less frequently accessed data (cold data) is moved to the HDD tier.

Because the data on the SSD tier is only updated once in a day (by default), if required, you can manually optimize data by running the following PowerShell command.

defrag.exe /C /H /K /G

You must run this command on all storage nodes in the cluster, because it only optimizes the VDs owned by the storage node where the command was run.

When validating the performance of your solution, ensure to perform benchmarks over the course of several days to allow the SSD tier to optimize for your workload, or you can manually optimize the SSD tier. Manually optimizing storage tier data by using the command above generates a Storage Tier Optimization Report. The Storage Tier Optimization report provides data on the storage tier, which can be used to identify methods to optimize performance.

You may want the ability to permanently place a frequently used file on the SSD tier, for example, a frequently accessed VHDX file that requires low latency and high throughput. You can accomplish this by pinning files to the SSD tier.

Consider the following before running the command:
  • You must run the command from the storage node which owns the CSV where the file is stored.
  • You must use the local path of the CSV on the storage node.

Even after pinning the file, it will not move to the SSD tier until the next optimization (or if you run it manually).

Dell recommends you to use pin sparingly, because the primary goal of storage tiers is to allow the heat map process to optimize the tiers.

Run the following Powershell command to pin files to the SSD tier.

Set-FileStorageTier –FilePath <localFilePath> -DesiredStorageTierFriendlyName <ssdTierName>

Run the following Powershell command to unpin files from the SSD tier.

Set-FileStorageTier –FilePath <localFilePath>

Run the following PowerShell command to review all files currently pinned.

Get-FileStorageTier –VolumePath <csvVolumePath>

Example:

Pinning a VHDX file called myVHDX, which is on exampleShare on a CSV labeled Volume3. The storage tier is called MyPool1_SSD.

Set-FileStorageTier –FilePath “C:\ClusterStorage\Volume3\Shares\exampleShare\myVHDX.vhdx” –DesiredStorageTierFriendlyName “MyPool1_SSD”

For a correctly designed storage pool, it is recommended that you evenly spread the SSDs and HDDs across the pools and enclosures. Storage tiers are configured for each storage pool and it is recommended to create one SSD tier and one HDD tier for each storage pool.

The following equations are for planning purposes when you start creating VDs in your storage pools. The values from the equations are used to understand the upper limit for capacity planning so that you are always leaving 10 percent of HDD raw disk space and 10 percent of SSD raw disk space free across the pool as you create and size each VD for automatic rebuilds. These are not intended to be equations to guide you about sizing the tiers of the individual VDs. If you are not using automatic rebuilds, multiplying by 0.9 is not necessary.

Raw SSD Usable Capacity Per Pool =(Number of SSDs in the pool)* SSD Capacity*(.9 for automatic rebuild space)

Raw HDD Usable Capacity Per Pool =(Number of HDDs in the pool)*HDD Capacity*(.9 for automatic rebuild space)

Tier size is the raw value modified by a resiliency factor depending on the type of Storage Space you are creating. For example, 1 for a Simple Space, 1/2 for a Two-way Mirror, and 1/3 for a Three-way mirror.

SSD Tier Per Pool = (Number of SSDs in the pool)*(SSD capacity)*(.9 for automatic rebuild space)*(Resiliency Factor)

HDD Tier Per Pool = (Number of HDDs in the pool)*(HDD capacity)*(.9 for automatic rebuild space)*(Resiliency Factor)

For example,

A pool is created with 48 x 4 TB and 12 x 800 GB disks called tierPool1. Only two VDs exist in this pool, one with Two-way mirroring called 2wayVD1 and one with Three-way mirroring called 3wayVD1.

2wayVD1 HDD tier was 41 TiB, which uses 82 TiB of the HDD tier because of the 50 percent resiliency overhead for Two-way mirroring. The SSD tier was 2.4 TiB in size, which uses 4.8 TiB of SSD tier because of resiliency overhead.

3wayVD2 HDD tier was 25 TiB, which uses 75 TiB of the HDD tier because of the 66 percent resiliency overhead from Three-way mirroring. The SSD tier was 1 TiB, which uses 3 TiB of SSD tier because of resiliency overhead.

After both VDs are created, there is 17.72 TiB of disk space remaining in the HDD tier (10.2 percent disk space free) and 0.93 TiB of disk space remaining in the SSD tier (10.6 percent disk space free).

Table 1. Example of disk space values to be used for Storage tiers for pools and VDs

Pool Name

tierPool1

HDDs in pool

48

HDD disk space

4 TB (3.64 TiB)

HDD tier disk space (after 10 percent for automatic rebuild)

157.2 TiB

SSDs in pool

12

SSD disk space

800 GB (745 GiB)

SSD tier disk space (after 10 percent for automatic rebuild)

7.86 Tib
VD name2wayVD1

Resiliency

Two-way mirror

HDD tier disk space

41 TiB

SSD tier disk space

2.4 TiB
VD name3wayVD2

Resiliency

Three-way mirror

HDD tier disk space

25 TiB

SSD tier disk space

1 TiB

Run the following PowerShell commands when creating a new SSD and HDD storage tier (configured for each pool).

New-StorageTier -StoragePoolFriendlyName <poolName> -FriendlyName <ssdTierName> -MediaType SSD

New-StorageTier -StoragePoolFriendlyName <poolName> -FriendlyName <hddTierName> -MediaType HDD

For example,

New-StorageTier -StoragePoolFriendlyName “tierPool1” -FriendlyName “tierPool1_SSD” –MediaType SSD

New-StorageTier -StoragePoolFriendlyName “tierPool1” -FriendlyName “tierPool1_HDD” –MediaType HDD

Storage tiers are sized for each VD when the VD is created. You can size the SSD and HDD tiers in the GUI during VD creation or by using PowerShell.

Run the following PowerShell command for creating a VD using existing storage tiers.

New-VirtualDisk -FriendlyName <vdName> -StoragePoolFriendlyName <poolName> -ProvisioningType Fixed -ResiliencySettingName <Simple| Mirror| Parity> -PhysicalDiskRedundancy <1|2> -StorageTiers <ssdTierObject, hddTierObject> -StorageTierSizes <ssdTierSize , hddTierSize>

For example,

A new VD is created called 2wayVD1 in the storage pool tierPool1. This VD is configured as a Two-way mirror. The SSD and HDD tiers for this pool was created in the earlier example. Because the StorageTiers attribute requires objects as its input, the output of the Get-StorageTier PowerShell command is assigned to the $ssd_tier and $hdd_tier variables, and then used when creating the VD. The StorageTierSizes attribute is set to the size of each tier for which the VD uses the tier disk space.

$ssd_tier = Get-StorageTier -FriendlyName tierPool1_SSD

$hdd_tier = Get-StorageTier -FriendlyName tierPool1_HDD

New-VirtualDisk -FriendlyName “2wayVD1” -StoragePoolFriendlyName “tierPool1” -ProvisioningType Fixed -ResiliencySettingName Mirror -PhysicalDiskRedundancy 1 –StorageTiers $ssd_tier, $hdd_tier –StorageTierSizes 2.4TB, 41TB


Rate this content

Accurate
Useful
Easy to understand
Was this article helpful?
0/3000 characters
  Please provide ratings (1-5 stars).
  Please provide ratings (1-5 stars).
  Please provide ratings (1-5 stars).
  Please select whether the article was helpful or not.
  Comments cannot contain these special characters: <>()\