Running a Windows 2019 Server VM in IBM Cloud Satellite with Openshift Virtualization

Tyler Lisowski
6 min readOct 3, 2022

--

Some client environments will run a workload fleet that is composed of a mix of VM and container workload. In some situations: these workloads need to communicate together to accomplish an overall business goal (ie execute a user workflow/action). As covered in this previous post: containerized workload running within IBM Cloud Satellite can seamlessly communicate with VMs running within the datacenter hosting the Satellite location. However: some client environments do not have an existing virtualization environment (VMWare, Openstack, AWS, etc) to boot VMs within the datacenter running the Satellite location. In these environments: a client will only have a set of baremetal machines that they can dedicate to running both VM and containerized workload. ROKS on IBM Cloud Satellite with Openshift Virtualization can be utilized in these environments to provide a virtualization environment for booting VMs in addition to running containerized workload. In this guide: we will walk through booting a Windows 2019 Server VM in a baremetal IBM Cloud Satellite environment.

Prerequisites

First: a Red Hat CoreOS enabled Satellite location must be created. That can be created with the following command: ibmcloud sat location create --name LOCATION_NAME --managed-from REGION --coreos-enabled . Infrastructure is then attached to the location to build out the control plane according to the sizing guidelines outlined in this documentation page. Once infrastructure is assigned to the location and the location is configured: a ROKS cluster is ordered within the location using ibmcloud ks cluster create satellite --name ROKS_CLUSTER_NAME --location LOCATION_NAME --version <4.11_openshift or higher> --operating-system RHCOS. VM workload is only able to run on Red Hat CoreOS baremetal infrastructure assigned to a ROKS on Satellite cluster (typically all infrastructure in these environments are baremetals running Red Hat CoreOS). Within the ROKS on Satellite cluster: follow the upstream documentation for installing Openshift Virtualization. Lastly: a persistent storage solution needs to be deployed into the ROKS on Satellite cluster to host the VM disks. This guide will use an environment that is already pre provisioned: consult IBM Cloud Satellite’s documentation for getting an environment setup in this manner.

For booting a Windows 2019 Server VM: a user needs to have a license for using Windows 2019 Server. An evaluation ISO can be downloaded from Microsoft. This ISO then needs to be available to be downloaded from an endpoint accessible from within the ROKS on Satellite cluster running Openshift Virtualization. This guide will host the ISO in IBM Cloud Object storage.

Booting the Windows VM

We will use the console based workflow to boot the Windows 2019 VM. A CLI workflow can also be executed but is not covered in this guide. The first step is to login to the Openshift console for the ROKS on Satellite cluster and go to the VirtualMachine page shown below:

Openshift VirtualMachine Console Page

On this page: we will create a VM from the catalog with Create -> From Catalog. On the catalog page we will select the Microsoft Windows Server 2019 VM option and click Customize VirtualMachine shown below:

Microsoft Windows Server 2019 VM Option

On the customization page: we will select the Boot from CD option and reference the URL that the Windows VM ISO can be downloaded from. We need to ensure the persistent volume that runs the disk is large enough to hold the ISO. Additionally: in the Disk Source option: we specify the size of the main disk that will be the root disk of the windows VM. Also, ensure the Mount Windows drivers disk option is deselected. The filled out page for our environment is shown below:

Windows Server 2019 VM Customization Page

With this information filled out we click Review and create VirtualMachine to review the details.

VM Details Page

One thing we need to ensure before booting the VM is that the boot order is appropriately set to the following priority:
1) rootdisk
2) installation-cdrom

We will do that by going to the YAML tab of the review page and check the boot order section of the VM (shown below).

Proper boot order for Windows 2019 Server VM

We will click Save and then go back to the Overview page and click Create VirtualMachine (ignore the warning if it pops up and click proceed as it is not applicable for booting from ISOs). Once created: an importer pod will be created in the namespace you created the VM in. It will proceed to import the ISO (logs can be viewed to show percentage complete).

Tylers-MacBook-Pro:~ tylerlisowski$ kubectl logs importer-win2k19-striped-mollusk-installation-cdrom
I1001 20:28:02.948632 1 importer.go:83] Starting importer
I1001 20:28:02.948674 1 importer.go:150] begin import process
I1001 20:28:03.884405 1 data-processor.go:379] Calculating available size
I1001 20:28:03.884557 1 data-processor.go:391] Checking out file system volume size.
I1001 20:28:03.884584 1 data-processor.go:399] Request image size not empty.
I1001 20:28:03.884599 1 data-processor.go:404] Target size 10226112610.
I1001 20:28:03.909286 1 nbdkit.go:294] Waiting for nbdkit PID.
I1001 20:28:04.410102 1 nbdkit.go:315] nbdkit ready.
I1001 20:28:04.410145 1 data-processor.go:282] New phase: Convert
I1001 20:28:04.410180 1 data-processor.go:288] Validating image
I1001 20:28:05.196989 1 qemu.go:259] 0.00
I1001 20:28:13.012100 1 qemu.go:259] 1.03
I1001 20:28:20.948293 1 qemu.go:259] 2.06
...

Once complete: we can go back to the VirtualMachine page and access the console to walk through the Window’s Server Operating System Installation:

Windows Server 2019 Install Window

We will click Next and then Install now, and then select Windows Server 2019 Standard Evaluation, click Next and accept the terms.

Windows Server 2019 Install Window

Then we will choose Custom: Install Windows only (advanced):

Windows Server 2019 Install Window

Then choose the Blank drive we created when customizing the VM and click next

It will proceed to install Windows. You can monitor the progress in the console window:

Once complete: you will be able to set an Administrator password and access a terminal on the machine.

Once set you will now have access to the shell on the Windows VM:

And within that VM: you have access to the Openshift cluster SDN network. For example: we can curl the downloads service in the openshift-console namespace.

Congratulations! You have now successfully booted a Windows Server 2019 VM and demonstrated how the workload running on it can seamlessly communicate with existing containerized workload in the cluster.

--

--

Tyler Lisowski
Tyler Lisowski

Written by Tyler Lisowski

IBM Cloud Satellite Lead Architect. Proud member of Bills Mafia.

No responses yet