[pve-devel] [PATCH qemu-server 01/13] blockdev: cmdline: add blockdev syntax support
DERUMIER, Alexandre
alexandre.derumier at groupe-cyllene.com
Thu Jun 5 16:39:48 CEST 2025
Am 03.06.25 um 09:55 schrieb Alexandre Derumier via pve-devel:
> +sub encode_nodename {
> + my ($type, $volid, $snap) = @_;
> +
> + my $nodename = "$volid";
> + $nodename .= "-$snap" if $snap;
This will lead to clashes in some cases:
>>1. Currently, we allow attaching the same volume multiple times to a
>>single guest.
do you mean, manually with editing the vm configuration ? What is the
usecase ? (I mean, without breaking the fs because the drive could be
mounted twice )
(the vm will not start if node-name is duplicated, so it's look more
secure now ^_^)
>>2. You can end up with the same name for
>>volname = vm-1234-disk-0-foo
>>and for
>>volname = vm-1234-disk-0, snap = foo
>>
>>The latter can be rather easily fixed by just using a character we
>>don't
>>usually support for volume names, but not the former.
we could also generate the full path= , and encode it
>> So I'd like to do
>>the switch to -blockdev without support for "looking up which node a
>>certain volume is" at first.
yes, if you find a way to do it , could be better !
>>In general, I feel like mixing the switch
>>to -blockdev with your larger series is too much at once.
>>We should
>>first get the switch to -blockdev completely and cleanly sorted out,
>>then we can add your external qcow2 support on top.
yes sure. (the qcow2 snap are only the last 2 patches anyway, and they
still are a lot of work on the backup side, but I really don't known
how the specific proxmox patches are working , so help is welcome ;)
>>I think we can even rely on auto-generated-by-QEMU node names at
>>first.
The main blocking problem is that auto-generated #block name are not
working with some block action. (if I remember, the drive-reopen wasn't
working correctly, so this was a blocker for snapshots).
I need to retest because in early patches, I was reopening the file
node, and now the format-node, so maybe the behaviour is different now
They are also different behaviour is node-name are defined or notto the
command-line on blockdev-remove. (for example, sometime you remove the
top-node, the format+file node can be autoremove or not, also the
backing chain)
I really don't known if it's qemu bug or not. (I don't have digged the
qemu code)
>>We can later switch to a variant where node names encode additional
>>information. Or we could also think about patching QEMU to better fit
>>the need for the "looking up which node a certain volume is" feature.
>>But I don't think figuring this out should block us right now for the
>>switch to "-blockdev".
you are better than me for this, my C skill is pretty poor ^_^
>>I'll try to work out a series that focuses just on the switch to
>>"-blockdev" based on your patches during the next week or so. Maybe
>>not
>>much else needs to be changed :) The work is certainly greatly
>>appreciated!
Great! Tell me if it needed testing. (my patches should cover all basic
actions excluding backup)
I'm currently working to add tests for all live action
(hotplug/unplug,cdeject,mirror,snap,...but until it's done, I can help
with manually testing.
I'll be on holiday from arund 15th July (for 3 weeks),but until that
I'm also full-time free to work on it and help.
Alexandre
More information about the pve-devel
mailing list