vitalif / vitastor

Simplified distributed block and file storage with strong consistency, like in Ceph (repository mirror)
https://vitastor.io
Other
140 stars 22 forks source link

[deploy] libvitastor_client.so.0 strongly relies on the compilation environment #18

Closed lnsyyj closed 3 years ago

lnsyyj commented 3 years ago

Hi @vitalif ,

When I copied the compiled vitastor .so and binary to the new machine, and installed the qemu and libvirt of the vitastor patch on the new machine, the new machine could not start the vm.

It seems that libvitastor_client.so.0 strongly depends on the compilation environment.

root@vitastor-2:~# ldd /usr/local/lib/x86_64-linux-gnu/libvitastor_client.so.0
    linux-vdso.so.1 (0x00007fff9d395000)
    libtcmalloc_minimal.so.4 => /lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4 (0x00007f5117023000)
    liburing.so.1 => /lib/x86_64-linux-gnu/liburing.so.1 (0x00007f511701e000)
    libibverbs.so.1 => /lib/x86_64-linux-gnu/libibverbs.so.1 (0x00007f5116ffe000)
    libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f5116e31000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f5116e17000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5116c52000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5116b0c000)
    libnl-route-3.so.200 => /lib/x86_64-linux-gnu/libnl-route-3.so.200 (0x00007f5116a91000)
    libnl-3.so.200 => /lib/x86_64-linux-gnu/libnl-3.so.200 (0x00007f5116a6e000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5116a4c000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5116a46000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f5117282000)
root@vitastor-2:~# virsh start ubuntu18.04-1 
error: Failed to start domain 'ubuntu18.04-1'
error: internal error: qemu unexpectedly closed the monitor: Failed to open module: libvitastor_client.so.0: cannot open shared object file: No such file or directory
2021-08-06T09:15:47.297337Z qemu-system-x86_64: -blockdev {"driver":"vitastor","etcd_host":"172.16.0.10:2379","etcd_prefix":"/vitastor","image":"ubuntu18.04-disk-1","node-name":"libvirt-3-storage","auto-read-only":true,"discard":"unmap"}: Unknown driver 'vitastor'

root@vitastor-2:~# cat /etc/ld.so.conf.d/x86_64-linux-gnu.conf 
# Multiarch support
/usr/local/lib/x86_64-linux-gnu
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu

root@vitastor-2:~# ls -l /usr/local/lib/x86_64-linux-gnu/
total 18616
-rw-r--r-- 1 root root  2505896 Aug  6 03:53 libfio_vitastor_blk.so
-rw-r--r-- 1 root root   250576 Aug  6 03:53 libfio_vitastor_sec.so
-rw-r--r-- 1 root root   137000 Aug  6 03:53 libfio_vitastor.so
lrwxrwxrwx 1 root root       20 Aug  6 03:53 libvitastor_blk.so -> libvitastor_blk.so.0
lrwxrwxrwx 1 root root       24 Aug  6 03:53 libvitastor_blk.so.0 -> libvitastor_blk.so.0.6.5
-rw-r--r-- 1 root root  5776360 Aug  6 03:53 libvitastor_blk.so.0.6.5
lrwxrwxrwx 1 root root       23 Aug  6 03:53 libvitastor_client.so -> libvitastor_client.so.0
lrwxrwxrwx 1 root root       27 Aug  6 03:53 libvitastor_client.so.0 -> libvitastor_client.so.0.6.5
-rw-r--r-- 1 root root 10382568 Aug  6 03:53 libvitastor_client.so.0.6.5
lnsyyj commented 3 years ago

It seems to be a problem with the debian system, and it can run if it is placed in /usr/local/lib.