Hello @Moayad ,
here comes the output ofdpkg --list | grep ceph
:
Bash:ii ceph 15.2.11-pve1 amd64 distributed storage and file system ii ceph-base 15.2.11-pve1 amd64 common ceph daemon libraries and management tools ii ceph-common 15.2.11-pve1 amd64 common utilities to mount and interact with a ceph storage cluster ii ceph-fuse 15.2.11-pve1 amd64 FUSE-based client for the Ceph distributed file system ii ceph-mds 15.2.11-pve1 amd64 metadata server for the ceph distributed file system ii ceph-mgr 15.2.11-pve1 amd64 manager for the ceph distributed storage system ii ceph-mgr-modules-core 15.2.11-pve1 all ceph manager modules which are always enabled ii ceph-mon 15.2.11-pve1 amd64 monitor server for the ceph storage system ii ceph-osd 15.2.11-pve1 amd64 OSD server for the ceph storage system ii libcephfs2 15.2.11-pve1 amd64 Ceph distributed file system client library ii python-cephfs 12.2.11+dfsg1-2.1+b1 amd64 Python libraries for the Ceph libcephfs library
apt install --reinstall python-cephfs
to install the correct PVE package. If that fails, post the output of the install command and the output of apt policy python-cephfs
.Hello @RokaKen ,<snip>
I'd say that last line above is your problem. You have installed 'python-cephfs' for Luminous from the Debian repository. That explains the library mismatches.
Tryapt install --reinstall python-cephfs
to install the correct PVE package. If that fails, post the output of the install command and the output ofapt policy python-cephfs
.
[EDIT for format -- I'll get it right eventually]
I did as requested, here is the output of the compare:You will have to compare package versions from your working node and broken node until you find and replace all the incorrect packages.
root@pve3:~/install# ./compare.pl compare-pm2.txt compare-pm3.txt | less
No differences were found.
ldconfig -v
between the working and broken nodes, determine the package that installed the differing library and reinstall the appropriate package and so forth.root@pve1:~# ceph -s
cluster:
id: 73703df0-b8ae-4aca-8269-1fb68da2142d
health: HEALTH_OK
services:
mon: 3 daemons, quorum delbgpm02,delbgpm03,delbgpm01 (age 67s)
mgr: delbgpm02(active, since 5d), standbys: delbgpm01, delbgpm03
mds: cephfs:1 {0=delbgpm01=up:active} 2 up:standby
osd: 13 osds: 13 up (since 28m), 13 in (since 7d)
data:
pools: 4 pools, 193 pgs
objects: 2.69M objects, 10 TiB
usage: 30 TiB used, 58 TiB / 88 TiB avail
pgs: 193 active+clean
io:
client: 412 KiB/s wr, 0 op/s rd, 49 op/s wr
root@pve1:~# apt upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
libpq5
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 170 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://security.debian.org buster/updates/main amd64 libpq5 amd64 11.12-0+deb10u1 [170 kB]
Fetched 170 kB in 0s (345 kB/s)
Reading changelogs... Done
(Reading database ... 74307 files and directories currently installed.)
Preparing to unpack .../libpq5_11.12-0+deb10u1_amd64.deb ...
Unpacking libpq5:amd64 (11.12-0+deb10u1) over (11.11-0+deb10u1) ...
Setting up libpq5:amd64 (11.12-0+deb10u1) ...
Processing triggers for libc-bin (2.28-10) ...
root@delbgpm01:~# ceph -s
Traceback (most recent call last):
File "/usr/bin/ceph", line 140, in <module>
import rados
ImportError: /usr/lib/python3/dist-packages/rados.cpython-37m-x86_64-linux-gnu.so: undefined symbol: rados_mgr_command_target
root@pve1:~# apt install libpq5=11.11-0+deb10u1
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be DOWNGRADED:
libpq5
0 upgraded, 0 newly installed, 1 downgraded, 0 to remove and 0 not upgraded.
Need to get 169 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://ftp.de.debian.org/debian buster/main amd64 libpq5 amd64 11.11-0+deb10u1 [169 kB]
Fetched 169 kB in 0s (725 kB/s)
dpkg: warning: downgrading libpq5:amd64 from 11.12-0+deb10u1 to 11.11-0+deb10u1
(Reading database ... 74307 files and directories currently installed.)
Preparing to unpack .../libpq5_11.11-0+deb10u1_amd64.deb ...
Unpacking libpq5:amd64 (11.11-0+deb10u1) over (11.12-0+deb10u1) ...
Setting up libpq5:amd64 (11.11-0+deb10u1) ...
Processing triggers for libc-bin (2.28-10) ...
root@pve1:~# ceph -s
Traceback (most recent call last):
File "/usr/bin/ceph", line 140, in <module>
import rados
ImportError: /usr/lib/python3/dist-packages/rados.cpython-37m-x86_64-linux-gnu.so: undefined symbol: rados_mgr_command_target
Downgrade did not help...
Code:root@pve1:~# apt install libpq5=11.11-0+deb10u1 Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be DOWNGRADED: libpq5 <snip>
# apt policy libpq5
libpq5:
Installed: (none)
Candidate: 11.12-0+deb10u1
Version table:
11.12-0+deb10u1 500
500 http://security.debian.org/debian-security buster/updates/main amd64 Packages
11.11-0+deb10u1 500
500 http://deb.debian.org/debian buster/main amd64 Packages
libpq5
apt upgrade
on a PVE node. Always use apt full-upgrade || apt-get dist-upgrade || pveupgrade
in order to install updated packages.Hello @RokaKen ,In general, never, Never, NEVER runapt upgrade
on a PVE node. Always useapt full-upgrade || apt-get dist-upgrade || pveupgrade
in order to install updated packages.
apt upgrade
somewhat blindly updates installed packages to "newer" versions, but doesn't check dependencies and won't add new or remove packages where as apt full-upgrade || apt-get dist-upgrade
will check dependencies and perform conflict resolution so that things "just work" (usually). pveupgrade
is just a script around apt-get dist-upgrade
so you don't have to remember. Thus, running an 'apt upgrade' is usually how PVE users get conflicting packages and related problems.apt upgrade
did break your formerly working 'ceph' command as you reported./usr/bin/ceph
is a Python script. On my (Nautilus) system it is python 2.7 and a system can have more than one version of Python. I have:# ls -lh /usr/bin/python*
lrwxrwxrwx 1 root root 7 Mar 4 2019 /usr/bin/python -> python2
lrwxrwxrwx 1 root root 9 Mar 4 2019 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 3.6M Oct 10 2019 /usr/bin/python2.7
-rwxr-xr-x 1 root root 385 Jan 30 2019 /usr/bin/python2-futurize
-rwxr-xr-x 1 root root 392 Sep 3 2018 /usr/bin/python2-gunicorn_pecan
-rwxr-xr-x 1 root root 389 Jan 30 2019 /usr/bin/python2-pasteurize
-rwxr-xr-x 1 root root 374 Sep 3 2018 /usr/bin/python2-pecan
lrwxrwxrwx 1 root root 9 Mar 26 2019 /usr/bin/python3 -> python3.7
-rwxr-xr-x 2 root root 4.7M Jan 22 15:04 /usr/bin/python3.7
-rwxr-xr-x 2 root root 4.7M Jan 22 15:04 /usr/bin/python3.7m
lrwxrwxrwx 1 root root 10 Mar 26 2019 /usr/bin/python3m -> python3.7m
root@pve3:~# python -c 'import rados;print(rados.__file__)'
/usr/lib/python2.7/dist-packages/rados.x86_64-linux-gnu.so
# strings /usr/lib/librados.so.2 | grep rados_mgr_command
rados_mgr_command
librados:rados_mgr_command_exit
librados:rados_mgr_command_cmd
librados:rados_mgr_command_enter
ldd /usr/lib/python3/dist-packages/rados.cpython-37m-x86_64-linux-gnu.so
<snip>
librados.so.2 => /lib/librados.so.2 (0x00007fc2262d5000)
<snip>
ldd /usr/lib/python3/dist-packages/rados.cpython-37m-x86_64-linux-gnu.so
/usr/lib/python3/dist-packages/rados.cpython-37m-x86_64-linux-gnu.so: /lib/x86_64-linux-gnu/librados.so.2: no version information available (required by /usr/lib/python3/dist-packages/rados.cpython-37m-x86_64-linux-gnu.so)
<snip>
librados.so.2 => /lib/x86_64-linux-gnu/librados.so.2 (0x00007f5bd19cc000)
unlink /lib/x86_64-linux-gnu/librados.so.2 && ln -s /lib/librados.so.2 /lib/x86_64-linux-gnu/librados.so.2
unlink /lib/x86_64-linux-gnu/libradosstriper.so.1 && ln -s /lib/libradosstriper.so.1 /lib/x86_64-linux-gnu/libradosstriper.so.1
unlink /lib/x86_64-linux-gnu/librbd.so.1 && ln -s /lib/librbd.so.1 /lib/x86_64-linux-gnu/librbd.so.1