I just reclaimed unused space in our HP 3Par using a command on the ESX side such as :

esxcli storage vmfs unmap --l DATASTORENAME

it works nicely, and from the 3Par console, I can now see on my datastore/LUN :

  • Used User Space : 26% (it was 46% before the reclaim)
  • Reserved User Space : 4.7Tb/10Tb (did not change unfortunately)

However, in VMware, the space didn't change. I suppose this is due to this "reservation" (the space is kept reserved on the 3Par).

is there a way to remove this allocation on the SAN (I suppose the data is Zero'd), by running some kind of tuning command or compact command ?

I saw they were command such as compactcpg, but it doesn't seem to be exactly what I need, as I suppose that it will not balance the data (chunklets) correctly across the disks ? (but used fewer disks as possible and therefore decreasing the performance ?)

thanks, regards,


Solution 1:

Actually, compactcpg is the correct command to use in this case. The form you will want to use is compactcpg <CPG_name> or compactcpg <pattern>

The process itself is automatically run by the 3PAR at regular intervals, so you can wait and the space will eventually be reclaimed by the 3PAR. Or you can manually kick the process off via the 3PAR CLI using the command above.

The other thing to note is that compactcpg is always run as a low priority task so as to not disrupt regular IO operations. This means it can take a few hours or even days for the array to fully reclaim all of the newly freed up space.

More information on this can be found here.

With regards to your question on balancing the chunklets, this is handled automatically by the 3PAR. The 3PAR actually uses five logical data layers:

  • Physical Disk
  • Chunklet
  • Logical Disk (LD)
  • Common Provisioning Group (CPG)
  • Virtual Volumes (VV)

Balancing occurs on each of these layers. That is, the physical disks are physically balanced accross the cages, the chunklets are evenly spread accross the physical disks, the logical disks are balanced accross the pool of available chunklets, and so on.

Incedently, there is also a compactld command in the form of compactld <LD_name> or compactld -pat <pattern> which behaves in largely the same way, but on the Logical Disk layer. However you will want to run compactcpg first before attempting compactld to make the most out of it.

Solution 2:

its definitely not run regularly, you need to set that schedule up. Crazy to think it cant even do basic space reclaim without input.