There’s a bunch of interesting storage technology in Red Hat Enterprise Linux 8- including XFS reflink, enhancements to the Boom boot manager, Stratis file management (tech preview), and broader use cases for File System Direct Access to Persistent Memory Devices (FS-DAX). We’ll touch on all of them here, but let’s start with something even more important: Why in a cloud-dominated world we need to make it easier to consume advanced storage features. This includes working to improve access to existing features, and also guides design principles on emerging capabilities.
We need infrastructure that moves at the pace of software. Application developers in the cloud era work "above the line," using APIs that hide complexity. Cloud administrators work "below the line" to streamline infrastructure. Below the line has to become largely invisible to the software developer, and it’s increasingly an area where on-premises infrastructure is being asked to emulate public cloud.
A 21st century OS needs to aid the process of making infrastructure invisible to the application. Device drivers do some of this work already, but the concept needs to move up the stack to define entire swaths of capability. Tools like OpenShift and Kubernetes ask simple questions. (For example, "can I have some capacity, please?") The underlying infrastructure services need to be increasingly adept at answering with "here is your storage" while performing needed low-level configuration, data protection, and performance optimization automatically.
But that’s only half of the story.
As this "below the line" automation process proceeds and accelerates, data center administrators still face the difficult task of providing better, faster and cheaper optimized infrastructure for all of currently-running application stacks. When pursuing the operational efficiencies of cloud, sometimes you can trade tunability for simplicity. Sometimes you can refactor applications to run on elastic resources. But as every data center admin knows at this point, it's not going to work for everything.
So what’s the ultimate up-and-to-the-right user and developer experience? Cloud-style data center provisioning, while retaining the ability to optimize infrastructure for core "Mode 1" applications (sometimes called Bimodal IT). It’s important that cloud-provisioned corporate data centers mitigate the tradeoffs in performance and availability that one-size-fits-all clouds force you to make. Red Hat is working hard to be as close to a seamless component of bimodal IT as possible, particularly for storage.
Storage is hard to optimize in every case. Storage performance depends on cleverly ganging up relatively low capability devices to create the illusion of a higher capability device. Challenges arise from the fact that the underlying devices are shared—most commonly by multiple VMs. The more layers of abstraction you put on top of conventional storage devices, the harder it is to tune for … anything ... and this remains true even as media gets faster.
OpenStack (for one) deals with this by letting you name your storage buckets before adding them to the access queue. The user can ask for "gold" storage, but someone first has to define what "gold" means to them, and then configure the underlying storage to be "gold" using storage-based tools. That’s better than nothing, but you still have the problem of not knowing exactly how to prevent a bunch of VMs consuming the same device in the "gold" pool at the same time.
Public cloud block storage has the very same challenge.
To adapt, the OS needs to employ full-stack monitoring and best-practice configuration recommendations, so that the upper layers of the infrastructure can get what they need without needing to understand how they got it. The OS needs to integrate, automate, programmatically expose, monitor, and advise. This defines the intelligent management structure of software-defined storage stacks. And that’s what we’re going to focus on going forward.
A few concrete examples of integration and API work already in flight:
Storage optimization: Part of our work is to be a great system "brick" when needed. This works better when the storage is self managing. Examples: Our Virtual Data Optimizer tools compress and deduplicate stored data to minimize the likelihood of out of space conditions. LVM intgrates volume management tools. Configuration and management is easier, through integration with the device mapper event management framework (dmeventd), integration with the RHEL 8 Web Console (Cockpit) and availability of Ansible modules to support massive scale deployments. You can watch a demo RHEL 8 VDO capabilities here.
System Roles for Storage: System Roles abstract the interface from the OS version, saving you the hassle of re-learning and re-scripting interfaces as the OS evolves. See the GitHub wiki for more details.
Standard APIs like CSI: This is how OpenShift and Kubernetes consume capacity. Start with a very simple ask (storage, please), but have an API that optionally lets you adjust as many, or as few, knobs as you’d like, something you really can’t do in public clouds. Nice blog here.
Red Hat Insights Integration: Use Red Hat’s SaaS tools to tell you when and where you might want to tune things and provide actionable Ansible playbooks to actually do the tuning. Starting with RHEL 8, it’s included with your subscription. See details on Insights here.
Stratis (Integrated Volume and File System Management): Stratis 1.0 (tech preview in RHEL 8.0) is an intuitive file system integration tool that can perform significant storage management operations like volume management, pool creation, thin storage pools, snapshots, and automated read cache—all while hiding complexity from the user. Its ultimate goal is to allow you to create a filesystem using an API (or a CLI, if you prefer), and without worrying about the underlying details. Watch a Stratis demo here.
As for the other cool storage stuff stuff in RHEL 8, they are best understood with quick demos, I think:
XFS Reflink: Allows multiple files to share the same storage extents, saving space and increasing efficiency. Demo video here.
Boom Boot Manager: Lets you create a boot menu that includes snaps of earlier OS states (for example). This provides an excellent complement to our emerging in-place upgrades capability. Demo video here.
File System Direct Access to Persistent Memory Devices (FS-DAX): While it’s still experimental upstream (and still Tech Preview for general purpose use cases), there’s so much value in the capability that both SAP HANA and MS-SQL Server 2017 have certified use cases today.
Network-Bound Disk Encryption: Simplifies authentication for on-disk encryption for devices on the same network. Demo video here.
Stay tuned to the Red Hat Blog to learn more about what's in RHEL 8, and how you can make the most of it.