ScaleIO Is Not Your Father’s SDS

Disclaimer: I recently attended Storage Field Day 13.  My flights, accommodation and other expenses were paid for by Tech Field Day and Pure Storage. There is no requirement for me to blog about any of the content presented and I am not compensated in any way for my time at the event.  Some materials presented were discussed under NDA and don’t form part of my blog posts, but could influence future discussions.

 

I’ve written about ScaleIO before (here and here), but thought it might be useful to deliver a basic overview of what ScaleIO actually is and what it can do. You can see Dell EMC’s Storage Field Day presentation video here and you can grab a copy of my rough notes from here.

 

ScaleIO Overview

What is it?

In a nutshell, it’s a software-defined storage product that leverages captive server storage at scale.

 

Benefits

According to Dell EMC, the useful life of ScaleIO is perpetual.

  • Deploy once
  • Grow incrementally
  • No data migration
  • Rolling upgrades
  • Perpetual software licenses

 

ScaleIO Vision and Architecture

Core, Fundamental Features of ScaleIO

Configuration Flexibility

  • Hyperconverged and/or 2-layers

Highly scalable

  • 100s / 1000s of nodes

High performance / low footprint

  • Performance scales linearly
  • High I/O parallelism
  • Gets the maximum from flash media
  • Various caching options (RAM, flash)

Platform agnostic

  • Bare-metal: Linux / Windows
  • Virtual: ESX, XEN, KVM, Hyper-V

Any network

  • Slow, fast, shared, dedicated, IPv6

Flash and Magnetic

  • SSD, NVMe, PCI or HDD
  • Manual and automatic multi-tiering

Elastic / flexible / multi-tenancy

  • Add, move, remove nodes or disks “on the fly”
  • Auto-balance

Various partitioning schemes:

  • Protection-domains
  • Storage pools
  • Fault sets
  • Seamlessly move assets from one partition to another
  • QoS – bandwidth/IOPS limiter

Resilient

  • Distributed mirroring
  • Fast auto many-to-many rebuild
  • Extensive failure handling / HA
  • Background disk scanner

Secure

  • AD/LDAP, RBAC integration
  • Secure cluster formation and component authentication
  • Secure connectivity with components, secure external client communication
  • D@RE (SW, followed by SED*)

Ease of management & operation

  • GUI, CLI, REST, OpenStack Cinder, vSphere plugin and more
  • Instant maintenance mode
  • NDU

Competent Snapshots

  • Writeable, no hierarchy limits
  • Large consistency groups
  • Automatic policies*

Thin-provisioning

Space-efficient layout*

  • Fine-grain snapshots and thin-provisioning*
  • Compression*

*Soon

 

Two-ways

You can use ScaleIO in a hyperconverged configuration and a “two-layer” configuration. With hyperconverged, you can run:

  • Application and storage in the same node, where  ScaleIO is yet another application running alongside other applications
  • Asymmetric nodes, where nodes may have a different # of spindles, etc

You can also run ScaleIO in a two-layer configuration

  • app-only nodes can access ScaleIO volumes
  • app+storage – hyperconverged nodes

 

Components

ScaleIO Components

  • ScaleIO Data Client (SDC) exposes shared block volumes to the application (block device driver)
  • ScaleIO Data Server (SDS) owns local storage that contributes to the ScaleIO storage pool (daemon/service)

SDS and SDC in the same host

  • Can live together
  • SDC serves the I/O requests of the resident host applications
  • SDS serves the I/O requests of various SDCs

 

Volume Layout, Redundancy and Elasticity

A volume appears as a single object to the application.

Volume Layout (No Redundancy)

  • Chunks (1MB) are spread across the cluster in a balanced manner
  • No hot spots, no I/O splitting

2-Copy Mirror Scheme

Free and Spare Capacity

  • Free and reserved space scattered across the cluster

 

Fast, balanced and smart rebuild

Forwards Rebuild

  • Once disk/node fails – the rebuild load is balanced across all the cluster partition disks/nodes -> faster and smoother rebuild

Backwards Rebuild

  • Smart and selective transition to “backwards” rebuild (re-silvering), once a failed node is back alive
  • Short outage = small penalty

 

Elasticity, Auto-rebalance

Add: one may add nodes or disks dynamically -> the system automatically rebalances the storage

  • Old volumes can use the wider striping
  • No extra exposure
  • Most minimal data transferred

Remove: One may remove nodes / disks dynamically -> the system automatically rebalances the storage

  • Minimal data transferred in a many to many fashion

Combination: The same rebalance plan could handle additions and removals simultaneously

 

Conclusion and Further Reading

I’ve spoken to a range of people in the industry, from customers to Dell EMC folks to competitive vendors, and one thing that gets raised constantly is that Dell EMC are offering both ScaleIO and VMware vSAN. If you’ve been following along at home, you’ll know that this isn’t the first time Dell EMC have offered up products that could be seen as competing for the same market share. But I think they’re doing different things and are aimed at different use cases. My second favourite Canadian Chad Sakac explains this better than I would here.

Put this software on the right hardware (the key to any successful software defined storage product) and you’ve got something that can deliver very good block storage performance across a range of use cases. If you want to know more, Dell EMC have a pretty handy architecture overview document you can get here, and you can download a best practice white paper from here. You can also access a brief introduction to ScaleIO here (registration required). But the best bit is you can download ScaleIO for free from here.

ScaleIO.Next promises to deliver a range of new features, including space efficient storage and NVMe support. I’m curious to see the market uptake has been given the accessibility of the software. I’d also like to see what the uptake has been given the availability of ScaleIO-ready nodes based on Dell PowerEdge hardware. In any case, if you’ve got some spare tin, I recommend taking ScaleIO for a spin.