Unmap Support for Storage Reclamation

This page explains how the cluster reclaims storage space when a guest operating system deletes data and issues unmap commands.

Overview

In SC//HyperCore™ HyperVisor version 9.6 and later, SCRIBE supports unmap commands from a guest operating system, so it can reclaim storage space on a cluster. SCRIBE (Scale Computing Reliable Independent Block Engine) is the SC//HyperCore data storage management system.

To reclaim storage capacity, you may need to delete VM data you no longer need. Before version 9.6, deleting files in a VM did not free the matching space on the cluster, because the SC//HyperCore system had no way to know when space was freed.

As of SC//HyperCore version 9.6, the system accepts unmap requests from the guest OS. SCRIBE can then return blocks that no longer hold data to the available storage pool. The storage consumption gauges at both the VM and cluster level then drop to show the reclaimed capacity.

How It Works

When you free storage by deleting files in a thinly provisioned Virtual Storage Device (VSD), this happens:

  1. The guest operating system deletes the data.
  2. The guest OS issues an unmap command to SCRIBE.
  3. SCRIBE accepts the command and frees the matching blocks.
  4. The freed blocks go back to the cluster’s available storage pool for re-use.
  5. The storage consumption shown in the SC//HyperCore web interface updates to show the reclaimed space.

Many operating systems pass unmap requests to SCRIBE on their own once data is deleted. They need no extra action or configuration to free up space in the cluster. Operating systems that don’t support automatic unmaps might need extra steps to tell SCRIBE that data has been freed.

Operating systems usually send unmap commands based on the unmap granularity they advertise. Check your operating system’s documentation to learn how it sends unmap requests.

Even though SCRIBE accepts unmap commands, the VM storage use shown in-guest and in the SC//HyperCore web interface won’t always match exactly. This is often because each one uses a different unit to measure storage. Also, SCRIBE only reclaims storage in 1MiB chunks. If deleted in-guest data is less than 1MiB, or doesn’t align with a block, SCRIBE waits until the whole 1MiB block has been unmapped before it reclaims the space. This may cause minor differences in reported storage.

Scale Computing only ensures and tests that SCRIBE can accept unmap commands. It does not test unmap in every possible operating system, and results may vary with the operating system and its unmap configuration.