--- Begin Message ---
Thanks for these details.

What is the best way to find out the node name that can be used to run QMP 
commands like creating bitmap, etc.? I see query-block also returns the 
node-name (like pasted below), but not sure whether that is the best way. 

"children": [
     {
        "node-name": "f28e80d2536d4487e79d509aca760a0",
        "child": "file"
    }
],

Thanks
Prashant

-----Original Message-----
From: DERUMIER, Alexandre <alexandre.derum...@groupe-cyllene.com> 
Sent: 23 September 2025 20:29
To: pve-devel@lists.proxmox.com; Prashant Patil <prashant.gamepa...@arctera.io>
Subject: Re: Unable to create persistent dirty-bitmap

>>The qcow2 disk is at scsi0 slot, hence I think that is the correct 
>>node. Please let me know if otherwise.

I mean, It's not about slot, it's about blockdev graph (since pve9 + machine 
version >= 10, we use the qemu blockdev, and it's a graph of
nodes)


Maybe this with machine version 9, it could work with drive-scsi0,

but since machine version 10, you need to find the "node" in the blockdev graph

(you can use ps -aux to see the current qemu command line, to find the 
node-name starting with "f" letter)

see me previous example:

 -blockdev '{"driver":"throttle","file":{"cache":{"direct":true,"no-
flush":false},"driver":"qcow2","file":{"aio":"io_uring","cache":{"direc

t":true,"no-flush":false},"detect-
zeroes":"unmap","discard":"unmap","driver":"file","filename":"/var/lib/

vz/images/8006/vm-8006-disk-0.qcow2","node-
name":"edd19f6c1b3a6d5a6248c3376a91a16","read-only":false},"node-
name":"fdd19f6c1b3a6d5a6248c3376a91a16","read-only":false},"node-
name":"drive-virtio0","throttle-group":"throttle-drive-virtio0"}'


the nodename is generate with:

https://git.proxmox.com/?p=qemu-server.git;a=blob;f=src/PVE/QemuServer/Blockdev.pm;h=8e6749e8be166dae0446fa162247ee1f4ce0272d;hb=HEAD

 114 my sub get_node_name {
 115     my ($type, $drive_id, $volid, $options) = @_;
 116 
 117     return fleecing_node_name($type, $drive_id) if $options-
>{fleecing};
 118     return tpm_backup_node_name($type, $drive_id) if $options-
>{'tpm-backup'};
 119 
 120     my $snap = $options->{'snapshot-name'};
 121 
 122     my $info = "drive=$drive_id,";
 123     $info .= "snap=$snap," if defined($snap);
 124     $info .= "volid=$volid";
 125 
 126     my $hash = substr(Digest::SHA::sha256_hex($info), 0, 30);
 127 
 128     my $prefix = "";
 129     if ($type eq 'alloc-track') {
 130         $prefix = 'a';
 131     } elsif ($type eq 'file') {
 132         $prefix = 'e';
 133     } elsif ($type eq 'fmt') {
 134         $prefix = 'f';
 135     } elsif ($type eq 'zeroinit') {
 136         $prefix = 'z';
 137     } else {
 138         die "unknown node type '$type'";
 139     }
 140     # node-name must start with an alphabetical character
 141     return "${prefix}${hash}";
 142 }

--- End Message ---
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to