Skip to content

ZVOL data corruption with zvol_use_blk_mq=1 #15351

Closed
@darkbasic

Description

@darkbasic

System information

Type Version/Name
Distribution Name Arch Linux
Distribution Version
Kernel Version 6.6.0-rc4
Architecture amd64
OpenZFS Version git branch zfs-2.2-release (229ca7d) + 6.6 compatibility patches

Describe the problem you're observing

Installing a distro in virt-manager leads to an unbootable virtual machine if the storage is backed by ZVOLs.
I'm using zvol_use_blk_mq=1 but I'm not sure if this is the culprit because I didn't try disabling it yet.
I've just tried with zvol_use_blk_mq=0 and it works flawlessly so the culprit is definitely zvol_use_blk_mq=1

This is the libvirt disk:

<disk type="block" device="disk">
  <driver name="qemu" type="raw" cache="none" error_policy="stop" discard="unmap" io="native"/>
  <source dev="/dev/zvol/rpool/zvols/ubuntu-23.10"/>
  <blockio physical_block_size='16384'/>
  <target dev="vda" bus="virtio"/>
  <boot order="2"/>
</disk>

Describe how to reproduce the problem

Download latest snapshot of ubuntu 23.10.
Create a vol:

zfs create -s -V 100G -o compression=lz4 rpool/zvols/ubuntu-23.10

Install ubuntu in the zvol using virt-manager.
Reboot the vm and watch it failing to boot:

image

Using raw images instead leads to a perfectly bootable system.

Include any warning/errors/backtraces from the system logs

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions