如何给openstack添加一个cdrom,并且可以实现热插拔?

如何给openstack添加一个cdrom,并且可以实现热插拔

参与13

3同行回答

大天使之剑大天使之剑售前技术支持杭州才云科技
最傻瓜的方法,写一个cdrom的xml文件使用virsh 命令挂载在对应的虚拟机上显示全部

最傻瓜的方法,写一个cdrom的xml文件
使用virsh 命令挂载在对应的虚拟机上

收起
互联网服务 · 2018-09-21
浏览4530
GaryyGaryy系统工程师某保险
在Libvirt里处理尝试了以下有几种方法,为虚拟机加载光盘文件:1.使用ide方式挂载:virsh attach-disk {instance_name} {iso_path} hda --sourcetype block --driver qemu --subdriver raw --type cdromxml格式如下:<disk type='block' device='cdrom'> <driver nam...显示全部

在Libvirt里处理
尝试了以下有几种方法,为虚拟机加载光盘文件:
1.使用ide方式挂载:
virsh attach-disk {instance_name} {iso_path} hda --sourcetype block --driver qemu --subdriver raw --type cdrom
xml格式如下:
<disk type='block' device='cdrom'>
<driver name='qemu' type='raw'/>
<source dev='{iso_path}'/>
<target dev='hda'/>
</disk>

2.使用iscsi方式挂载
virsh attach-disk {instance_name} {iso_path} sda --sourcetype block --driver qemu --subdriver raw --type cdrom
xml格式如下:
<disk type='block' device='cdrom'>
<driver name='qemu' type='raw'/>
<source dev='/var/lib/nova/instances/virtio-win-0.1-100.iso'/>
<target dev='sda'/>
</disk>

以上两种方法的区别就在于设备的驱动类型,使用hd×盘符挂载,挂载之后的设备会默认认为是ide设备,而使用sd×盘符挂载,会默认认为是scsi设备。由于有些windows镜像缺少scsi驱动无法识别使用sd×盘符挂载的光驱设备,所以选择了hd×盘符来挂载光驱设备。然后ide同样存在问题,ide设备是不支持热拔插的:
virsh attach-disk {instance_name} {iso_path} hda
error: Failed to attach disk
error: Operation not supported: disk bus 'ide' cannot be hotplugged.
如果给这个光驱设备写一个空的source_path,挂载时只要替换这个source_path的值,它就不会认为这是一个拔插动作。
virsh domblklist {instance_name}

Target Source

vda {volume_path}
vdb {volume_path}
hdb -

virsh attach-disk {instance_name} {iso_path} hdb --sourcetype block --driver qemu --subdriver raw --type cdrom
Disk attached successfully

virsh domblklist {instance_name}

Target Source

vda {volume_path}
vdb {volume_path}
hdb {iso_path}

3.在nova里处理
在nova里要做的就是给虚拟机添加一个光驱设备,并给予这个光驱设备一个空的默认路径。虚拟机磁盘设备的xml加工是在nova.virt.libvirt.driver.py中完成的。
磁盘设备的xml类是nova.virt.libvirt.config.py中的LibvirtConfigGuestDisk类,可以根据它的属性来创建一个新的实例。
这里加入了一个判定条件用于更灵活地控制这个设备是否开启,判定的依据是flavor的extra_specs中的hw_set_cdrom属性。

收起
保险 · 2018-09-25
Henry2017Henry2017研发工程师金融行业
可以把iso先导入到volume,然后启动虚机时候挂上该volume,type选择cdrom即可,参考命令行如下:--block-device id=volume_id,source=volume,dest=volume,bus=ide,device=/dev/vdb,size=5,type=cdrom显示全部

可以把iso先导入到volume,然后启动虚机时候挂上该volume,type选择cdrom即可,参考命令行如下:
--block-device id=volume_id,source=volume,dest=volume,bus=ide,device=/dev/vdb,size=5,type=cdrom

收起
金融其它 · 2018-09-21
浏览4333

提问者

lixiang11
系统运维工程师华晟经世

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2018-09-21
  • 关注会员:3 人
  • 问题浏览:6074
  • 最近回答:2018-09-25
  • X社区推广