3Par 101 – Part 2 – CPG’s


Previously I started my 3PAR 101 / beginners series with the post Meet Chunklet!, which has been one of the blogs most popular posts.  Now it’s time to move on with the series.

Part 1 of the series dealt with 3PAR’s unique approach to RAID and found that several logical layers were created to enable this. As a quick reminder; Vluns are a virtual volume which has been presented to a host, Virtual Volumes draw their space from CPG’s, CPG’s are a pool of Logical Disks and Logical disks are chunklets arranged as rows of RAID set. If you’re still a bit hazy on all this check out Part 1 of this 3PAR 101 series where we covered all this is in detail.

The 3PAR building blocks that we have direct control over are CPG’s VV’s and Vluns and will be what you mainly work with day to day, this 3PAR 101 series will cover each of these components in turn.

What are CPG’s

Without further ado lets crack on with looking at the first building block we will need to put our 3PAR to work, which is Common Provisioning Groups (CPG’s). A CPG is a pool of logical disks that virtual volumes will draw their space from. For simplicity if you have worked with other storage vendors you can think of a CPG as a RAID pool. However that is just to help to understand the concept, as a CPG also has many characteristics that make it different from a traditional RAID pool.

We know that CPG’s are a pool of space and the smallest building block that makes up that space is a chunklet. CPG’s effectively filter which chunklets are selected and how they are arranged, which in turn means CPG’s define performance and availability levels. There are three levels of availability port, magazine and cage. Port is the lowest level and protects against a backend port failure, magazine protects against the failure of a drive magazine and cage protects against an entire disk shelf failure.

Let’s look at a couple of examples below to help understand how CPG’s settings define performance and availability. CPG1 for example uses chunklets from FC disks, in a set size of 3 and availability of magazine. CPG2 is configured to use NL disks as RAID6 and a set size of 6 and an availability of cage. So CPG 1 will be higher performing but less available than CPG2.

CPG1 – FC, RAID 5, Set Size =3, availability= magazine

CPG2 – NL, RAID 6, Set Size =6, availability=cage

Upfront a CPG will consume no space it is only as virtual volumes demand space from it that it will autogrow. This is a big bonus as it eliminates the need to pre-allocate and pre-plan the size of the different CPG’s you need to create. Although with multiple CPG’s able to consume space from the same set of physical disks this does require that your capacity management needs to be more vigilant. Performance increases the more disks you stripe across, and so you will generally want to stripe all your data across all the available disks of that type in the system. Lastly you need to be aware that CPG’s will form the levels that the tiering software (AO) will work with, but more on that another time.


  • CPGs are a pool of storage that define performance and availability characteristics
  • Multiple CPG’s can exist on the same set of physical disks
  • CPG’s grow on demand and so no space needs to be pre-allocated
  • CPG’s should be striped across as many disks of the same type as possible to maximise performance
  • The availability options for a CPG are HA cage, magazine and port. The CPG will default to the highest level of availability.

Creating  a CPG –  SSMC

Enough theory let’s get on and create a CPG, first in the 3PAR SSMC GUI:

1 Open SSMC by opening a web browser and entering your SSMC web address in the following format:


Next logon with your credentials:

2 From the main menu choose Common Provisioning Groups from the Block Persona submenu.  If this is not visible chose show more on the right hand side of the main menu

3 Click the green Create CPG button on the top left of the screen

4 What appears next is the simple CPG creation screen.  The only information you have to supply is the name of the CPG, the rest will be set to default values.  Lets go through each setting incase you want to change any of them

  • Name – Try and call the CPG something logical for example CPG_FC_R6, so you can quickly see the disk and RAID type
  • System – If you are connected to multiple systems.  Chose the system you wish to perform the action on
  • Device Type – Chose the physical disk type you wish to use for your CPG, this will default to FC disks.
  • Availability – Sets the the availability level for the CPG.  This will default to the highest level of availability available for your system, so I would suggest leaving this setting as is. In this case it is set to Cage availability, so we can loose an entire disk shelf and not loose data

When you are happy with your settings chose create

5 If you want to create a simple CPG you are done.  But lets quickly look at what additional options ticking advanced options on the create CPG screen gives us:

  • Set size – The size of the RAID set.  In this example the set size is 6+2 meaning 2 parity drives to every 6 data drives.
  • Growth increment – The increment with which CPGs grow. Do not change this
  • Growth limit – Don’t set this.  Any limits set will act as a hard stop
  • Growth warning – An alert will be sent out when this level is reached

Creating a CPG  –  CLI

Creating a CPG in the CLI is arguably simpler since it’s all done in a one line command

To create a CPG with all default options; that is to use all FC drives, in RAID 1, with an availability of cage

createcpg cpgname

You will probably want to have more control over your CPG creation. For example the following creates a CPG that is RAID 6, cage level availability, set size 6, on NL disks with the name NL_Raid6

createcpg -t r6 -ha cage -ssz 6 -p -devtype NL NL_Raid6

Lets break down the CLI options a little

  • createcpg – core command
  • -t specify RAID level eg RAID 6FC_R6
  • -ha specify availability level eg cage
  • -ssz set size eg a set size of 4 for a RAID 5 set would be 3 data and 1 parity
  • -p –devtype specify the disk type eg NL for Near Line

If your down with the kids and use the modern management tools that’s it you can move onto Part 3 of this 3PAR 101 series which covers Virtual Volumes and Vluns. If you missed it, catch Part 1 when we talked about Chunklets and the fundamentals of 3PAR. If you still use the 3PAR Management Console read on:

Creating a CPG – 3PAR Management Console

1 In the management pane select Provisioning and then from the common actions pane select Create CPG


2 Next you will see a welcome screen which has alot of useful info on creating CPG’s, if you do not want to see this again click the skip this step tick box and click next

3 The basic information you will need to complete when creating a CPG is the name of it, the device type, RAID type and set size. Try and call it something logical, in this example I have called it a name that quickly tells me the disk and RAID type. Unless you have reason to change it leave the set size at default, increasing the set size will increase useable space but decrease performance

4 If you tick the advanced options box you will see some more options. I have highlighted in red the common values you are likely to want to change. Be cautious of changing advanced variables such as specifying fast / slow chunklets as you do not normally need to change these options. You will see the availability option, this will default to the safest option i.e. cage if it is available


5 The next window will only appear if you have ticked the advanced option and allows you to filter on the disks to include. We want to stripe across as many disks as possible so just click next here


6 The last window just confirms the setting you have chosen. Once happy here just click finish

Next time we will be creating a virtual volume and exporting it as a Vlun. If you missed it, catch fundamentals of 3PAR of this 3PAR beginners guide series and also Virtual Volumes and Vluns).

To stay in touch with more 3PAR news and tips connect with me on LinkedIn and Twitter.

Further reading

3PAR Concepts Guide

3PAR Best Practices





Published by

