Zero reclaim on VMAX

Today was a first. First time I did a zero reclaim. If you do not know what I am talking about, here my little introduction into thin provisioning.

Thin provisioning

Basically it is cheating, well a bit. You got a order to assign a 1TB LUN to a host. Instead of reserving/allocating the space on the storage system you give the host a 1TB LUN that doesn't use any space on the storage system. As the host starts to write to that LUN the Storage System allocates space for that LUN.

Zero reclaim

Now comes extra intelligence to the storage system. Usually, when host deletes a file it doesn't really delete it but just forgets where on the disk the data was. That is why it is sometimes possible to get files back, that were deleted. Sometimes the host also overwrites or preallocates by simply writing zeros to the LUN. Now you can tell the storage system "If you find a block, that only contains zeros, delete/reclaim that block." This of course also means every time the host accesses a block that isn't claimed on the storage system, the storage system has to provide the host with a block, full of zeroes ... that't all the magic ... basically.

Executing the zero reclaim

First we should see what LUNs are there in a pool. Plus this is also good to see how much was reclaimed. It might happen, that nothing can be reclaimed, sometimes a lot. Unfortunately I don't know any way to check how much would be reclaimed before it process starts.

symcfg -sid 1234 -tdev -pool R6_1000_SATA  list

Symmetrix ID: XXXXXXXX1234

Enabled Capacity (Tracks) : 2630325216
Bound   Capacity (Tracks) :  989162190

                 S Y M M E T R I X   T H I N   D E V I C E S
------------------------------------------------------------------------------
                                         Total          Total       Compressed
       Bound      Flgs      Total      Allocated       Written      Size/Ratio
Sym  Pool Name    EMPT     Tracks     Tracks (%)     Tracks (%)     Tracks (%)
---- ------------ ---- ---------- ---------- --- ---------- --- ---------- ---
0452 R6_1000_SATA F..B     491400     491424 100     491415 100     491424   0
0453 R6_1000_SATA F..B     491400     491424 100     491415 100     491424   0

0454 R6_1000_SATA F..B     491400     491256 100     491164 100     491256   0
...
306E R6_1000_SATA F..B    1965600    1486200  76    1486092  76    1486200   0
3072 R6_1000_SATA F..B     491400        804   0        781   0        804   0
3073 R6_1000_SATA F..B     491400       6444   1       6413   1       6444   0
3074 R6_1000_SATA F..B    1474200        312   0        250   0        312   0

Total                  ---------- ---------- --- ---------- --- ---------- ---
Tracks                  989162190  750608844  29  694611821  26  750608844   0


Legend:
 Flags:  (E)mulation : A = AS400, F = FBA, 8 = CKD3380, 9 = CKD3390
         (M)ultipool : X = multi-pool allocations, . = single pool allocation
         (P)ersistent Allocs : A = All, S = Some, . = None
         S(T)atus    : B = Bound, I = Binding, U = Unbinding, A = Allocating,
                       D = Deallocating, R = Reclaiming, C = Compressing,
                       N = Uncompressing, . = Unbound,

Now we select some devices and create a file with the following contents:
start reclaim on tdev 454;
start reclaim on tdev D92;
start reclaim on tdev 2C6D;
start reclaim on tdev 1CEE;
start reclaim on tdev 2FC3;
start reclaim on tdev 2AAB;
start reclaim on tdev 1BC1;

start reclaim on tdev 1C27;

Then we execute this file with:
symconfigure -sid 1234 -v -nop -f zero_reclaim.txt commit

The process can be checked with:
symcfg -sid 1234 -tdev -pool R6_1000_SATA  list -gb -dev 454,D92,2C6D,1CEE,2FC3,2AAB,1BC1,1C27

I wish you well

Andy

Labels: