Hi folks,
I'm familiar with the NetApp recommendation to keep ~20% free on all
volumes ... this allows WAFL to maximize its performance (convert random
IO to streaming IO ... i.e. the 'Write Anywhere ...' part of WAFL).
But I'm skeptical that this recommendation applies to V-Series
installations, i.e. situations in which the backend array was built by
someone other than NetApp.
Seems to me that with V-Series, WAFL may find what it thinks are 128K of
contiguous blocks on storage and perform the WRITE ... but ... since the
backend array has virtualized the blocks in some fashion, opaque to
ONTAP, there is no knowing what really happens. In other words, the
blocks which ONTAP specifies do /not/ map to physical blocks ... once
the WRITE arrives at the array, the backend will do whatever it thinks
best with them, perhaps perform a streaming write to contiguous blocks,
perhaps not. Implementation-specific.
-In fact, with a V-Series, I would imagine (I have a rich imagination)
that ONTAP doesn't bother to even try to convert random IO into
streaming IO -- I would imagine that it just hands the blocks to the
backend in a jumble and says "Do whatever".
So, I would like to claim that with V-Series, I can fill up my volumes
without impacting write performance ... or, more precisely, that impact
is dependent on the characteristics of the backend ... perhaps the
backend needs free space in order to optimize its write performance,
perhaps it does not. [In our particular case, we're using 3Par, and
'fullness' would not impact performance.]
Would anyone see holes in my thinking?
--sk
Stuart Kendrick
FHCRC