Why VMFS on CentOS 7?
I was running a VMware ESXi server since 4 years. In VMware ESXi the options for local storage are limited, especially when you like redundant storage. The option is to buy a Raid adapter. I decided to move to CentOS with ZFS storage.
Moving the VM’s to a Linux disk can be done by moving all the files to a NFS share, but an another option is to mount the VMFS filesystem. This is not natively available in Linux, but with fuse and vmfs-tools you can make it available. In this article I will describe how I did the installation and movement of the VM’s.
My baseline tools
I did a plain CentOS 7 installation, after the installation finished succesfully I connected my harddrive with the VMFS file system to the Linux box.
The VMFS driver is not natively available, so you need to compile it yourself. Glandium programmed a userspace VMFS driver for linux, more about this can be found here: http://glandium.org/blog/?p=2539
Howto compile VMFS for CentOS 7?
Enable the EPEL repository for additional packages
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-1.noarch.rpm sudo rpm -Uvh epel-release-7*.rpm
Install the following packages for userspace filesystems
yum install libuuid-devel yum install fuse fuse-devel
Download the VMFS sourcecode
wget http://glandium.org/projects/vmfs-tools/vmfs-tools-0.2.5.tar.gz tar -xvzf vmfs-tools*
Unpack and compile
cd vmfs-tools-0.2.5 ./configure make make install
The programs will be installed in /usr/local/sbin
To mount a VMFS file system:
./vmfs-fuse /dev/sdb1 /mount
*When you recognize that vmfs-fuse command is not available on you’re system make sure that fuse, fuse-devel and libuuid-devel is installed before compiling.
Files can now be accessed from /mount
Thin-provisioned VMDK’s are copied as Pre-Allocated VMDK’s
I copied all the vm’s to my local Linux file system, but had some issues with the thin-provisoned vmdk’s. The become pre-allocated vmdk’s which uses a lot of space. With the following command you can convert them back to growing disks:
vmware-vdiskmanager -r sourceDisk.vmdk -t 0 targetDisk.vmdk
Installing the VMFS drives on Linux / CentOS can be usefull in case of migrations, but also in case of an emergency. It is realative easy to browse you’re VMFS filesystem from a non-VMware host.