Windows VM pauses with I/O error when using ACPI MSDM secret volume under disk load

48 views
Skip to first unread message

binbin yang

unread,
Jan 22, 2026, 4:53:00 PMJan 22
to kubevirt-dev
Environment
  • KubeVirt on single-node kubernetes Talos Linux bare-metal device
  • Windows VM (UEFI / OVMF)
  • ACPI MSDM used for Windows activation
  • Storage:
    • DataVolume (PVC)
    • hostDisk volumes
  • KubeVirt version: 1.6.3
  • QEMU/libvirt via virt-launcher

Configuration

Virtualmachine.yaml
spec:
  dataVolumeTemplates:
    - metadata:
        annotations:
          user.custom.annotation/storage.thick-provisioned: 'true'
      spec:
        preallocation: true
        pvc:
          accessModes:
            - ReadWriteOnce
          resources:
            requests:
              storage: 150Gi
  template:
    spec:
      architecture: amd64
      domain:
        devices:
          disks:
            - disk:
                bus: virtio
              name: datavolume
        features:
          acpi: {}
          hypervPassthrough:
            enabled: true
        firmware:
          acpi:
            msdmNameRef: secret-msdm
          bootloader:
            efi:
              secureBoot: false
      volumes:
        - name: secret-msdm
          secret:
            secretName: secret-msdm
        - dataVolume:
            name: data
          name: datavolume

Virtualmachineinstance.yaml 
spec:
  architecture: amd64
  domain:
    devices:
      disks:
        - disk:
            bus: virtio
          name: datavolume
        - disk:
            bus: sata
          name: secret-msdm
    features:
      acpi:
        enabled: true
      hypervPassthrough:
        enabled: true
    firmware:
      acpi:
        msdmNameRef: secret-msdm
      bootloader:
        efi:
          secureBoot: false
  volumes:
    - name: secret-msdm
      secret:
        secretName: secret-msdm
    - dataVolume:
        name: data
      name: datavolume

 The MSDM secret is exposed as a Sata Disk by Kubevirt. Kubevirt admission webhook requires the MSDM volume to exist, so the secret volume cannot be removed.

Problem

When running disk-intensive workloads inside the Windows VM, The VM consistently transitions to Paused state

Virt-handler logs show:

name=windows kind=VirtualMachineInstance objectAPIversion=kubevirt.io/v1 reportingcontroller=virt-handler sourcecomponent=virt-handler reason=IOerror type=Warning count=1 msg="VM Paused due to IO error at the volume: secret-msdm"

Virt-launcher logs show:


{"component":"virt-launcher","level":"warning","msg":"Transitioned guest windows-deployment to paused state due to IO error","pos":"qemuProcessHandleIOError:886","subcomponent":"libvirt"}

My knowledge of the internals of KubeVirt, QEMU, and ACPI handling is limited, and I may be missing important details about the intended design or correct configuration. If someone could give me some guidance on what maybe the problem and how to fix it, that would be much appreciated


Michael Henriksen

unread,
Jan 28, 2026, 2:32:12 PM (10 days ago) Jan 28
to binbin yang, kubevirt-dev
Hi, have you tried virtio bus for secret-msdm volume? I suggest opening a github issue for more visibility.

--
You received this message because you are subscribed to the Google Groups "kubevirt-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kubevirt-dev...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/kubevirt-dev/506e818b-f011-4b69-9741-4efb29fb9f8fn%40googlegroups.com.

Victor Toso

unread,
Feb 3, 2026, 7:06:06 AM (5 days ago) Feb 3
to binbin yang, kubevirt-dev
Hi,
That's unexpected. The main usage of the Secret is to set ACPI
table. It isn't required to mount it as anything to the Guest. I
don't think that setting libvirt's ACPI would create a Sata Disk
(without KubeVirt).

I think what you see is a bug. Another part of KubeVirt sees the
Secret and proceeds to handle it as volume to be mounted in the
guest.

Thanks for raising this. I'll take a look this week. Let me know
if you did open an issue for this already.

Cheers,
Victor

> Problem
>
> When running disk-intensive workloads inside the Windows VM, The VM
> consistently transitions to Paused state
>
> Virt-handler logs show:
>
> name=windows kind=VirtualMachineInstance objectAPIversion=kubevirt.io/v1
> reportingcontroller=virt-handler sourcecomponent=virt-handler reason=IOerror
> type=Warning count=1 msg="VM Paused due to IO error at the volume: secret-msdm"
>
> Virt-launcher logs show:
>
>
> {"component":"virt-launcher","level":"warning","msg":"Transitioned guest
> windows-deployment to paused state due to IO error","pos":
> "qemuProcessHandleIOError:886","subcomponent":"libvirt"}
>
> My knowledge of the internals of KubeVirt, QEMU, and ACPI handling is limited,
> and I may be missing important details about the intended design or correct
> configuration. If someone could give me some guidance on what maybe the problem
> and how to fix it, that would be much appreciated
>
>
signature.asc
Reply all
Reply to author
Forward
0 new messages