Hi,

Actually, the serial is not there :)

root@ubuntu:/sys/class/block/vdi# fdisk -l

Disk /dev/vda: 7516 MB, 7516192768 bytes
4 heads, 32 sectors/track, 114688 cylinders
Units = cylinders of 128 * 512 = 65536 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000bb520

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *          17      114688     7339008   83  Linux

Disk /dev/vdi: 1073 MB, 1073741824 bytes
16 heads, 63 sectors/track, 2080 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x525f45d3

   Device Boot      Start         End      Blocks   Id  System
/dev/vdi1               1        2080     1048288+  83  Linux


root@ubuntu:/sys/class/block/vdi# ls -al
total 0
drwxr-xr-x 8 root root    0 2013-04-08 21:51 .
drwxr-xr-x 3 root root    0 2013-04-08 21:51 ..
-r--r--r-- 1 root root 4096 2013-04-08 21:51 alignment_offset
lrwxrwxrwx 1 root root    0 2013-04-08 21:51 bdi -> ../../../../../virtual/bdi/252:128
-r--r--r-- 1 root root 4096 2013-04-08 21:51 capability
-r--r--r-- 1 root root 4096 2013-04-09 13:09 dev
lrwxrwxrwx 1 root root    0 2013-04-08 21:51 device -> ../../../virtio9
-r--r--r-- 1 root root 4096 2013-04-08 21:51 ext_range
drwxr-xr-x 2 root root    0 2013-04-08 21:51 holders
-r--r--r-- 1 root root 4096 2013-04-08 21:51 inflight
drwxr-xr-x 2 root root    0 2013-04-08 21:51 power
drwxr-xr-x 3 root root    0 2013-04-08 21:51 queue
-r--r--r-- 1 root root 4096 2013-04-08 21:51 range
-r--r--r-- 1 root root 4096 2013-04-08 21:51 removable
-r--r--r-- 1 root root 4096 2013-04-08 21:51 ro
-r--r--r-- 1 root root 4096 2013-04-08 21:51 size
drwxr-xr-x 2 root root    0 2013-04-08 21:51 slaves
-r--r--r-- 1 root root 4096 2013-04-08 21:51 stat
lrwxrwxrwx 1 root root    0 2013-04-08 21:51 subsystem -> ../../../../../../class/block
drwxr-xr-x 2 root root    0 2013-04-08 21:51 trace
-rw-r--r-- 1 root root 4096 2013-04-08 21:51 uevent
drwxr-xr-x 5 root root    0 2013-04-08 21:51 vdi1


(root@h2)-(/var/log/libvirt/qemu)# virsh dumpxml vps_99
<domain type='kvm' id='231'>
  <name>vps_99</name>
  <uuid>8d19d3a4-f1b4-1030-ac57-0050560018a2</uuid>
  <memory>1048576</memory>
  <currentMemory>1048576</currentMemory>
  <vcpu>2</vcpu>
  <os>
    <type arch='x86_64' machine='pc-0.12'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <clock offset='utc'/>
  <on_poweroff>restart</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw'/>
      <source dev='/dev/nbd1'/>
      <target dev='vda' bus='virtio'/>
    </disk>
    <disk type='block' device='disk'>
      <driver name='phy' type='raw'/>
      <source dev='/dev/nbd2'/>
      <target dev='vdb' bus='virtio'/>
      <serial>my-fake-serial</serial>
    </disk>
    <interface type='bridge'>
      <mac address='00:50:56:00:1b:24'/>
      <source bridge='br0'/>
      <target dev='vnet3'/>
      <model type='virtio'/>
    </interface>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='5999' autoport='no' keymap='en-us'/>
    <video>
      <model type='cirrus' vram='9216' heads='1'/>
    </video>
  </devices>
  <seclabel type='dynamic' model='apparmor'>
    <label>libvirt-8d19d3a4-f1b4-1030-ac57-0050560018a2</label>
    <imagelabel>libvirt-8d19d3a4-f1b4-1030-ac57-0050560018a2</imagelabel>
  </seclabel>
</domain>


Btw, as you can see in the XML, libvirt and/or KVM is completely ignoring my target="vdb" and attaches the drive to "/dev/vdi" inside the virtual server.

(root@h2)-(/)# virsh --version
0.7.5

(root@h2)-(/)# kvm --version
QEMU PC emulator version 0.12.3 (qemu-kvm-0.12.3), Copyright (c) 2003-2008 Fabrice Bellard

The log-file only shows the command used to start the virtual server. It does not contain any of the commands I used to attache the additional disk.

Regards,
Daniele


2013/4/9 Martin Kletzander <mkletzan@redhat.com>
On 04/08/2013 11:58 PM, Daniele Testa wrote:
> Hi,
>
> I am adding a disk to my KVM virtual server, but for some reason it refuses
> to honor the <address>
>
> I have tried the following 3:
>
>     <disk type='block' device='disk'>
>       <driver name='phy' type='raw'/>
>       <source dev='/dev/nbd2'/>
>       <target dev='vdb' bus='virtio'/>
>       <serial>my-fake-serial</serial>
>       <address type='drive' controller='0' bus='1' target='3' unit='2'/>
>     </disk>
>
>
>     <disk type='block' device='disk'>
>       <driver name='phy' type='raw'/>
>       <source dev='/dev/nbd2'/>
>       <target dev='vdb' bus='virtio'/>
>       <serial>my-fake-serial</serial>
>       <address type='pci' bus='0x00' slot='0x08' function='0x0'/>
>     </disk>
>
>
>     <disk type='block' device='disk'>
>       <driver name='phy' type='raw'/>
>       <source dev='/dev/nbd2'/>
>       <target dev='vdb' bus='virtio'/>
>       <serial>my-fake-serial</serial>
>       <address type='virtio-serial' controller='0' bus='0' port='8'/>
>     </disk>
>
> I would assume the last one is the one to use, as I am using a "virtio"
> bus. However, the <address> attribute is simply ignored and the disk is
> always attached as this:
>
> pci-0000:00:05.0
>
> Further, how do I read the "my-fake-serial" from within the virtual machine?
>

The serial for vdb for example is in /sys/class/block/vdb/serial

I know I haven't helped with the addresses, don't know much about that,
but try attaching your libvirt version and the log of
/var/log/libvirt/qemu/<machine_name>.log.
I'll see when I'll get to you.  Maybe somebody will found out in the
meantime.  If not, feel free to create a bug for this.

Martin