With the rapid uptake of HP StoreServ SAN’s I thought it would be a good idea to discuss “Chunklets”, a term which you may or may not have already come across when dealing with the HP StoreServ range.
In a regular RAID array scenario we create logical disks from physical disks for redundancy using specific RAID levels depending on our individual space / redundancy / performance requirements.
With an HP StoreServ SAN this is taken even deeper to the “Chunklet” level.
Firstly, the HP StoreServ divides each physical disk into small “chunklets”. This is important for two reasons, firstly it enables the use of different sized disks in the same array without any capacity wastage and secondly allows the use of different RAID types on the same physical disk.
For information purposes, chunklet sizes are 256MB on StoreServ with Gen 3 ASIC chips and 1GB on StoreServ with Gen 4 ASIC chips. My diagrams below are merely for show and do not represent an accurate mathematical ratio just in case you were wondering!
* Denotes Parity
Once the disks have been divided into chunklets, these chunklets can then be grouped to form the logical disks by constructing RAID across these chunklets. Parity is now at the chunklet level as logical disks are formed and distributed across the physical disks.
Since the data and parity are distributed over every disk, the StoreServ can utilise data from all disks in the system making rebuilds of failed disks much faster. Interesting to note that the logical disks can even span disk shelves (If your StoreServ has extra shelves of course), enabling the StoreServ to even lose an entire disk shelve without data loss – this is aptly termed Shelf-Independent RAID. Bear in mind that normal RAID rules apply when using Shelf-Independent RAID and the StoreServ must have the correct amount of shelves for the RAID type chosen, for example, RAID 5 (3+1) would require 4 Shelves and so on.
At this stage logical disks of different RAID types can be created on the same physical disks, this is very important for optimising performance and space capacity consumption for different workloads.
The StoreServ supports the following RAID types: RAID 0, RAID 10 (1), RAID 50 (5), RAID Multi-Parity (6). The number of chunklets in a set is known as the set size, which is always 1 for a RAID 0 logical disk, 2 for a RAID 1 logical disk, minimum 3 for a RAID 5 Logical Disk and so on. The number of sets in a row is known as the row size.
Now, the StoreServ can apply a “wide stripe” to create, for example, a RAID 10 or RAID 50 set as shown below.
Some chunklets are set up as spares at first system setup (as shown above), these spares are used to hold relocated data during a disk failure or during certain maintenance procedures. Any chunklet can be allocated as a spare but the system tries to choose chunklets from the end of the physical disks logical block space, or as near to the end as possible.
Up until this point, the StoreServ has carried everything out autonomically, with no visibility to the end user. It is very important to understand that in order to present storage to a host, we need to create common provisioning groups or CPGs, then virtual volumes (LUN’s) and finally export the virtual volume. Only on the first write are the logical disks created.
A CPG simply defines the disk type and RAID set type to be available to a virtual volume. Example, we could create a CPG called CPG_TEST1 which uses Fast Class disks and 5 (3+1) and a CPG_TEST2 which uses Near Line disks and RAID 6 (6+2). However, CPG and virtual volumes are a completely separate discussion so I will end my chunklet discussion here.
I hope you found this useful.