abbbi / virtnbdbackup

Backup utility for Libvirt / qemu / kvm supporting incremental and differential backups + instant recovery (agentless).
http://libvirtbackup.grinser.de/
GNU General Public License v3.0
330 stars 46 forks source link

'NBD' object has no attribute 'get_block_size' #112

Closed Playys228 closed 1 year ago

Playys228 commented 1 year ago

Version used Provide output of virtnbdbackup -V 1.9.21

Describe the bug I think this is an error that described also here with libnbd https://github.com/abbbi/virtnbdbackup/issues/7

but there is not solve for this error.

Hypervisor information: qemu-kvm libvirt

Workaround: DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.6 LTS"

logs: sudo python3 virtnbdbackup -d win2k19 -l full -o /mnt/sdb/winServerBackups/ [2023-04-02 16:22:50] INFO lib common - printVersion [MainThread]: Version: 1.9.21 Arguments: virtnbdbackup -d win2k19 -l full -o /mnt/sdb/winServerBackups/ [2023-04-02 16:22:50] INFO root virtnbdbackup - main [MainThread]: Backup level: [full] [2023-04-02 16:22:50] INFO root virtnbdbackup - main [MainThread]: Libvirt library version: [6000000] [2023-04-02 16:22:50] INFO root disktype - Optical [MainThread]: Skipping attached [cdrom] device: [sdb]. [2023-04-02 16:22:50] INFO root disktype - Optical [MainThread]: Skipping attached [cdrom] device: [sdc]. [2023-04-02 16:22:50] INFO root virtnbdbackup - main [MainThread]: Backup will save [1] attached disks. [2023-04-02 16:22:50] INFO root virtnbdbackup - main [MainThread]: Concurrent backup processes: [1] [2023-04-02 16:22:50] INFO root checkpoint - redefine [MainThread]: Loading checkpoint list from: [/mnt/sdb/winServerBackups//checkpoints] [2023-04-02 16:22:50] INFO root checkpoint - create [MainThread]: Checkpoint handling. [2023-04-02 16:22:50] INFO root checkpoint - create [MainThread]: Removing all existent checkpoints before full backup. [2023-04-02 16:22:50] INFO root checkpoint - create [MainThread]: Using checkpoint name: [virtnbdbackup.0]. [2023-04-02 16:22:50] INFO root virtnbdbackup - main [MainThread]: Local NDB Endpoint socket: [/var/tmp/virtnbdbackup.250465] [2023-04-02 16:22:50] INFO root virtnbdbackup - main [MainThread]: Temporary scratch file target directory: [/var/tmp] [2023-04-02 16:22:50] INFO root virtnbdbackup - startBackupJob [MainThread]: Starting backup job. [2023-04-02 16:22:52] INFO fs fs - freeze [MainThread]: Freezed [3] filesystems. [2023-04-02 16:22:52] INFO fs fs - thaw [MainThread]: Thawed [3] filesystems. [2023-04-02 16:22:52] INFO root virtnbdbackup - main [MainThread]: Started backup job with checkpoint, saving information. [2023-04-02 16:22:52] INFO root checkpoint - backup [MainThread]: Saving checkpoint config to: [/mnt/sdb/winServerBackups//checkpoints/virtnbdbackup.0.xml] [2023-04-02 16:22:52] WARNING root checkpoint - getXml [MainThread]: Failed to get checkpoint info with size information: [unsupported flags (0x4) in function qemuCheckpointGetXMLDesc] [2023-04-02 16:22:53] INFO nbd client - printVersion [sda]: libnbd version: 1.2.2 [2023-04-02 16:22:53] INFO nbd client - connect [sda]: Waiting until NBD server at [nbd+unix:///sda?socket=/var/tmp/virtnbdbackup.250465] is up. [2023-04-02 16:22:54] CRITICAL root virtnbdbackup - main [MainThread]: Unknown Exception during backup: 'NBD' object has no attribute 'get_block_size' [2023-04-02 16:22:54] ERROR root virtnbdbackup - main [MainThread]: 'NBD' object has no attribute 'get_block_size' Traceback (most recent call last): File "virtnbdbackup", line 526, in main if future.result() is not True: File "/usr/lib/python3.8/concurrent/futures/_base.py", line 437, in result return self.get_result() File "/usr/lib/python3.8/concurrent/futures/_base.py", line 389, in get_result raise self._exception File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run result = self.fn(*self.args, **self.kwargs) File "virtnbdbackup", line 740, in backupDisk connection = connectNbd(args, disk, metaContext, remoteIP, port, virtClient) File "virtnbdbackup", line 706, in connectNbd return nbdClient.connect() File "/home/playys/backupScript/virtnbdbackup/libvirtnbdbackup/nbdcli/client.py", line 135, in connect connection = self._connect() File "/home/playys/backupScript/virtnbdbackup/libvirtnbdbackup/nbdcli/client.py", line 111, in _connect self._getBlockInfo() File "/home/playys/backupScript/virtnbdbackup/libvirtnbdbackup/nbdcli/client.py", line 92, in _getBlockInfo maxSize = self.nbd.get_block_size(nbd.SIZE_MAXIMUM) AttributeError: 'NBD' object has no attribute 'get_block_size' [2023-04-02 16:22:54] INFO root virtnbdbackup - main [MainThread]: Backup jobs finished, stopping backup task. [2023-04-02 16:22:54] INFO root metadata - backupConfig [MainThread]: Saving VM config to: [/mnt/sdb/winServerBackups//vmconfig.virtnbdbackup.0.xml] [2023-04-02 16:22:54] INFO root metadata - backupDiskInfo [MainThread]: Saved qcow image config to: [/mnt/sdb/winServerBackups//sda.virtnbdbackup.0.qcow.json] [2023-04-02 16:22:54] INFO root metadata - backupAutoStart [MainThread]: Autostart setting configured for virtual machine. [2023-04-02 16:22:54] ERROR root virtnbdbackup - main [MainThread]: Error during backup

abbbi commented 1 year ago

please see old issues, your libnbd version installed is either too old or you have installed the nbd module from pypi, which is the wrong one...

abbbi commented 1 year ago

See: https://github.com/abbbi/virtnbdbackup/issues/20

your python-libnbd bindings (libnbd version: 1.2.2) are too old

you can try the ones i backported for the CI environment or you have to backport them yourself or use a virtualenv.

The urls for the packages i used have been removed from the code meanwhile because i switched my CI to ubuntu 22.x, here are the links:

-        # ubuntu 20.x does only include libnbd 1.2.2 which is too old
-        # update package for ci testing to newer version backported.
-        # also copy nbdinfo from debian bullseye, for tests with
-        # option -q
-        wget https://abbbi.github.io/files/libnbd0_1.6.2-1_amd64.deb
-        wget https://abbbi.github.io/files/python3-libnbd_1.6.2-1_amd64.deb