Skip to content

Cannot import DV into a block device #4175

Description

@prezhdarov

What happened:
Trying the usual import of a qcow2 image into a block device DV that worked in 1.64, now fails.

What you expected to happen:
Import the image and start the virtual machine.

How to reproduce it (as minimally and precisely as possible):
Create a virtual machine template or just DV with similar specs:

apiVersion: cdi.kubevirt.io/v1beta1
kind: DataVolume
metadata:
   name: somevm-root
spec:
   preallocation: false
   source:
      http:
         url: https://some.web.tld/somevm.qcow2
   storage:
      accessModes:
      - ReadWriteMany
      resources:
         requests:
            storage: 60Gi
      storageClassName: aff-a-nvme-flexvol  
      volumeMode: Block

where 'aff-a-nvme-flexvol' is NetApp Trident nvme provisioned storage class.

Additional context:
Had to change scratch storage configuration to:

      scratchSpaceStorageClass: aff-a-nfs-flexvol
      filesystemOverhead: 
        storageClass:
          aff-a-nfs-flexvol: "0.15"

or importer would fail with either not enough space or permission denied if block storage scratch was used. The 'aff-a-nfs-flexvol' storage class is similar NetApp Trident pnfs4.1 provisioned storage class.

Environment:

  • CDI version (use kubectl get deployments cdi-deployment -o yaml): 1.65
  • Kubernetes version (use kubectl version): 1.35.5
  • DV specification: posted above
  • Cloud provider or hardware configuration: Dell R6615 with AMD EPYC 9334
  • OS (e.g. from /etc/os-release): Debian 13.5
  • Kernel (e.g. uname -a): 7.0.10+deb13-amd64
  • Install tools: ?
  • Others: ?

importer-prime logs

I0617 12:15:08.550549       1 prometheus.go:78] 99.87
I0617 12:15:08.972676       1 file.go:195] Read 6710820864 bytes, wrote 6701330432 bytes to /scratch/tmpimage
I0617 12:15:08.972915       1 data-processor.go:260] New phase: Convert
I0617 12:15:08.972922       1 data-processor.go:266] Validating image
E0617 12:15:08.979122       1 prlimit.go:156] failed to kill the process; os: process already finished
I0617 12:15:08.979174       1 qemu.go:119] Running qemu-img with args: [convert -t writeback -p -O raw /scratch/tmpimage /dev/cdi-block-volume]
I0617 12:15:08.981911       1 qemu.go:283] 0.00
E0617 12:15:08.983110       1 prlimit.go:178] qemu-img failed output is:
E0617 12:15:08.983117       1 prlimit.go:179]     (0.00/100%)


E0617 12:15:08.983121       1 prlimit.go:180] qemu-img: /dev/cdi-block-volume: error while converting raw: Failed to clear the new image's first sector: Invalid argument

E0617 12:15:08.983136       1 prlimit.go:156] failed to kill the process; os: process already finished
E0617 12:15:08.983199       1 data-processor.go:256] exit status 1
qemu-img execution failed
kubevirt.io/containerized-data-importer/pkg/system.executeWithLimits
	pkg/system/prlimit.go:182
kubevirt.io/containerized-data-importer/pkg/system.ExecWithLimits
	pkg/system/prlimit.go:112
kubevirt.io/containerized-data-importer/pkg/image.convertToRaw
	pkg/image/qemu.go:120
kubevirt.io/containerized-data-importer/pkg/image.(*qemuOperations).ConvertToRawStream
	pkg/image/qemu.go:169
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).convert
	pkg/importer/data-processor.go:285
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).initDefaultPhases.func7
	pkg/importer/data-processor.go:218
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessDataWithPause
	pkg/importer/data-processor.go:253
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessData
	pkg/importer/data-processor.go:151
main.handleImport
	cmd/cdi-importer/importer.go:189
main.main
	cmd/cdi-importer/importer.go:149
runtime.main
	GOROOT/src/runtime/proc.go:283
runtime.goexit
	src/runtime/asm_amd64.s:1700
could not convert image to raw Log line from nbdkit: nbdkit: curl[1]: error: readahead: warning: underlying plugin does not support NBD_CMD_CACHE or PARALLEL thread model, so the filter won't do anythingLog line from nbdkit: nbdkit: curl[2]: error: readahead: warning: underlying plugin does not support NBD_CMD_CACHE or PARALLEL thread model, so the filter won't do anything
kubevirt.io/containerized-data-importer/pkg/image.convertToRaw
	pkg/image/qemu.go:128
kubevirt.io/containerized-data-importer/pkg/image.(*qemuOperations).ConvertToRawStream
	pkg/image/qemu.go:169
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).convert
	pkg/importer/data-processor.go:285
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).initDefaultPhases.func7
	pkg/importer/data-processor.go:218
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessDataWithPause
	pkg/importer/data-processor.go:253
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessData
	pkg/importer/data-processor.go:151
