.

Logical volume

A logical volume is a basic storage unit in the StorONE engine. It provides Virtual Storage Container (VSC) service that allows you to create file-systems, objects, and block architectures. In fact, all storage functionality at the logical volume level is provided by StorOne VSC. Unlike other systems where storage is managed at the group or system level, StorONE allows you to customize storage options at the volume level. Logical volume configurations include:

  • Resiliency
  • Tiering
  • Dynamic storage allocation
  • Snapshot frequency
  • Replication options

Data resiliency in VSC

Data resilience in logical volumes is greatly enhanced by implementing erasure coding into the StorOne engine. StorONE erasure coding allows fully resilient virtual storage containers (VSC) that require less storage space for redundancy. It distributes recovery data across all drives in a pool.
Logical volumes obtain their storage space from pools. When creating a new logical volume, you need to specify numerical values for fragment data, N; and redundancy data, K for each of the pools. The value of N refers to the fragment data, the number of physical drives that the data will be spread across during each I/O operation. The value of K refers to the redundancy data, the number of simultaneous physical drive failures that the system can sustain without losing data.

The I/O operation algorithm

For the sake of simplicity we refer to a logical volume that gets its storage from a single pool. The storage space of a pool comes from a bunch of approved drives. Suppose you create a logical volume in a pool name “myPool.” The newly created logical volume will use all the approved drives of “myPool” to store data.

To carry I/O operations on the logical volume, StorONE executes simultaneous operations on multiple drives. When creating a new logical volume, you must specify the number of drives needed for each of these I/O operations. To define the number of (approved) drives for the I/O operations, you must assign two numerical values: N and K.

The first value, N, sets the “width” of the stripe; that is, the number of data portions on your N+K drives. The second value, K, sets the redundancy level, namely, the number of simultaneous drive failures that the logical volume can sustain before losing data.

The value of N is directly proportional to the throughput and latency. You may adjust the N configuration according to your applications’ throughput and latency requirements.

An I/O operation is a cyclic procedure that performed on a logical volume. Each I/O operation executes the following steps:

  1. Reading the values of N and K
  2. Reading data from the logical volume.
  3. Segmenting, encoding, and storing inbound data on N+K drives.

StorONE will use your preconfigured values for N and K. Let v be the number of all drives in the volume, and suppose that you have assigned N=n and K=k. If n+k does not divide v, then the last I/O operation executes on the remaining disks. At any given moment, there is a “selected” set S and an “unselected” set U of drives. Let V be the set of all approved drives in the pool, and let T be an empty set. For any set of disks A, |A| is the number of disks in A. StorONE executes the following steps repeatedly:

  1. If the number of drives in U is less then N+K, then

    • assign the empty set to S
    • Add n+k-|U| drivers from V to T
    • Add all of the drivers in U to T
    • assign the empty set to U
    • Add all of the drivers in T to S
  2. If U is empty, assign V to U

  3. Execute the I/O operation procedure on T

  4. Assign an empty set to T.

  5. Pick N + K approved drives from the “unselected” set U, and add them to the set T.

  6. Assign the set (U-T) to the set U

  7. Assign the union of T and S to the set S

  8. Execute the I/O operation procedure on T

  9. Assign an empty set to T.

  10. Return to 1.

A cycle is said to be complete when all the approved drives receive a segment of data (when S is an empty set). It takes V/(N + K) I/O operations for a cycle to complete.

I/O operation order

Each I/O operation requires N + K approved drives. StorONE selects N + K nodes in one of the following ways:

  • Sequential selection
  • Random selection
  • Mixed selection (mixture between random and sequential selection)

In a sequential selection, the topology is arranged in a sequential order: in each cycle, the first I/O operation is done on the first N + K approved drives; then, sequentially, on the next N + K approved drives, etc. When you create a new volume, you must choose a selection mechanism (sequential, random or mixed I/O).

Creating a logical volume

To create a new logical volume you need to define the following settings:

  • Assigning numerical values to N and K.
  • Configure IO operations order: sequential, random, or mixed
  • Configure provisioning type
  • Configure tiering level. You may choose between “upper tier” and “lower tier”. If required you may choose more than two levels of tiers. The StorONE auto-tier mechanism supports multilevel tiring.
Last updated on 15 Nov 2022
Published on 30 Oct 2022