kvm虚拟机映射磁盘设备

需求:使用openstack云主机+EMC存储实现oracle RAC

分析:由于openstack的磁盘设备由cinder管理,目前cinder同一个卷不支持同时连接到多台云主机,事实上其他公有云上的云磁盘也暂时不支持。故不能通过cinder添加磁盘到云主机。

临时解决方案:

手动把宿主机的磁盘(使用了multipath映射EMC存储)映射到kvm虚拟机上,命令如下:

virsh list
virsh attach-disk instance-xxxxxxxx /dev/mapper/mpatha sda --sourcetype block  --driver qemu
virsh attach-disk instance-xxxxxxxx /dev/mapper/mpathb sdb --sourcetype block  --driver qemu
...

磁盘在云主机中映射的名称由顺序决定(sdx),与映射时候指定的名称无关,但取消映射时候的名称需要与映射时候指定的名称一致,或者使用块设备路径,取消映射命令如下:

virsh detach-disk instance-xxxxxxxx [ sda | /dev/mapper/mpatha ]

以上操作是临时生效,重启云主机后即失效,如果是单独使用kvm(不使用openstack管理)的话可以写入到永久配置,通过dumpxml可以看到映射部分的配置,把配置写入配置文件中保存:

virsh edit instance-xxxxxxxx

在</disk>和<conntroller>之间插入以下内容:

<disk type=‘block‘ device=‘disk‘>
  <driver name=‘qemu‘ type=‘raw‘/>
  <source dev=‘/dev/mapper/mpatha‘/>
  <backingStore/>
  <target dev=‘sda‘ bus=‘scsi‘/>
  <alias name=‘scsi0-0-0-0‘/>
  <address type=‘drive‘ controller=‘0‘ bus=‘0‘ target=‘0‘ unit=‘0‘/>
</disk>
<disk type=‘block‘ device=‘disk‘>
  <driver name=‘qemu‘ type=‘raw‘/>
  <source dev=‘/dev/mapper/oggvg-ogglv‘/>
  <backingStore/>
  <target dev=‘sdb‘ bus=‘scsi‘/>
  <alias name=‘scsi0-0-0-1‘/>
  <address type=‘drive‘ controller=‘0‘ bus=‘0‘ target=‘0‘ unit=‘1‘/>
</disk>
<controller type=‘scsi‘ index=‘0‘>
  <alias name=‘scsi0‘/>
  <address type=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x06‘ function=‘0x0‘/>
</controller>

保存退出,通过virsh命令关闭再启动虚拟机,不能在虚拟机中重启也不能用virsh reboot

virsh destroy instance-xxxxxxxx
virsh list --all
virsh start instance-xxxxxxxx

使用openstack管理的kvm虚拟机不能使用此方法是因为一旦通过openstack启动/重启虚拟机都会重新生成xml配置文件(rpm安装默认路径为/etc/libvirt/qemu/instance-xxxxxxxx.xml)导致配置失效。除非之后都没有通过openstack启动/重启该虚拟机。

修改openstack中云主机配置文件注意事项:

若云主机本身是关机状态,virsh start云主机会在nova-compute同步主机状态时根据数据库状态把云主机关闭,所以不能在云主机关闭状态下修改。

若云主机本身是开机状态,virsh destroy云主机则会在nova-compute同步主机状态时修改数据库状态,但再次virsh start云主机也会被关机。(实验证明即使在同步时间间隙里操作也会导致云主机最终被关闭)

避免nova-compute关闭云主机:修改时候关闭nova-compute服务,确认云主机启动成功后再启动nova-compute服务。

时间: 2024-11-05 22:46:31

kvm虚拟机映射磁盘设备的相关文章

KVM 虚拟机增加磁盘

背景: 由于在KVM虚机上做glusterfs测试,发现KVM虚拟存储空间不够. 思路:创建一个kvm img 文件指定大小200G,然后通过Virtual Machine Manager导入到对应的虚拟机 步骤: 这里以虚拟机vm2为例 创建kvm img [[email protected] 2]cd /d1/virtual_machine/vm/2  #进入虚机文件目录 [[email protected] 2]# qemu-img create vm2-1.img 200G Format

kvm虚拟机扩展磁盘空间

