Uploaded image for project: 'OpenShift Virtualization'
  1. OpenShift Virtualization
  2. CNV-77731

[SCMIG] Migration OCS -> HPP fails for disks with fractional sizes

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Critical Critical
    • CNV v4.21.z
    • CNV v4.21.0
    • Storage Platform
    • None
    • Quality / Stability / Reliability
    • 5
    • False
    • Hide

      None

      Show
      None
    • False
    • None
    • Release Notes
    • Hide
      Multi Namespace storage migrations fail when the combination of their resource name/migrated VM namespace is longer than 63 characters.

      *Workaround:*
      One is able to directly use the kubevirt storage migration APIs to individually migrate the affected VMs:
      https://kubevirt.io/user-guide/storage/volume_migration/
      Show
      Multi Namespace storage migrations fail when the combination of their resource name/migrated VM namespace is longer than 63 characters. *Workaround:* One is able to directly use the kubevirt storage migration APIs to individually migrate the affected VMs: https://kubevirt.io/user-guide/storage/volume_migration/
    • Known Issue
    • Proposed
    • CNV Storage Sprint 283
    • Important
    • None

      Description of problem:

      OCS -> HPP migration fails for VMs that clone from DataSource, 
      but works for VMs with imported DV (standalone DV or DVTemplate both work) 
      
      target virt-launcher:
      virt-launcher-vm-with-instance-type-1769081840-1429327-vd58c      0/2     Error       0          10m
      
      {"component":"virt-launcher","level":"error","msg":"internal error: QEMU unexpectedly closed the monitor (vm='storage-migration-test-storage-class-migration_vm-with-instance-type-1769081840-1429327'): 2026-01-22T11:39:44.944892Z qemu-kvm: -blockdev {\"driver\":\"raw\",\"file\":\"libvirt-2-storage\",\"offset\":0,\"size\":34359738368,\"node-name\":\"libvirt-2-slice-sto\",\"read-only\":false,\"discard\":\"unmap\",\"cache\":{\"direct\":true,\"no-flush\":false}}: The sum of offset (0) and size (0) has to be smaller or equal to the  actual size of the containing file (34145828864)","pos":"qemuProcessReportLogError:2059","subcomponent":"libvirt","thread":"87","timestamp":"2026-01-22T11:39:44.959000Z"}
      
      {"component":"virt-launcher","level":"error","msg":"internal error: process exited while connecting to monitor: 2026-01-22T11:39:44.944892Z qemu-kvm: -blockdev {\"driver\":\"raw\",\"file\":\"libvirt-2-storage\",\"offset\":0,\"size\":34359738368,\"node-name\":\"libvirt-2-slice-sto\",\"read-only\":false,\"discard\":\"unmap\",\"cache\":{\"direct\":true,\"no-flush\":false}}: The sum of offset (0) and size (0) has to be smaller or equal to the  actual size of the containing file (34145828864)","pos":"qemuProcessReportLogError:2059","subcomponent":"libvirt","thread":"22","timestamp":"2026-01-22T11:39:44.959000Z"}
      $ oc get vmim -A
      NAMESPACE                                        NAME                             PHASE       VMI
      storage-migration-test-storage-class-migration   kubevirt-workload-update-4kc8x   Pending     vm-with-instance-type-1769081840-1429327
      storage-migration-test-storage-class-migration   kubevirt-workload-update-69ppp   Failed      vm-with-instance-type-1769081840-1429327
      storage-migration-test-storage-class-migration   kubevirt-workload-update-vj6t7   Succeeded   fedora-vm-with-existing-dv-1769081839-1558466
      
      The failed VMIM says the same:
      
      spec:
        vmiName: vm-with-instance-type-1769081840-1429327
      status:
        migrationState:
          endTimestamp: "2026-01-22T11:39:44Z"
          failed: true
          failureReason: 'virError(Code=1, Domain=10, Message=''internal error: process
            exited while connecting to monitor: 2026-01-22T11:39:44.944892Z qemu-kvm: -blockdev
            {"driver":"raw","file":"libvirt-2-storage","offset":0,"size":34359738368,"node-name":"libvirt-2-slice-sto","read-only":false,"discard":"unmap","cache":{"direct":true,"no-flush":false}}:
            The sum of offset (0) and size (0) has to be smaller or equal to the  actual
            size of the containing file (34145828864)'')'

      Version-Release number of selected component (if applicable):

      4.21.0

      How reproducible:

      Always

      Steps to Reproduce:

      1.
      2.
      3.
      

      Actual results:

      OCS -> HPP migration fails for VMs with cloned DataSource

      Expected results:

      Migration succeeds

      Additional info:
      VM with DataSource - fails

      $ oc get vm -n storage-migration-test-storage-class-migration vm-from-template-and-data-source-1769086906-6917074 -oyaml
      apiVersion: kubevirt.io/v1
      kind: VirtualMachine
      metadata:
        annotations:
          kubemacpool.io/transaction-timestamp: "2026-01-22T13:04:30.831861815Z"
          kubevirt.io/latest-observed-api-version: v1
          kubevirt.io/storage-observed-api-version: v1
        creationTimestamp: "2026-01-22T13:01:46Z"
        finalizers:
        - kubevirt.io/virtualMachineControllerFinalize
        generation: 3
        name: vm-from-template-and-data-source-1769086906-6917074
        namespace: storage-migration-test-storage-class-migration
        resourceVersion: "36374555"
        uid: 77d10478-af7c-4a4f-87f7-23b61067a287
      spec:
        dataVolumeTemplates:
        - apiVersion: cdi.kubevirt.io/v1beta1
          kind: DataVolume
          metadata:
            creationTimestamp: null
            name: rhel9-1769086906-6746864-mig-wfl9
          spec:
            sourceRef:
              kind: DataSource
              name: rhel9
              namespace: openshift-virtualization-os-images
            storage:
              resources:
                requests:
                  storage: "34144990004"
              storageClassName: hostpath-csi-basic
        runStrategy: Always
        template:
          metadata:
            creationTimestamp: null
            labels:
              debugLogs: "true"
              kubevirt.io/domain: vm-from-template-and-data-source-1769086906-6917074
              kubevirt.io/vm: vm-from-template-and-data-source-1769086906-6917074
          spec:
            architecture: amd64
            domain:
              devices:
                disks:
                - disk:
                    bus: virtio
                  name: dv-disk
                - disk:
                    bus: virtio
                  name: cloudinitdisk
                rng: {}
              firmware:
                serial: cecd6bf4-de90-4a2c-83d5-5378f80ce6ca
                uuid: a8b3b373-17d0-4c21-8c11-ae45beded92b
              machine:
                type: pc-q35-rhel9.6.0
              memory:
                guest: 1536Mi
              resources: {}
            volumes:
            - dataVolume:
                name: rhel9-1769086906-6746864-mig-wfl9
              name: dv-disk
            - cloudInitNoCloud:
                userData: |-
                  #cloud-config
                  chpasswd:
                    expire: false
                  password: password
                  user: cloud-user            ssh_authorized_keys:
                   [ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHc4QtjLCOOY8eJbnmtZkXCCXukVYQc05sxNnce9isIPNTf8LSaB+T5YFwxsgiOMUBrvw+wt2Tp9oglVmKVIQDCp76rLhBfHfltHVb6SeBRiq0brEcTAUzkIb/uJTlv25/TDw4bYYf+y/q/zimmHzE5dM0AE3PTkfZoVS8TyOjHl5W3dCMQARNJBvXFx+TId14xj4oh12Cw6XpdjjraFK3FzwkIPs/TZ8/DAzoYHikckVTyepy/ZvxOrDP9Vna8RCslaVcluuEqQ8ArFkH2Ui6ydUGm0uw5S/jRPXafDaS5cddJKqhT4OWbr8qEJWbgqSh6Enxs3WYcbcsJJPEvK45 root@exec1.rdocloud]
                  runcmd: ['grep ssh-rsa /etc/crypto-policies/back-ends/opensshserver.config || sudo update-crypto-policies --set LEGACY || true', "sudo sed -i 's/^#\\?PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config", 'sudo systemctl enable sshd', 'sudo systemctl restart sshd']
              name: cloudinitdisk
        updateVolumesStrategy: Migration
      status:
        conditions:
        - lastProbeTime: null
          lastTransitionTime: "2026-01-22T13:03:07Z"
          status: "True"
          type: Ready
        - lastProbeTime: null
          lastTransitionTime: null
          message: All of the VMI's DVs are bound and ready
          reason: AllDVsReady
          status: "True"
          type: DataVolumesReady
        - lastProbeTime: null
          lastTransitionTime: null
          status: "True"
          type: LiveMigratable
        - lastProbeTime: null
          lastTransitionTime: null
          status: "True"
          type: StorageLiveMigratable
        - lastProbeTime: "2026-01-22T13:03:57Z"
          lastTransitionTime: null
          status: "True"
          type: AgentConnected
        - lastProbeTime: null
          lastTransitionTime: "2026-01-22T13:04:31Z"
          message: migrate volumes
          status: "True"
          type: VolumesChange
        created: true
        desiredGeneration: 3
        observedGeneration: 2
        printableStatus: Running
        ready: true
        runStrategy: Always
        volumeSnapshotStatuses:
        - enabled: false
          name: dv-disk
          reason: 'No VolumeSnapshotClass: Volume snapshots are not configured for this
            StorageClass [hostpath-csi-basic] [dv-disk]'
        - enabled: false
          name: cloudinitdisk
          reason: Snapshot is not supported for this volumeSource type [cloudinitdisk]
        volumeUpdateState:
          volumeMigrationState:
            migratedVolumes:
            - destinationPVCInfo:
                claimName: rhel9-1769086906-6746864-mig-wfl9
                volumeMode: Filesystem
              sourcePVCInfo:
                claimName: rhel9-1769086906-6746864
                volumeMode: Block
              volumeName: dv-disk 

      VM with imported DV - succeeds

      $ oc get vm -n storage-migration-test-storage-class-migration vm-from-template-and-imported-dv-1769086907-1733487 -oyaml
      apiVersion: kubevirt.io/v1
      kind: VirtualMachine
      metadata:
        annotations:
          kubemacpool.io/transaction-timestamp: "2026-01-22T13:04:30.919352799Z"
          kubevirt.io/latest-observed-api-version: v1
          kubevirt.io/storage-observed-api-version: v1
        creationTimestamp: "2026-01-22T13:01:47Z"
        finalizers:
        - kubevirt.io/virtualMachineControllerFinalize
        generation: 3
        name: vm-from-template-and-imported-dv-1769086907-1733487
        namespace: storage-migration-test-storage-class-migration
        resourceVersion: "36375054"
        uid: 1e3a0426-7c52-4812-afda-6134990ca538
      spec:
        dataVolumeTemplates:
        - metadata:
            creationTimestamp: null
            name: dv-rhel-imported-mig-wfl9
            namespace: storage-migration-test-storage-class-migration
          spec:
            source:
              http:
                certConfigMap: artifactory-configmap
                secretRef: cnv-tests-artifactory-secret
                url: <server>/artifactory/cnv-qe-server-local/cnv-tests/rhel-images/rhel-96.qcow2
            storage:
              resources:
                requests:
                  storage: 20Gi
              storageClassName: hostpath-csi-basic
        runStrategy: Always
        template:
          metadata:
            creationTimestamp: null
            labels:
              debugLogs: "true"
              kubevirt.io/domain: vm-from-template-and-imported-dv-1769086907-1733487
              kubevirt.io/vm: vm-from-template-and-imported-dv-1769086907-1733487
          spec:
            architecture: amd64
            domain:
              devices:
                disks:
                - disk:
                    bus: virtio
                  name: dv-disk
                - disk:
                    bus: virtio
                  name: cloudinitdisk
                rng: {}
              firmware:
                serial: 120e4e93-3cf2-4a2b-80ad-9cdd71449911
                uuid: c226aad1-72be-4182-bc5f-fc930799d52e
              machine:
                type: pc-q35-rhel9.6.0
              memory:
                guest: 1536Mi
              resources: {}
            volumes:
            - dataVolume:
                name: dv-rhel-imported-mig-wfl9
              name: dv-disk
            - cloudInitNoCloud:
                userData: |-
                  #cloud-config
                  chpasswd:
                    expire: false
                  password: password
                  user: cloud-user            ssh_authorized_keys:
                   [ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHc4QtjLCOOY8eJbnmtZkXCCXukVYQc05sxNnce9isIPNTf8LSaB+T5YFwxsgiOMUBrvw+wt2Tp9oglVmKVIQDCp76rLhBfHfltHVb6SeBRiq0brEcTAUzkIb/uJTlv25/TDw4bYYf+y/q/zimmHzE5dM0AE3PTkfZoVS8TyOjHl5W3dCMQARNJBvXFx+TId14xj4oh12Cw6XpdjjraFK3FzwkIPs/TZ8/DAzoYHikckVTyepy/ZvxOrDP9Vna8RCslaVcluuEqQ8ArFkH2Ui6ydUGm0uw5S/jRPXafDaS5cddJKqhT4OWbr8qEJWbgqSh6Enxs3WYcbcsJJPEvK45 root@exec1.rdocloud]
                  runcmd: ['grep ssh-rsa /etc/crypto-policies/back-ends/opensshserver.config || sudo update-crypto-policies --set LEGACY || true', "sudo sed -i 's/^#\\?PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config", 'sudo systemctl enable sshd', 'sudo systemctl restart sshd']
              name: cloudinitdisk
        updateVolumesStrategy: Migration
      status:
        conditions:
        - lastProbeTime: null
          lastTransitionTime: "2026-01-22T13:05:14Z"
          status: "True"
          type: Ready
        - lastProbeTime: null
          lastTransitionTime: null
          message: All of the VMI's DVs are bound and ready
          reason: AllDVsReady
          status: "True"
          type: DataVolumesReady
        - lastProbeTime: null
          lastTransitionTime: null
          message: 'cannot migrate VMI: PVC dv-rhel-imported-mig-wfl9 is not shared, live
            migration requires that all PVCs must be shared (using ReadWriteMany access
            mode)'
          reason: DisksNotLiveMigratable
          status: "False"
          type: LiveMigratable
        - lastProbeTime: null
          lastTransitionTime: null
          status: "True"
          type: StorageLiveMigratable
        - lastProbeTime: "2026-01-22T13:03:49Z"
          lastTransitionTime: null
          status: "True"
          type: AgentConnected
        created: true
        desiredGeneration: 3
        observedGeneration: 2
        printableStatus: Running
        ready: true
        runStrategy: Always
        volumeSnapshotStatuses:
        - enabled: false
          name: dv-disk
          reason: 'No VolumeSnapshotClass: Volume snapshots are not configured for this
            StorageClass [hostpath-csi-basic] [dv-disk]'
        - enabled: false
          name: cloudinitdisk
          reason: Snapshot is not supported for this volumeSource type [cloudinitdisk]
        volumeUpdateState:
          volumeMigrationState:
            migratedVolumes:
            - destinationPVCInfo:
                claimName: dv-rhel-imported-mig-wfl9
                volumeMode: Filesystem
              sourcePVCInfo:
                claimName: dv-rhel-imported
                volumeMode: Block
              volumeName: dv-disk 

       

      Checked with MTC - (MTC version released about half a year ago)

      OCS -> HPP is working for all VMs (only had 4.20 env for that, not 4.21)

              akalenyu Alex Kalenyuk
              jpeimer@redhat.com Jenia Peimer
              Jenia Peimer Jenia Peimer
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated: