QuantaStor Internal Architecture
The QuantaStor Software Defined Storage platform implements a layered architecture for IO which leverages many storage components you would typically find in an enterprise Linux server deployment. The following diagram illustrates the key layers in some detail to give you a better understanding of how the system is designed.
QuantaStor storage pools can be created on top of two filesystem types, ZFS and XFS, where ZFS is the default. Almost all production deployments as of mid-2014 are using ZFS which is a fast mature enterprise filesystem that is used broadly across the Fortune 500. BTRFS was introduced as an experimental storage pool type into QuantaStor v1 in 2010 but to date it has not matured enough for production deployments. ZFS in QuantaStor is based on the ZFS on Linux (ZoL) port of the enterprise filesystem which OSNEXUS is a contributor to.
Hardware RAID Support
Hardware RAID controllers generally far outperform software RAID5/RAID6 for write performance when combined with NVRAM cache in the controller because of the high performance of the hardware RAID's resilient write back cache. Most modern RAID controllers have at least 1GB of DDR3 protected cache so for most workloads it this provides a significant performance boost for sequential workloads like media playback, archive, and other large scale big data deployements. QuantaStor has deep integration with all major HBAs and RAID controllers (LSI, Adaptec, HP, etc) so that you can pick software RAID, hardware RAID or a hybrid of the two to match the storage appliance architecture with the needs of you applications. QuantaStor's HBA and RAID hardware integration modules allow you to configure, maintain, and monitor the health of your system from top to bottom without having to resort to BIOS configuration or command line configuration utilities.
To configure the hardware controller layer of your system simply choose the 'Hardware Controllers & Enclosures' section of the web management interface. Internally QuantaStor integrates with the hardware controllers by calling APIs or communicating with the hardware via drivers or utilities to monitor and manage the hardware.
QuantaStor allocates and configures the various layers of a storage pool to optimize for performance. In some cases tuning for one type of application may not be as ideal for another so our default configuration is tuned to deliver good performance for a broad set of workloads. In some cases though it may be beneficial to select one of our preset IO profiles for your storage pool to match your application type. IO profiles determine factors such as read-ahead and stripe size and can be changed via the 'Modify Storage Pool..' dialog in the web management interface. Custom IO profiles can also be developed by adding new entries to /etc/qs_io_profiles.conf and restarting the QuantaStor core service (service quantastor restart).