kvm虚拟机磁盘空间扩展与xen虚拟机磁盘空间扩展思路一致.原因在于xen/kvm默认的虚拟机磁盘格式为raw,所以方式可以通用. raw磁盘格式扩展思路如下 (1) 新添加一块raw格式的磁盘加入到KVM虚拟机,然后通过虚拟机系统lvm逻辑卷管理方式进行管理,扩展磁盘空间. (2) 直接通过dd命令扩展现有虚拟机磁盘大小,扩展之后,原磁盘大小增大,进入虚拟机系统后,直接通过fdisk分区新添加的空间,然后将该分区并入lvm逻辑卷中,扩大磁盘空间. xen虚拟化实战系列(四)之xen虚拟机扩展磁

virsh命令添加kvm虚拟机共享磁盘

在使用kvm虚拟机的时候,有时候部署一些应用如Oracle RAC.corosync等高可用的时候,往往会用到共享硬盘.比如本人在部署corosync+mysql高可用的时候就遇到了一些小问题(像我们这种折腾达人,肯定不会用nfs做共享存储),因此记录一下. 环境: 宿主机当然是linux,否则也用不到kvm 没有图形界面,否则直接virt-manager也很快.. 操作过程 新建一块虚拟盘 [email protected]:~# qemu-img -f raw shared.img 10G要

kvm虚拟机扩展磁盘容量

virt-resize扩展 #关闭kvm虚拟机virsh shutdown testkvm2#安装工具yum install -y libguestfs-tools#查看磁盘文件位置virsh edit testkvm2#查看磁盘分区信息virt-filesystems --partitions --long -a /var/lib/libvirt/images/testkvm2.qcow2#创建新的磁盘文件qemu-img create -f qcow2 /var/lib/libvirt/im

KVM虚拟机添加磁盘

未添加硬盘之前,到虚拟机中查看 fdisk -l ,确定只有一块vda [[email protected]01 rules.d]# fdisk -l 磁盘 /dev/vda:53.7 GB, 53687091200 字节,104857600 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000b337a 设备 B

更改kvm虚拟机磁盘大小

kvm 虚拟机的磁盘大小可通过命令:qemu-img resize filename size 来改,要注意的是resize只支持raw格式的磁盘文件,如果想更改qcow2等格式的磁盘大小,需先用qemu-img convert 转换磁盘格式后才能更改大小:另外,用命令改完大小后需重启kvm虚拟机,系统才能识别新添加的磁盘容量. 1.用qemu-img resize更改磁盘大小 以xp为例,原来磁盘的大小为100M,更改为250M [[email protected] ]# qemu-img i

调整KVM虚拟机的硬盘容量大小

kvm 虚拟机的磁盘大小可通过命令:qemu-img resize filename size 来改,要注意的是resize只支持raw格式的磁盘文件,如果想更改qcow2等格式的磁盘大小,需先用qemu-img convert 转换磁盘格式后才能更改大小:另外,用命令改完大小后需重启kvm虚拟机,系统才能识别新添加的磁盘容量. 1.用qemu-img resize更改磁盘大小  以xp为例,原来磁盘的大小为100M,更改为250M [[email protected] ]# qemu-img

Linux磁盘设备文件(sda,sdb,sdc…)变化问题

在Linux下往往会碰到这样的问题,磁盘的设备文件,比如/dev/sda, sdb, sdc等等在某些情况下会混乱掉,比如sda变成了sdb或者sdc变成了sdb等等,这样无形中会导致磁盘设备管理的混乱,最常见的比如Linux文件系统的启动问题.很多人在遇到这种问题的时候都去找磁盘.阵列厂家,怀疑是他们的问题,其实这种底层的磁盘(单个磁盘或者RAID阵列)和Linux下磁盘设备文件的映射并不是磁盘.阵列厂家来决定的,而是Linux内核自身的原因. 目前Linux内核对于这种磁盘设备的映射基本上取

KVM虚拟化平台——磁盘管理

博文大纲: 虚拟磁盘管理: KVM虚拟机快照管理: 在KVM虚拟机中有两种磁盘格式,分别是: RAW:裸格式.占用空间较大,性能比较好,但不支持快照功能: qcow2:占用空间较小,性能相比较RAW稍差,,但它支持快照功能: 1.虚拟磁盘管理: 举例说明: [[email protected] ~]# qemu-img create 1234.raw 5G //创建虚拟磁盘,名称为1234.raw,大小为5G,创建磁盘默认格式为raw [[email protected] ~]# qemu-im