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 of it 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 one specific kernel version. To be able to have several kmod-ocfs2-flexvdi 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, ... as different packages, instead of being different versions of the same package.

First we can see what is the currently running kernel with:

# uname -r

So we currently use 3.10.0-693.

Now we can check if there are new kernels 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 3.10.0-862 is available, and we decide that we want to install it.

Now we will 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.x86_64 : OCFS2 driver module
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

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

# yum install kmod-ocfs2-flexvdi-k862
Package Arch Version Repository Size
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
flexvdi noarch 3.0-2.el7 flexvdi 2.0 k
Is this ok [y/d/N]:


Now that the new kernel is installed, we 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-*