SmartState, how to _correctly_ install VMWare VDDK

To use SmartSate analysis with VMWare (vCenter 6.0, MiQ botvinnik), I installed VMWare VDDK. More or less, only .so from lib64 subdirectory are required. So the usual way of “installing” was:

cat /etc/ld.so.conf.d/vmware-vddk.conf
/opt/vmware-vix-disklib-distrib-5.5.3/lib64

ldconfig -v # VDDK libs are listed
# restart appliance etc.

My problem is, that VDDK has libs which are also default system libs - just a different version.
So for example, now the sssd doesnt start any more (I guess it was stopped, possibly due to logrotate):

Starting sssd: /usr/sbin/sssd: error while loading shared libraries: libglib-2.0.so.0: failed to map segment from shared object: Permission denied

ldconfig -v
/opt/vmware-vix-disklib-distrib-5.5.3/lib64
        libglib-2.0.so.0 -> libglib-2.0.so.0
/lib64:
        libglib-2.0.so.0 -> libglib-2.0.so.0.2800.8

[root@manageiq sssd]# ll /lib64/libglib-2.0.so.0.2800.8
-rwxr-xr-x. 1 root root 1142944 okt 15  2014 /lib64/libglib-2.0.so.0.2800.8
[root@manageiq sssd]# ll /opt/vmware-vix-disklib-distrib-5.5.3/lib64/libglib-2.0.so.0 
-rw-r--r--. 1 root root 986352 jun 18  2014 /opt/vmware-vix-disklib-distrib-5.5.3/lib64/libglib-2.0.so.0

Installing VDDK on my desktop, and afterwards, I wasn’t able to run kate text editior.

So how could I make sure that VDDK libs are available to MiQ, and its subprocesses? Its actually used only for some very specific tasks - SSA, maybe some other. Alter LD_LIBRARY_PATH at some point? Or did I “install” VDDK the wrong way from the start?

BTW, it seems that (at least with botvinnik), VDDK 5.5.3 is ok, but 5.5.5 or 6.0.1 are not - after creating snapshot, it just couldn’t connect to remote host.

BTW2, I had problem with ruby ffi searching for .so files - “ldconfig -v | grep vix” shoved some files, but the MiQ logged something like ‘no library found’, after trying to load various 5.x.y versions. At some point, I even added additional try to load “/opt/vmware-vix-disklib-distrib-5.5.3/lib64” + libname, if libname loading fails. At the end, SSA started to work.

I really should RTFM and ./vmware-install.pl

This is how QE does it: https://github.com/RedHatQE/cfme_tests/blob/master/utils/appliance.py#L1369

Yeah, pretty much just launching the .pl file and then ldconfig. :slight_smile:

I wonder if this is something we could add to the appliance console to help make it simpler for users. cc @rpo @jerrykbiker

Note that with the 6.0.0 release, VMware no longer includes the vmware-install.pl file so manual steps are necessary. A knowledge book article has been written to help with the installation. This also means the QE script linked will no longer work.

Hi,

Where is the mention knowledge book article abbout vDDK 6.0 installation?

@zsoltesz its here: https://access.redhat.com/articles/2078103

Unfortunately it’s hidden behind a subscription seal.

  1. Download VDDK 6.0 from the VMware website.

  2. Copy the downloaded GZIP file to the /tmp directory on the appliance.

  3. Decompress the GZIP archive file.

  4. Prepare the /usr/lib/vmware-vix-disklib directory:
    a. If the directory already exists, back up and remove the contents of this directory.
    b. If the directory does not exist, create it:

     mkdir /usr/lib/vmware-vix-disklib
    
  5. Under the decompressed archive file in the /tmp directory, there are several sub-directories. Copy the following directories and their contents into the /usr/lib/vmware-vix-disklib directory:

  • bin64
  • include
  • lib64
  1. Run the following commands:

    ln -s /usr/lib/vmware-vix-disklib/lib64/libvixDiskLib.so /usr/lib/libvixDiskLib.so
    ln -s /usr/lib/vmware-vix-disklib/lib64/libvixDiskLib.so.6 /usr/lib/libvixDiskLib.so.6
    reboot
    
2 Likes

Hi @jerrykbiker,

May I know how can I verify that I have setup VDDK 6.x correctly? Thanks.

Cheers,
Casius.

@casius,

Just run ldconfig after those steps

Then verify it using “ldconfig -p | grep vix”

Thanks @adlinix. Upon executed the command I saw the following:
libvixDiskLib.so.6 (libc6,x86-64) => /lib/libvixDiskLib.so.6
libvixDiskLib.so (libc6,x86-64) => /lib/libvixDiskLib.so

I hope that this is the expected result.

Cheers,
Casius.