ChunkWhat? Chunklets!

Posted by

People who know me or follow me at twitter will allready know that lately I have been pretty active with 3PAR. From a HP Partner perspective I’m a bit proud to be an ‘early adopter’. One of the (dis)advantages of being an early adopter is that you may explain it all to your friends and colleagues.

Although there is a lot of information on the 3PAR website or at 3PARtv (Youtube), there are still some things that need to be explained 3 times before they (you) get it 😉
This happens to be the fact for the ‘chunklets’, logical disks and how 3PAR handles failover on disk/chassis level. Therefore this ‘Chunklets for Dummies’.

INTRO – What is a 3PAR array:
A 3PAR array  exists of 2/4/6/8 controller nodes, direcly connected through a passive backplane. Eachcontroller has redundant connections to pairs of drive chassis. Each drive chassis holds up to 10 magazines of 4 disks. You always fill a magazine per 4 disks and 1 magazine per chassis (4 chassis = 16 drives minimum).

1) What is a chunklet? In short, a chunklet is a 256Mb block of data. By default a 3PAR array will devide ALL DRIVES in chunklets of 256Mb. This means for example for a 600Gb drive you’ll have 2400 chunklets (600Gb*1024Mb/256Mb). If you now take a basic 3PAR array with the minimum of 16 drives you would have 38.400 chunklets in total.
From here on I will use this graphic that gives you a view of a 4 chassis array, each with 1 magazine of 4 disks and I have drawn 30 chunklets per disk.

2) Spare chunklets: as you might have noticed I allready coloured some chunklets at the rear. These are the ‘Spare Chunklets’ (in de pictures you’ll see them under ‘SC’). By default the 3PAR array devides its space into regular and spare chunklets. These last ones will be used for example when a drive/magazine/chassis fails, it are also these chunklets that will be used for dynamic optimization, …

3) Logical Disk: now we can create Logical Disks. A logical disk is just the amount of chunklets we need to fill up the minimal block with the RAID level we chose. For a RAID 5 (3+1) this is 4 chunklets. So a logical disk of 5 (3+1) is always 256 Mb * 4 RAW capacity (768Mb netto). For the people who don’t know what that P stands for: that’s the Parity bit which is used to calculate the data on the other members of the raid when one of them gets lost. As you might have noticed on my drawing the 3PAR array by default will stripe these chunklets over max. 1 disk per magazine and per chassis. This means that at any point of time you can loose eighter a disk, a magazine or even an entire disk chassis.

4) RAID 10/50/60: actually this title should be “Common Provisioning Groups’ or ‘CPGs’ but that doesn’t read that nice. If you look at the picture closely you will see that I filled up the disks with 6 LD’s at raid 5 (3+1). Together these LD’s are grouped in one CPG as one big RAID 0. So in total I have a RAID 50 of 4.608 Mb (6 x 768Mb per LD) with 24 cunklets. Now take in mind that a Logical Disk in a RAID 1 (mirror) takes double the amount of space RAW then you get Netto (next picture). You will see that we needed 24 chunklets for the 4.6 Mb on RAID 5 (3+1) so we will need 36 chunklets for 18 Logical Disks with each 256Mb netto or 512Mb RAW.

5) Virtual Volumes: the last stage is creating LUNs (3PAR calls these Virtual Volumes) that can be presented to the hosts. What you see in the last picture is a RAID 10 volume of 3Mb (so which takes 24 chunklets RAW). I think you get the picture by now.

Now multiply all these numbers in real live and you have a decent 3PAR array. Once you get all this, you will be able to adapt all other information on 3PAR technologies like dynamic and adaptive optimazation or even the basics around the 3PAR Asic Mesh.

Now lets hope that pointing to this blog will solve a lot of those explanations I mentioned at the start of this post.

Be Social and Share: Facebooktwittergoogle_plusredditpinterestlinkedintumblrmailFacebooktwittergoogle_plusredditpinterestlinkedintumblrmail

Leave a Reply

Your email address will not be published. Required fields are marked *