OpenStack deployments primarily use two types of storage: block storage and object storage. Block storage is used to provide storage for virtual boot disk devices and as data disk devices for virtual machines. Object storage is used to store virtual machine metadata and disk images used as templates to create new virtual machines. Images can also be backups or copies of block devices. QuantaStor SDS’ unified scale-out storage platform delivers both block storage and object storage to OpenStack.
Object Storage Integration
QuantaStor object storage integrates with OpenStack by adding it as an OpenStack Swift end-point to the Keystone OpenStack Identity Service so that OpenStack services can use the object storage to store image data and metadata. Additionally, when new user access credentials are created (via QuantaStor WUI/CLI/REST APIs) these users can be added to Keystone and mapped to a Keystone tenant.
Modern scale-out applications that may be running in the compute cluster(s) can also be given credentials to use the object storage for a variety of application specific use cases. These applications can access the object storage via the S3 protocol or via the Swift protocol.
Block Storage Integration
QuantaStor also integrates with OpenStack Cinder to provide OpenStack with a mechanism for dynamically provisioning block storage devices for virtual machines. QuantaStor has a custom Cinder driver used to provision storage from QuantaStor Storage Pools. In addition, the Ceph Cinder driver can be used to provision RBDs from Ceph based Storage Pools in QuantaStor. The Ceph-based Storage Pools deliver their block storage (Storage Volumes) to OpenStack virtual machines via the Ceph RBD client and protocol. Storage provisioned via the QuantaStor Cinder driver is delivered to OpenStack VMs via iSCSI.
QuantaStor’s unique grid technology makes it easy to manage all appliances as a single unit by linking them together to form a storage grid. QuantaStor grids are manageable via the standard QuantaStor web management interface by logging into any appliance. Grids can also be managed and configured via scripts and custom portals using the QuantaStor CLI and QuantaStor REST APIs. QuantaStor integration components from the QuantaStor Cinder driver and upcoming Flocker module all use the public QuantaStor REST API as the point of integration with the grid.
Scaling OpenStack Block Storage Deployments
Within a grid multiple scale-out and scale-up pools of storage can be setup to meet the needs of a diverse set of workloads. To make provisioning from Cinder easier in large configurations, IT administrators can set up Storage Provisioning Tiers that group pools together according to their characteristics. The QuantaStor Cinder module is then configured to provision from a Storage Provisioning Tier rather than a specific Pool so that QuantaStor selects the best Pool based on load and unused capacity. This way more appliances and more pools of storage can be added dynamically with zero changes to the Cinder configuration files.
QuantaStor integrates with and extends the capabilities of enterprise open file-systems enabling companies to get more out of their OpenStack deployments. QuantaStor integrates with Ceph and ZFS to produce Storage Pools for use with OpenStack and extends the capabilities of these technologies by adding high-availability features, DR/remote-replication features, encryption, and more. QuantaStor also makes scale-out storage accessible via all standard protocols including iSCSI/FC, NFS/SMB, and S3/SWIFT so that the benefits of SDS can be leveraged by OpenStack deployments using any hypervisor back-end including VMware.