Skip to content

VMware restore fails if USB device was attached #2166

@Signum

Description

@Signum

Bareos component version

bareos 24.0.1~pre19.3e3a7a6a2-19
bareos-bconsole 24.0.1~pre19.3e3a7a6a2-19
bareos-client 24.0.1~pre19.3e3a7a6a2-19
bareos-common 24.0.1~pre19.3e3a7a6a2-19
bareos-contrib-director-python-plugins 24.0.1~pre19.3e3a7a6a2-19
bareos-contrib-filedaemon-python-plugins 24.0.1~pre19.3e3a7a6a2-19
bareos-database-common 24.0.1~pre19.3e3a7a6a2-19
bareos-database-postgresql 24.0.1~pre19.3e3a7a6a2-19
bareos-database-tools 24.0.1~pre19.3e3a7a6a2-19
bareos-director 24.0.1~pre19.3e3a7a6a2-19
bareos-director-python-plugins-common 24.0.1~pre19.3e3a7a6a2-19
bareos-director-python3-plugin 24.0.1~pre19.3e3a7a6a2-19
bareos-filedaemon 24.0.1~pre19.3e3a7a6a2-19
bareos-filedaemon-postgresql-python-plugin 24.0.1~pre19.3e3a7a6a2-19
bareos-filedaemon-python-plugins-common 24.0.1~pre19.3e3a7a6a2-19
bareos-filedaemon-python3-plugin 24.0.1~pre19.3e3a7a6a2-19
bareos-storage 24.0.1~pre19.3e3a7a6a2-19
bareos-storage-python-plugins-common 24.0.1~pre19.3e3a7a6a2-19
bareos-storage-python3-plugin 24.0.1~pre19.3e3a7a6a2-19
bareos-storage-tape 24.0.1~pre19.3e3a7a6a2-19
bareos-tools 24.0.1~pre19.3e3a7a6a2-19
bareos-vadp-dumper 24.0.1~pre19.3e3a7a6a2-19
bareos-vmware-plugin 24.0.1~pre19.3e3a7a6a2-19
bareos-vmware-vix-disklib 8.0.3-23950268
bareos-webui 24.0.1~pre19.3e3a7a6a2-19

Plus the pimped version of the VMware plugin as per pull request #2152

Steps to reproduce

  1. Create a VM on VMware/vCenter. Attach (pass-through) a USB device through the host server.
  2. Run a backup.
  3. Run a restore.

In our case it is a GSM modem that is connected through an RS232-to-USB adapter to the VMware host. We use it to send alert SMS from the monitoring system.

Expected results

The restore runs successfully.

Actual results

The restore fails:

10-Feb 19:52 bareos-dir JobId 34436: Version: 24.0.1~pre19.3e3a7a6a2 (08 January 2025) Debian GNU/Linux 12 (bookworm)
10-Feb 19:52 bareos-dir JobId 34436: Start Restore Job RestoreFiles.2025-02-10_19.51.59_14
10-Feb 19:52 bareos-dir JobId 34436: Connected Storage daemon at bareos-gfw.pmd5.org:9103, encryption: TLS_CHACHA20_POLY1305_SHA256 TLSv1.3
10-Feb 19:52 bareos-dir JobId 34436:  Encryption: TLS_CHACHA20_POLY1305_SHA256 TLSv1.3
10-Feb 19:52 bareos-dir JobId 34436: Using Device "DiskVmware1" to read.
10-Feb 19:52 bareos-dir JobId 34436: Connected Client: bareos-fd at 2001:678:274:17::4:9102, encryption: TLS_CHACHA20_POLY1305_SHA256 TLSv1.3
10-Feb 19:52 bareos-dir JobId 34436:  Handshake: Immediate TLS 
10-Feb 19:52 bareos-dir JobId 34436:  Encryption: TLS_CHACHA20_POLY1305_SHA256 TLSv1.3
10-Feb 19:52 bareos--fd JobId 34436: Connected Storage daemon at bareos-gfw.pmd5.org:9103, encryption: TLS_CHACHA20_POLY1305_SHA256 TLSv1.3
10-Feb 19:52 bareos-gfw-sd JobId 34436: Version: 24.0.1~pre19.3e3a7a6a2 (08 January 2025) Debian GNU/Linux 12 (bookworm)
10-Feb 19:52 bareos--fd JobId 34436:  Encryption: TLS_CHACHA20_POLY1305_SHA256 TLSv1.3
10-Feb 19:52 bareos-gfw-sd JobId 34436: Ready to read from volume "VmwareFull-9975" on device "DiskVmware1" (/srv/bareos/vmware).
10-Feb 19:52 bareos-gfw-sd JobId 34436: Forward spacing Volume "VmwareFull-9975" to file:block 0:231.
10-Feb 19:52 bareos--fd JobId 34436: python3-fd-mod: Could not find VM /restore-test/zabbix2_restore-test in DC HH Gorch-Fock-Wall
10-Feb 19:52 bareos--fd JobId 34436: Warning: python3-fd-mod: MAC address 00:50:56:86:05:6d already exists in VM(s): ['/Monitoring and Documentation/zabbix2'], restored VM will get generated MAC address
10-Feb 19:52 bareos--fd JobId 34436: Warning: python3-fd-mod: UUID 42063320-b6da-e41f-7acd-4c5583f2d890 already exists in VM: /Monitoring and Documentation/zabbix2, restored VM will get new generated UUID
10-Feb 19:52 bareos--fd JobId 34436: Fatal error: bareosfd: Traceback (most recent call last):
  File "/usr/lib/bareos/plugins/BareosFdWrapper.py", line 69, in handle_plugin_event
    return bareos_fd_plugin_object.handle_plugin_event(event)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/bareos/plugins/bareos-fd-vmware.py", line 1074, in handle_plugin_event
    return self.start_restore_job()
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/bareos/plugins/bareos-fd-vmware.py", line 616, in start_restore_job
    return self.vadp.prepare_vm_restore()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/bareos/plugins/bareos-fd-vmware.py", line 1547, in prepare_vm_restore
    if not self.create_vm():
           ^^^^^^^^^^^^^^^^
  File "/usr/lib/bareos/plugins/bareos-fd-vmware.py", line 1906, in create_vm
    config = transformer.transform(
             ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/bareos/plugins/bareos-fd-vmware.py", line 3597, in transform
    config_spec.deviceChange = self._transform_devices()
                               ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/bareos/plugins/bareos-fd-vmware.py", line 3881, in _transform_devices
    raise RuntimeError(
RuntimeError: Error: Unknown Device Type vim.vm.device.VirtualUSB

Environment

Relevant log output

Relevant traces output

Anything else?

USB settings of the VM in vCenter:

Image

Unfortunately the vCenter refuses to let me download the VMX file of the VM. If it's important I'll do some more dirty tricks.

Metadata

Metadata

Assignees

Labels

bugThis addresses a bug

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions