The OpenShift Assisted Installer has received significant improvements in its latest incarnation. Among those improvements are enhancements on the validations of the deployment of OpenShift Virtualization and OpenShift Container Storage (OCS). It is now capable of performing preflight resource checks based on the node’s CPU, memory, and disk capacities for these features. Additionally, for OpenShift Virtualization, it will check for the hardware virtualization flag in the node’s CPU. These checks provide another layer of assurance that the cluster will be able to support the deployment of these infrastructure providers prior to being created, saving time and increasing confidence in the task at hand.
But before we dive into the new features of OpenShift Assisted Installer, let’s refresh a bit about OpenShift Container Storage and OpenShift Virtualization.
What Is OpenShift Container Storage (OCS)?
Red Hat OpenShift Container Storage is a highly integrated collection of cloud storage and data services for Red Hat OpenShift Container Platform. Red Hat OpenShift Container Storage services are primarily made available to applications through storage classes that represent the following components:
- Block storage devices, catering primarily to database workloads. Prime examples include Red Hat OpenShift Container Platform logging and monitoring and PostgreSQL.
- Shared and distributed file system, catering primarily to software development, messaging, and data aggregation workloads. Examples include Jenkins build sources and artifacts, Wordpress uploaded content, Red Hat OpenShift Container Platform registry, and messaging using JBoss AMQ.
- Multicloud object gateway, featuring a lightweight S3 API endpoint that can abstract the storage and retrieval of data from multiple cloud object stores as well as a local object storage. This features a robust S3 API endpoint that scales to tens of petabytes and billions of objects, primarily targeting data-intensive applications. Examples include the storage and access of row, columnar, and semi-structured data with applications like Spark, Presto, Red Hat AMQ Streams (Kafka), and even machine learning frameworks like TensorFlow and Pytorch.
What Is OpenShift Virtualization?
OpenShift Virtualization enables development teams to deploy virtual machines and their application workloads in OpenShift. Deploying a VM can entail sourcing the bootable disk from an image remotely located, either hosted behind a web server or from a container registry. In both cases, deploying the VM requires first importing the image into a PV, binding a PVC, and attaching the mount point to the VM.
You can find detailed information about Openshift Virtualization at the Red Hat website.
OpenShift Virtualization + OCS
We have seen what both these providers can individually bring in terms of infrastructure services. Combining these two fellows in the same cluster opens the door for new possibilities, such as creating PVs on demand and managing their life cycle as part of the VM instance. Using OCS’s ability to provide RWX PVCs, it also grants the ability to perform live migrations, take snapshots, and clone virtual machine disks.
Both OpenShift Virtualization and OCS benefit from the certification effort as part of OCP, starting with Assisted Installer, validating that both products work seamlessly within a given version of OpenShift.
Check this blog post If you want to read more about how OpenShift Virtualization benefits from OCS as the storage layer.
Creating a Cluster with OpenShift Virtualization and OCS Enabled
Let’s see these new improvements in action by creating a new cluster using the latest Assisted Installer. First thing to do is spin seven VMs using Terraform that I’m going to use as nodes in my new cluster. I will intentionally create them with lower resources than needed to show the new hardware validations in action:
Here we have all seven nodes reporting to AI with the minimum hardware resources required for a cluster without OCS or OpenShift Virtualization. Once I enable both operators, the validations will run again and flag all hosts as insufficient to install:
After processing the changes, Assisted Installer is now detecting that the hardware requirements for memory and CPU are not sufficient for this cluster. The validations are telling me that for the control plane nodes, the CPU count I have set is not enough, since now it requires more cores per node to meet, in this case, OpenShift Virtualization’s requirements.
With 7 hosts in the cluster, OCS standard deployment mode kicks in: In this setup, OCS requirements translate per worker node as an additional 8 CPUs and 19GiB of RAM, increasing that by 2 CPUS and 5GiB of RAM for each extra disk that is attached to the node.
In terms of disk space, each disk must have a storage capacity of equal or greater than 25GB. Keep in mind that the performance of an OCS setup is determined by the slowest disk installed, be it SSD or HDD, so choosing the right physical storage type is important if you have performance of your cluster in mind.
As for Openshift Virtualization, the requirements differ based on the role taken by the node:
- Each Control plane node requires an additional 4 cores and 150MiB of RAM.
- Each Worker node needs to include 2 more cores and 360MiB of RAM each.
Keep in mind that the hardware resource requirements for OCS and Openshift Virtualization are in addition to those mandated by OCP alone.
The workers are in a worse predicament. They need additional cores and memory due to the additional handlers that will need to host both operators. Keep in mind that the CPU and memory requirements for OCS for the standard deployment are relative to the worker node characteristics. See earlier section where I describe the hardware requirements for a standard deployment of OCS.
On the other hand, OpenShift Virtualization defines hardware requirements per node, including control plane nodes, so each worker node you add to your cluster will have to accommodate the extra CPU and memory footprint for the operator.
Notice at the bottom, the validation message specific to OCS. In terms of storage, OCS requirements for standard deployments indicate that at least 3 workers should each have an additional storage of capacity equal or higher than 25Gb. Since I created my 3 workers without additional storage, the Assisted Installer is telling me that I should attach additional storage to these disks if I want to be able to install OCS.
After updating the VM specifications for each node to comply with the requirements, I wait for a brief time for the nodes to report their new hardware specification. Bit by bit, all failed validations start to pass as nodes show as “Ready.”
With all requirements met, I can successfully trigger the creation of a new cluster. The UI has also been improved to give more visibility on the status of the operators deployed in the cluster during this stage.
There is now a popover that shows the status of the installation of the operators selected. In this case, I have the two operators I previously chose and the OpenShift Local Storage operator, which is bundled together with OCS and OpenShift Virtualization as a local storage provider.
Once the cluster has been created successfully, the best way to confirm the successful deployment of the OpenShift Container Storage and OpenShift Virtualization operators is to check the status of their respective CSVs:
Assisted Installer continues to evolve on each release, making it easier to create and maintain OpenShift clusters. In this post, I wanted to highlight the recent improvements in the way Assisted Installer handles the validations of OpenShift Virtualization and OCS in a new cluster, guaranteeing that the cluster is set up as expected.
But do not take my word for granted. With your account at cloud.redhat.com, you can also create your own new cluster using the Assisted Installer and discover firsthand the new features and enhancements that have been added for OpenShift 4.8.
OpenShift Virtualization benefits from using OCS as its storage provider in OCP, not just for dynamically provisioning persistent volumes, but also because it enables features such as shared access and efficient storage by compression and de-duplication of data. This allows VMs to perform live migrations, taking snapshots and cloning. Adding to this, OCS is also part of the Red Hat portfolio. Iit is deployed as a workload to the cluster and OpenShift Virtualization capabilities are internally tested with OCS first, creating a level of assurance and interoperability between both solutions.