NSS volumes will use the entire disk space when "thin provisioning" is done on the SAN

  • 7008249
  • 31-Mar-2011
  • 03-Apr-2013

Environment

Novell Open Enterprise Server 2 (OES 2) Linux Support Pack 2
Novell Open Enterprise Server 2 (OES 2) Linux Support Pack 3
Novell Open Enterprise Server 11 (OES 11) Linux Support Pack 1

Situation

"Thin Provisioning" was used on the SAN when creating the LUN.
The storage on the SAN is growing although the available space reported by the NSS volume does not.
Turning off salvage does not seem to slow how quickly the "Thinly Provisioned" data grows from the SAN's or VM host's perspective.

Resolution

This is working as designed.
Each time an NSS pool is activated, it first attempts to use available space closest to block 0 (zero) for new files.  After each new block allocation request is satisfied, it increments the available pointer to the next available block.  If space becomes available at a block number prior to the current available pointer, NSS does not attempt to reuse it until after the pool is deactivated and activated again, or until the pointer has reached the end of the pool, and automatically resets to zero.  The smaller a pool is, and the more frequently it is deactivated and activated, the more compact the data will be around the beginning of the pool.
This is how NSS attempts to limit disk fragmentation.

Cause

NSS is not aware that "Thin Provisioning" is being used, and "Thin Provisioning" is not aware when NSS pool space becomes available again. Thus, if an NSS pool is deactivated infrequently, and if files are created and deleted at about the same rate, NSS continues to use space that was not originally part of the "Thinly Proviosioned" data (causing it to grow on the SAN, or VM Host), yet the pool and volume statistics will tend to remain constant. In addition, "Thin Provisioning" cannot recoup the space that NSS has marked available again.