All physical storage devices in ScaleIO are organized into storage pools. The volumes presented to hosts are created from one of the storage pools within ScaleIO. ScaleIO allows pools of physical devices to be created and shared across numerous nodes within a ScaleIO cluster.
Pools can be created using drives with a mix of capacity and performance characteristics, although this approach will lead to non-deterministic performance to the database. In general, the performance characteristics will match the performance of the lowest performance devices within a pool.
Best practice for ASM is to create pools of devices with identical performance and capacity characteristics.
Multiple storage pools may be configured, although in general, it is recommended to use fewer storage pools as this reduces complexity and ease of management.
A single storage pool can contain up to 330 physical devices. If the ScaleIO cluster has more than 330 physical devices then multiple pools will be necessary.
Volumes created in storage pools are automatically protected against node failure and data loss through the MESH mirroring technique.
ScaleIO takes care of distributing the blocks across the cluster, as well as protecting the user’s data by creating mirrors of every block written to disk on redundant nodes using MESH mirroring.
Snapshots of volumes can be created in the same storage pool of the volume itself, and will consume capacity consistent with the rate of change applied to the source volume or the snapshot. Note that ScaleIO utilizes a redirect-on-write mechanism to maintain snapshot copies of data.
Pools can be created with the “Use RAM Read Cache” option which if enabled allows the RAM on the SDS node to be used as a read cache. This can be particularly beneficial to storage pools based on spinning disks.
If the “Use RAM Read Cache” option is enabled, the write handling of the pool may also be cached, or set to pass-through.
The caching option may have performance benefits for storage pools with slower spinning disks but is usually not advantageous for pools of solid state or NVMe devices and may even degrade performance due to the extra processing involved.
If the ScaleIO cluster includes NVMe devices, these may be configured for the read cache of a pool by selecting “Read Flash Cache”.
A storage pool may have additional checksums generated, this is enabled by selecting the “Use Checksum” option. While this results in some I/O processing overhead, it provides additional piece of mind for sensitive, mission-critical data.