29 thoughts on “3Par 101 – Part 2 – CPG’s

  1. Dear Admin

    This is such a great sharing site. I really appreciate it so much.
    I have some questions which need your advise.
    1. I have 1 cage with two controller nodes and 3 additional cages. What CPG HA should I go with as the best practice ? Should I create CPG to have all the members from all phish am disks ?
    2. When powering on, should I power on controller nodes first or 3 additional cages first ?

    Best Regards

    1. 1 Yes create the CPG to use all available disks of the same type. You effectively have 4 cages so could use cage level HA if you created a RAID 5 3+1 CPG or a RAID 6 6+2 CPG if you wish to have a larger RAID set than this you would need to use the reduced availability level of magazine.

      2 Shelves then controllers

  2. Hey Dude. What do you think of 3PAR HA Cage? We are going to use the peer persistence replication to another active array, and we are contemplating HA cage. I am potentially building a 3par metro cluster, and my shelf count jumps from 4 to 8 pretty quick. Not sure if it is needed with peer persistence. thoughts?

    1. Hi

      I would see them as complementary to each other rather than an either or decision. HA Cage provides enhanced local availability and Peer Persistence is datacentre availability. I recommend to customers to buy as many cages upfront as they can afford, cages are relatively cheap in relation to the overall purchase price and then it allows you to optimise your disk layout from the start plus avoids a costly rebalancing exercise further down the line. Plus if you did have the extra cages you would then be able to have the cage HA.

      Hope that helps


  3. Hi,

    I have a 3 par 7200 with two cages. is it possible to set the cpg availability to cage level with just 2? or am I left with magazine level? it does default to cage level when setting up a new cpg.


    1. It depends what RAID level you are using. I assume when you say you have 2 cages, that’s 2 cages total including the controller. If this is the case you could use cage level availability with a RAID 1 CPG. To use RAID 5 or 6 with cage level availability you would need a minimum of 3 cages.

  4. Thanks for the quick reply. I had another look this morning and we have 2 controllers and 3 drive cages consisting of SSD, FC and NL disks. I am looking at RAID 5 and 6 which is currently set to magazine availability. I have basically taken this over and after reviewing have noticed that the setup is not right in my mind. Previous person has made the set size 4 + 2 on RAID 6 CPG and 5 + 1 on RAID 5 CPG and all set to magazine availability. I’m looking at a redesign of the storage for VMware as its grown by 50 servers this year.

    Thanks for the info

  5. I am fairly new to 3Par, just added some NL drives to my 2 cage configuration (controller plus additional cage) NL drives are online and state is normal but when I try to create a CPG it shows no NL space available

  6. Hey 3pardude Thank u for sharing this knowledge…
    Can u please share a link for Peer Persistent topic.

  7. In our set up I see Configured Availability as cage and Current Availability as Cage. Is that because it was originally configured as Cage and then was later changed?

    If so why not show me on the current availability, the one that it was later tuned to. Unless I guess its indicating that older data on this volume has a different configuration and all new data will have the “current availability.

    1. This is basically showing that the requested level of availability is being met i.e. you don’t have a capacity or other issue preventing you from delivering your requested availability level

  8. Hey there, great article with nice explanations, though one thing boggers me still.
    I’ve been around storages for some time now and the concept just is the same. Have a disk split up to stripes, schuffle them around into raid groups, put those raid groups together, carve out logical devices to map to hosts.
    This is the case with EMC VMAX, Hitachi VSP(HP XP)… 3PAR…
    Could you put a finger on something that the chunklet, or 3PAR as a whole do in a different way? I mean different from the rest, or why is it so revolutionary, or… is it just marketing? I personally do think that what it comes down essentially is the way you shuffle data around (i.e. firmware and hardware), but the idea, the high level design is more or less the same across the industry. Please, correct me if I’m wrong here. 🙂

    1. Hi

      Thanks for the comments. I am less familiar with VMAX so cannot make a direct comparison. However Chunklets are still a useful technology enabling you to run dissimilar RAID groups and wide striping and on the same physical disks. I would say what is a key differentiation, is that 3PAR scales from mid-range to large deployments so you are getting all these high level features which would only be found in the top level systems from other manufactures. This also allows a common OS and so common management tools / skills plus mobility between models.

  9. How can I create CPG with specifies which disk or disk slot to create ?
    for example I want create the cpg in disk 1,3,5,7 or magazine 2,4,6,8 with raid 5 3+1

    1. Hi you can restrict down a CPG like this but I wouldn’t recommend it as 3PAR is designed to be a wide striped system across as many disks as possible. But if you do want to go ahead you would need to use the createcpg command with the -p switch to specify a specific pattern. For example you could use createcpg -p -pn to specify exactly which disks to include.

  10. Hi Richard,

    This is really helpful and easy to understand information. I am very much new for 3par and trying to understand the architecture in an easy way. These articles helped me a lot.
    Do you have an article on AO, Snpshots and other features?

    Thanks again.

    1. Hi

      Thanks for the feedback.

      Here is an article I wrote on Adaptive Optimization – https://d8tadude.com/2015/03/10/3par-adaptive-optimization-design/

      There are nearly 100 Articles related to 3PAR on the blog, you can find an index of the best ones at the 3PAR Hub https://d8tadude.com/3par/

      If you are specifically interested in the technology deep dives like it sound that you are, check this out – https://d8tadude.com/3par/understanding-3par-technologies-and-deep-dives/



  12. Hi There,
    Question how do we configure 3PARs to be virtualize with EMC products. Example, I want to use 3PARs is core storage and manage VNX under the SSMC. Or having EMC VNX/VMAX disk capacity connected to 3PARs. Is this possible to have this done with 3PARs.

    1. Unfortunately 3PAR is not able to virtualise other storage products as you are suggesting

  13. Question: I have created CPG [NL RAID6, 6+2], for better performance to specific applications, can i create another CPG [NL, RAID1] using existing disk drives. Please advise

    Note: we have only NL capacity of 220TB and SSD capacity of 4TB

    1. RAID 6 is recommended for NL drives. You will never get performance out of NL drives so no I would not recommend RAID 1

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.