SmartState, how to _correctly_ install VMWare VDDK


#1

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.


#2

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


#3

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:


#4

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


#5

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.


#6

Hi,

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


#7

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


#8

Unfortunately it’s hidden behind a subscription seal.


#9
  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
    

#10

Hi @jerrykbiker,

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

Cheers,
Casius.


#11

@casius,

Just run ldconfig after those steps

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


#12

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.