Hi ZHOU,
如果我先stop虚拟机,再挂载volume,然后再启动虚拟机,那么一切都ok的。就是不能在虚拟机运行的时候挂载。或者我虚拟机第一次启动的时候,我挂载上去,那也是ok的,但是我卸载掉volume然后再挂载,那就会报错“Duplicate
ID 'virtio-disk1”。
我通过libvirt来查看VM 的XML信息如下:
root@openstack-server-1:/usr/bin# virsh dumpxml i-2-3-VM
<domain type='kvm' id='11'>
<name>i-2-3-VM</name>
<uuid>3bec686e-ccfb-4cfd-ab0f-c709b8802f04</uuid>
<description>Ubuntu 12.04 (64-bit)</description>
<memory>524288</memory>
<currentMemory>524288</currentMemory>
<vcpu>1</vcpu>
<cputune>
<shares>500</shares>
</cputune>
<os>
<type arch='x86_64' machine='pc-1.0'>hvm</type>
<boot dev='cdrom'/>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/bin/kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source
file='/mnt/d15f1dda-469f-31b1-a760-a3f477b6903e/ebe08b1d-91d2-4d38-b034-f65041b415a2'/>
<target dev='vda' bus='virtio'/>
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04'
function='0x0'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw' cache='none'/>
<target dev='hdc' bus='ide'/>
<readonly/>
<alias name='ide0-1-0'/>
<address type='drive' controller='0' bus='1' unit='0'/>
</disk>
<controller type='ide' index='0'>
<alias name='ide0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01'
function='0x1'/>
</controller>
<interface type='bridge'>
<mac address='06:23:76:00:00:0d'/>
<source bridge='cloudbr0'/>
<target dev='vnet9'/>
<model type='virtio'/>
<bandwidth>
<inbound average='25600' peak='25600'/>
<outbound average='25600' peak='25600'/>
</bandwidth>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03'
function='0x0'/>
</interface>
<serial type='pty'>
<source path='/dev/pts/6'/>
<target port='0'/>
<alias name='serial0'/>
</serial>
<console type='pty' tty='/dev/pts/6'>
<source path='/dev/pts/6'/>
<target type='serial' port='0'/>
<alias name='serial0'/>
</console>
<input type='tablet' bus='usb'>
<alias name='input0'/>
</input>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='5903' autoport='yes'/>
<video>
<model type='cirrus' vram='9216' heads='1'/>
<alias name='video0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02'
function='0x0'/>
</video>
<memballoon model='virtio'>
<alias name='balloon0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05'
function='0x0'/>
</memballoon>
</devices>
</domain>
里面只有virtio-disk0没有virtio-disk1啊!
谢谢
DuJun
在 2013年11月25日下午4:41,Wei ZHOU <[email protected]>写道:
> 之前有过挂载、卸载的操作吗?
> virsh dumpxml出来的文件里面有virtio-disk1吗?
>
> 有条件试试虚拟机OS是centos6或者rhel6的情况。
> 我记得linux kernel 3.*带的udev里面有个bug
>
>
> 在 2013年11月24日下午1:38,Du Jun <[email protected]>写道:
>
> > Hi ZHOU,
> > 目前我的虚拟机还没有挂额外数据盘,物理机qemu版本1.0,libvirt版本0.9.8,虚拟机OS时ubuntu 12.04.
> >
> > Does these matters?
> >
> > ----
> > Best regards,
> > DuJun
> >
> > 2013/11/24, Wei ZHOU <[email protected]>:
> > > 你挂了几个盘?你的物理机的QEMU和LIBVIRT是什么版本,虚拟机用的什么OS
> > >
> > > 2013/11/23, Du Jun <[email protected]>:
> > >> Hi all,
> > >> 我在为虚拟机绑定磁盘的时候碰到了一个问题,log信息如下:
> > >> 2013-11-23 18:04:03,155 DEBUG [cloud.async.AsyncJobManagerImpl]
> > >> (Job-Executor-57:job-81 = [ 260b8d64-570d-4469-92c6-f27d887955b0 ])
> > >> Complete async job-81 = [ 260b8d64-570d-4469-92c6-f27d887955b0 ],
> > >> jobStatus: 2, resultCode: 530, result: Error Code: 530 Error text:
> > >> Failed to attach volume: volume-a4903396-ca1b-48a9-838d-e82dbd190932
> > >> to VM: basic-inception-vm; org.libvirt.LibvirtException: internal
> > >> error unable to execute QEMU command 'device_add': Duplicate ID
> > >> 'virtio-disk1' for device
> > >> 提示信息说:“Duplicate ID 'virtio-disk1' for
> > >> device”,我就迷惑了,数据磁盘在我的主存储里面是独一无二的呀,求解释,求说明!谢谢!
> > >>
> > >> ----
> > >> Best regards,
> > >> DuJun
> > >>
> > >
> >
>