main.handleImport
	cmd/cdi-importer/importer.go:189
main.main
	cmd/cdi-importer/importer.go:149
runtime.main
	GOROOT/src/runtime/proc.go:283
runtime.goexit
	src/runtime/asm_amd64.s:1700
Conversion to Raw failed
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).convert
	pkg/importer/data-processor.go:287
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).initDefaultPhases.func7
	pkg/importer/data-processor.go:218
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessDataWithPause
	pkg/importer/data-processor.go:253
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessData
	pkg/importer/data-processor.go:151
main.handleImport
	cmd/cdi-importer/importer.go:189
main.main
	cmd/cdi-importer/importer.go:149
runtime.main
	GOROOT/src/runtime/proc.go:283
runtime.goexit
	src/runtime/asm_amd64.s:1700
Unable to convert source data to target format
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).initDefaultPhases.func7
	pkg/importer/data-processor.go:220
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessDataWithPause
	pkg/importer/data-processor.go:253
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessData
	pkg/importer/data-processor.go:151
main.handleImport
	cmd/cdi-importer/importer.go:189
main.main
	cmd/cdi-importer/importer.go:149
runtime.main
	GOROOT/src/runtime/proc.go:283
runtime.goexit
	src/runtime/asm_amd64.s:1700
E0617 12:15:08.983274       1 importer.go:194] exit status 1
qemu-img execution failed
kubevirt.io/containerized-data-importer/pkg/system.executeWithLimits
	pkg/system/prlimit.go:182
kubevirt.io/containerized-data-importer/pkg/system.ExecWithLimits
	pkg/system/prlimit.go:112
kubevirt.io/containerized-data-importer/pkg/image.convertToRaw
	pkg/image/qemu.go:120
kubevirt.io/containerized-data-importer/pkg/image.(*qemuOperations).ConvertToRawStream
	pkg/image/qemu.go:169
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).convert
	pkg/importer/data-processor.go:285
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).initDefaultPhases.func7
	pkg/importer/data-processor.go:218
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessDataWithPause
	pkg/importer/data-processor.go:253
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessData
	pkg/importer/data-processor.go:151
main.handleImport
	cmd/cdi-importer/importer.go:189
main.main
	cmd/cdi-importer/importer.go:149
runtime.main
	GOROOT/src/runtime/proc.go:283
runtime.goexit
	src/runtime/asm_amd64.s:1700
could not convert image to raw Log line from nbdkit: nbdkit: curl[1]: error: readahead: warning: underlying plugin does not support NBD_CMD_CACHE or PARALLEL thread model, so the filter won't do anythingLog line from nbdkit: nbdkit: curl[2]: error: readahead: warning: underlying plugin does not support NBD_CMD_CACHE or PARALLEL thread model, so the filter won't do anything
kubevirt.io/containerized-data-importer/pkg/image.convertToRaw
	pkg/image/qemu.go:128
kubevirt.io/containerized-data-importer/pkg/image.(*qemuOperations).ConvertToRawStream
	pkg/image/qemu.go:169
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).convert
	pkg/importer/data-processor.go:285
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).initDefaultPhases.func7
	pkg/importer/data-processor.go:218
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessDataWithPause
	pkg/importer/data-processor.go:253
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessData
	pkg/importer/data-processor.go:151
main.handleImport
	cmd/cdi-importer/importer.go:189
main.main
	cmd/cdi-importer/importer.go:149
runtime.main
	GOROOT/src/runtime/proc.go:283
runtime.goexit
	src/runtime/asm_amd64.s:1700
Conversion to Raw failed
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).convert
	pkg/importer/data-processor.go:287
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).initDefaultPhases.func7
	pkg/importer/data-processor.go:218
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessDataWithPause
	pkg/importer/data-processor.go:253
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessData
	pkg/importer/data-processor.go:151
main.handleImport
	cmd/cdi-importer/importer.go:189
main.main
	cmd/cdi-importer/importer.go:149
runtime.main
	GOROOT/src/runtime/proc.go:283
runtime.goexit
	src/runtime/asm_amd64.s:1700
Unable to convert source data to target format
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).initDefaultPhases.func7
	pkg/importer/data-processor.go:220
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessDataWithPause
	pkg/importer/data-processor.go:253
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessData
	pkg/importer/data-processor.go:151
main.handleImport
	cmd/cdi-importer/importer.go:189
main.main
	cmd/cdi-importer/importer.go:149
runtime.main
	GOROOT/src/runtime/proc.go:283
runtime.goexit
	src/runtime/asm_amd64.s:1700

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions