[libvirt] PATCH: Support setting a disk drive serial (number)
Daniel P. Berrange
berrange at redhat.com
Mon Aug 17 18:50:28 UTC 2009
On Mon, Aug 17, 2009 at 02:37:48PM -0400, Dave Allan wrote:
> Daniel P. Berrange wrote:
> >All hard disks (IDE, SCSI, USB, VirtIO) have a concept of a serial number
> >which is intended to uniquely identify them. If you mean this off, QEMU
> >just makes up a serial on the fly. THis is not guarenteed to be stable
> >across guest reboots with hardware changes. It is thus desirable to be
> >able to specify this in libvirt XML. To that end, this patch allows
> >for a <serial> element inside a disk
> >
> > <disk type='file' device='disk'>
> > <source
> > file='/media/lacie-500-disk-2/virtual-machines/scratch5.img'/>
> > <target dev='vda' bus='virtio'/>
> > <serial>dan123virtio</serial>
> > </disk>
> >
> >the contents is free-form. It implemenmts this for the QEMU driver for
> >any disk using -drive style args. Unfortunately this excludes USB disk,
> >even though internally QEMU can set a serial for these, the -usbdevice
> >syntax does not allow it
> >
> >Daniel
> >
> >* docs/schemas/domain.rng: Add <serial> element to disks
> >* src/domain_conf.h, src/domain_conf.c: XML parsing and
> > formatting for disk serial numbers
> >* src/qemu_conf.c: Set serial number when launching guests
> >* tests/qemuxml2argvdata/qemuxml2argv-disk-drive-shared.args,
> > tests/qemuxml2argvdata/qemuxml2argv-disk-drive-shared.xml: Add
> > serial number to XML test
[snip]
> This patch seems like a very good idea to me. I'm surprised it doesn't
> cause more grief if the serial # keeps changing. I didn't review the
> code too closely, but a definite ACK to the functionality, and I saw no
> problems with the implementation in the quick look I took.
Well it causes grief for Windows guests with WHQL'd virtio drivers I
believe. We've probably just been fortunate with Linux guests that not
much functional stuff is based off the serial number. The serial number
is used for /dev/disk/by-id symlinks, but most distros use /dev/disk/by-uuid
symlinks for mounting volume instead and that's based off a filesystem
level UUID, instead of block device level serial.
> As a possible additional feature, in the case of an entire device being
> assigned to the guest, have you considered passing through the serial of
> the underlying device? The serial is available in the nodedev XML.
That's a policy decision, and so not within scope of libvirt. Of course
the application provisioning a new guest can see the host device's
serial, and copy that across to the guest XML it uses if desired.
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the libvir-list
mailing list