Stout Provisioning

13 02 2008

This is a copy of a question I’ve posed on the HDS forum. Highlights my sad state of mind, and that I can’t switch off when I’ve got a few days off for half term!

One of those odd questions that has been rattling around my brain recently has been about allocating pools for COW and Thin Provisioning. I’m anticipating trialling the former soon, and maybe the latter when I can get my hands on a USP-V.

I’m led to believe that the data is written to the pools in a very wide stripe, i.e. scattered all over it, sounding to me in a very similar fashion to the STK RVAs I was implementing in the mid to late 90s. So, the question is, what is the best practice for allocating the physical LDEVs that make up the pool, assuming Raid 5 7D+1P is the norm for the RGs? For a normal allocation to a host, I’d use a dispersed allocation, e.g. RG 1-1, 1-2, 1-3, 1-1, 1-2, 1-3, 1-1, 1-2, 1-3 in order, with a host based stripe on tape for good measure.

For a pool, would that still be best practice? Does the wide striping algorithm work in a similar fashion to a host based stripe, e.g. something that Veritas might do; or does it really matter?

Another thought in my head is about utilising thin provisioning pools to possibly enhance performance. My thought behind that is that you could use the principle of creating VDEVs across a large pool, but not over allocate the pool, so that you could have 3 layers of striping: a host stripe over a pool stripe over a physical stripe. I like to call that ‘Stout Provisioning’ (fans of Not the Nine O’Clock News will understand my meaning).

Could there be a benefit to that? Has anybody actually tried it? All opinions and experiences shared would be greatly appreciated.