Skip to main content

Storage Provisioning

All storage in the StorONE system uses thin provisioning, which means that capacity is automatically provisioned as it is consumed, regardless of how much capacity is allocated to the virtual storage container (VSC). When you create a new VSC (also referred to as a volume), you specify the volume size, but the system does not reserve the full size for that volume. Instead, capacity is consumed from shared drive pools as the storage is utilized.

The StorONE system offers three main types of logical volumes:

  1. Simple volume, which uses a single pool and no tiering.
  2. Tiered (or hybrid) volume, which uses different pools for the upper and lower tiers, which configurable tier sizes and tier migration settings.
  3. Complex (vRAID+) volume, which spreads I/O across multiple pools simultaneously, and allows for configurable tiering. This is generally used for very specific use cases.

When a volume is first created, it is storage type agnostic. After a volume is created, you configure it further for use as one of three types of storage:

  • File storage
  • Object storage
  • Block storage

File storage

A file storage architecture refers to the design and organization of a logical volume for storing and managing files using network-attached storage (NAS). When established on top of a logical volume, the file storage architecture can be accessed through protocols such as SMB/CIFS (typically for Windows machines) or NFS (typically for Linux or MacOS machines, or VMWare datastores). File storage provides large storage capacity at a relatively low cost. If you simply need a place for files using traditional directory/folder hierarchy, file storage is generally a good choice.

Object storage

Object storage architecture stores data as individual units called objects. Each object contains all of the data associated with it and is assigned a unique identifier. The objects are stored in a flat address space, rather than in a hierarchical file system. The StorONE system provides an S3-compatible API for accessing the object store.

Block storage

Block storage architecture presents a block device of fixed-sized blocks that can be accessed directly, similar to a dedicated hard drive. It can be used for any purpose that an empty hard drive can be used for, such as formatting different file systems. Block storage is used in Storage Area Networks (SANs) and is connected through the Small Computer System Interface (SCSI) standard. It can be accessed by a host using protocols such as iSCSI, FC, or NVMeOF.

Tiering

Tiered storage is storage that is divided into layers according to levels of performance. In tiered storage, each tier uses a separate drive pool. Usually, a pool of faster drives such as SSD or NVMe is used for the upper tier; while a pool of slower HDD drives is used for the lower tier. Auto-tiering refers to the mechanism of automatically moving data between tier levels. Auto-tiering is a technique to dynamically manage data placement based on usage patterns.

When to use tiering

Tiering is applicable to multi-tier (hybrid) and complex (vRAID+) logical volumes (VSCs). Tiering can be configured when the logical volume is created, or a tier can be added later. Once added, however, tiers cannot be removed. The tier sizes can be adjusted as needed.

Tiering is useful when storage efficiency is at premium. Typically, some data is more frequently accessed than others. Keeping frequently accessed data in a faster upper tier can provide better performance, while migrating less frequently accessed data to a more cost effective lower tier.

Creating a tiered logical volume

When creating a tiered logical volume, you must specify a drive pool for each tier.

In an auto-tiered volume, StorONE automatically determines the tiering level of each data block based on frequency of access. StorONE stores frequently accessed data in the upper tier and infrequently accessed data in the lower tier.

By default, the system always tries to write new incoming data to the upper tier. However, in the event of extensive writing operations, the upper tier may temporarily run out of space. In this case, the new data will be written directly to the lower tier.

When configuring tiered logical volume, you must specify two utilization threshold values: the lower threshold and the evacuation threshold. If the upper tier usage exceeds the lower threshold, less frequently accessed data is opportunistically moved to the lower tier when the system is idle. If upper tier usage exceeds the evacuation threshold, the data is moved regardless of the system idleness. Both the evacuation threshold and the lower threshold are expressed as percentages.

tiering.png


In a tiered logical volume, data moves between tiers at the block level. For example, it is possible for part of a file to be stored in the upper tier, and the other part to be in the lower tier.