Updating flexVDI host packages

In general, updating the flexVDI packages when a new version is published is as easy as running yum update on your hosts. However, updating some packages can cause the guest virtual machines to be stopped. Read on for more details.

Updating ocfs2-tools

Although they seldom change, updating ocfs2-tools-* packages will restart the ocfs2/o2cb service. This, in turn, will remount your shared storage volumes, killing any virtual machine that was using a virtual disk image in any of these volumes. So, better cleanly stop your virtual machines, or migrate them to another host before updating these packages. Then you can run:

# yum update ocfs2-tools ocfs2-tools-o2cb

Updating the host kernel

One of the components of flexVDI suite is a kernel module called kmod-ocfs2-flexvdi. In Red Hat based Linux distributions where flexVDI software is installed, the kernel package is special because several versions can be installed at the same time on the same machine. Almost every other package can only have one single version installed at a given time, and kmod-ocfs2-flexvdi is no exception. But kernel modules, like kmod-ocfs2-flexvdi, are developed for specific kernel version. To be able to have several kmod-ocfs2-flexvdi packages installed at the same time for different kernels, we publish kmod-ocfs2-flexvdi-k514.x86_64, kmod-ocfs2-flexvdi-k693.x86_64, kmod-ocfs2-flexvdi-k862.x86_64, and so on, as different packages, instead of being different versions of the same package.

This is an example of how you would update the kernel and kmod-ocfs2-flexvdi packages. First you can see the version of the currently running kernel with:

# uname -r
3.10.0-693.17.1.el7.x86_64

In the example, the current kernel in use is 3.10.0-693. Now you can check if there is a new kernel available:

#yum --showduplicates list kernel

...

Installed Packages
kernel.x86_64 3.10.0-514.el7 @anaconda
kernel.x86_64 3.10.0-693.17.1.el7 @updates 
Available Packages
kernel.x86_64 3.10.0-862.el7 base 
kernel.x86_64 3.10.0-862.2.3.el7 updates 
kernel.x86_64 3.10.0-862.3.2.el7 updates 
kernel.x86_64 3.10.0-862.3.3.el7 updates 
kernel.x86_64 3.10.0-862.6.3.el7 updates 
kernel.x86_64 3.10.0-862.9.1.el7 updates 
kernel.x86_64 3.10.0-862.11.6.el7 updates

So a new version 3.10.0-862 is available, and you may decide that you want to install it. Now you can get a list of the available kmod-ocfs2-flexvdi packages:

# yum search kmod-ocfs2-flexvdi

Loaded plugins: fastestmirror

...

======================================= N/S matched: kmod-ocfs2-flexvdi =======================================
kmod-ocfs2-flexvdi-k514.x86_64 : OCFS2 driver module
kmod-ocfs2-flexvdi-k693.x86_64 : OCFS2 driver module
kmod-ocfs2-flexvdi-k862.x86_64 : OCFS2 driver module

kmod-ocfs2-flexvdi-k862.x86_64 is the name of the kmod  package that matches the kernel 3.10.0-862 that you want to install. kmod-ocfs2-flexdi-k862 package depends on 3.10.0-862.xxx kernel, so you can install both of them at the same time with the command:

# yum install kmod-ocfs2-flexvdi-k862
...
===============================================================================================================
Package Arch Version Repository Size
===============================================================================================================
Installing:
kernel x86_64 3.10.0-862.11.6.el7 updates 46 M
kmod-ocfs2-flexvdi-k862 x86_64 1.5.0-1.el7 flexvdi 508 k
replacing kmod-ocfs2-flexvdi.x86_64 1.5.0-693.el7
Updating:
flexvdi noarch 3.0-2.el7 flexvdi 2.0 k
Is this ok [y/d/N]:

...

Now that the new kernel is installed, you have to reboot the machine so that it starts using it.

If you update your kernel, you have to manually install the appropriate kmod-ocfs2-flexvdi package as explained above, because it is not automatically updated. Failing to do so may leave guest disk images inaccessible to the host.

Updating all packages except kernel and ocfs2-tools

As updating kernel or ocfs2-tools will always cause the host to temporarily stop servicing guest machines, you may be interested in updating the rest of the packages. You can do this with:

# yum update --exclude=kernel*,ocfs2-tools-*