一种虚拟机配置中设备地址的分配方法和装置制造方法及图纸

技术编号:15294559 阅读:96 留言:0更新日期:2017-05-11 11:24
本申请公开了一种虚拟机配置中设备地址的分配方法和装置,该方法包括:根据计划添加的设备的数量,确定安装到PCI总线上的控制器的种类和数量;为固有硬件设备分配固定设备地址;为ide和scsi接口类型的磁盘分配设备地址;为网卡和virtio接口类型的磁盘分配设备地址。上述方法和装置将虚拟机中的各个设备地址按照规则进行分配,能够避免内存快照恢复失败和scsi磁盘作为系统盘无法开机的问题。

Device address allocation method and device in virtual machine configuration

The invention discloses a method and apparatus for allocating a device address configuration of the virtual machines, the method comprises: according to the number of plans to add a device, to determine the installation type and quantity controller on PCI bus; for the allocation of fixed device address inherent hardware; for disk allocation device address interface type IDE and SCSI; for disk allocation device address of network card and virtio interface type. The method and device can assign the address of each device in the virtual machine in accordance with the rules, so as to avoid the failure of memory snapshot recovery and the problem that the SCSI disk can not be started on the system disk.

【技术实现步骤摘要】

本专利技术属于云计算
,特别是涉及一种虚拟机配置中设备地址的分配方法和装置
技术介绍
在虚拟机的配置中,会有很多虚拟设备,包括磁盘、网卡、显卡及声卡等,在这些设备的配置文件描述中,有一个可供选择的子选项设备地址(address),用来描述对应的虚拟机设备在虚拟总线上的位置,每一个设备地址都有一个必须的参数type,表示该设备在何种总线上,设备的地址类型是根据设备本身以及虚拟机的架构来决定的,例如控制器、网卡、显卡、virtio接口类型的磁盘等的地址类型为pci,而ide以及scsi接口类型的磁盘的地址类型为drive。pci类型的地址有如下可选参数,分别为domain(两位十六进制整数,qemu一般不用这一参数,默认为0x00)、bus(一个介于0~0xff的十六进制整数)、slot(一个介于0x0~0x1f的十六进制整数)、function(一个介于0~7的整数);drive类型的地址有如下可选参数:controller(控制器号)、bus(总线号)、target(目的号)、(总线上的单位编号)。控制器分为两种,模式分别为pci-root和pci-bridge,pci-root控制器有且只有一个,并且虚拟机的一些基础设备都位于最初的这个pci-root的控制器上,它相当于虚拟机最初的一个控制设备,而模式为pci-bridge的控制器用来扩展pci-root,由于pci-root最大只支持32个设备地址(它本身没有设备地址),因此为了能够让虚拟机支持更多的硬件设备,利用pci-bridge模式的控制器,便可以将pci-root的其中一个设备地址扩展成额外的32个地址,以此来实现虚拟机硬件设备的扩展。如果在建立虚拟机时没有对设备地址中的各项属性进行指定,libvirt会在虚拟机开机时自动生成一个合适的地址,来描述该设备所在位置,然而对自动生成设备地址的虚拟机进行内存快照的操作时,由于快照中的设备地址已经由libvirt自动分配,与最初的虚拟机配置文件(还没有指定具体设备地址)不相匹配,会出现内存快照恢复失败的问题,还会导致scsi磁盘作为系统盘无法开机,因此需要在虚拟机创建之前,手动指定虚拟机中各项设备的总线地址,然而在虚拟机创建之后各项硬件配置会有改动,例如热添加磁盘、网卡设备等,还可能造成设备地址管理混乱。
技术实现思路
为解决上述问题,本专利技术提供了一种虚拟机配置中设备地址的分配方法和装置,将虚拟机中的各个设备地址按照规则进行分配,能够避免内存快照恢复失败和scsi磁盘作为系统盘无法开机的问题。本专利技术提供的一种虚拟机配置中设备地址的分配方法,包括:根据计划添加的设备的数量,确定安装到PCI总线上的控制器的种类和数量;为固有硬件设备分配固定设备地址;为ide和scsi接口类型的磁盘分配设备地址;为网卡和virtio接口类型的磁盘分配设备地址。优选的,在上述虚拟机配置中设备地址的分配方法中,所述根据计划添加的设备的数量,确定安装到PCI总线上的控制器的种类和数量为:根据计划添加的设备的数量,确定安装到PCI总线上的控制器的种类包括pci-root控制器、pci-bridge控制器、提供ide类型设备地址的控制器以及提供scsi类型设备地址的控制器。优选的,在上述虚拟机配置中设备地址的分配方法中,所述为固有硬件设备分配固定设备地址为:将bus=0,slot=0x01~0x10,function=0,domain=0的地址分配给所述固有硬件设备。优选的,在上述虚拟机配置中设备地址的分配方法中,所述为ide和scsi接口类型的磁盘分配设备地址包括:为所述ide接口类型的磁盘分配的设备地址为controller=0,target=0,bus=0,unit=0;controller=0,target=0,bus=0,unit=1;controller=0,target=0,bus=1,unit=0;controller=0,target=0,bus=1,unit=1;为所述scsi接口类型的磁盘分配的设备地址为controller=0,target=0,bus=0,unit=0~31,而且,当所述scsi接口类型的磁盘为虚拟机系统盘时,则将其设备地址分配为controller=0,target=0,bus=0,unit=0。优选的,在上述虚拟机配置中设备地址的分配方法中,所述为网卡和virtio接口类型的磁盘分配设备地址包括:为所述网卡分配的设备地址为bus=0,slot=0x11~0x1f,function=0,domain=0;为所述virtio接口类型的磁盘分配的设备地址为所述pci-bridge控制器上的bus=1,slot=0x00~0x1f,function=0,domain=0。本专利技术提供的一种虚拟机配置中设备地址的分配装置,包括:确定单元,用于根据计划添加的设备的数量,确定安装到PCI总线上的控制器的种类和数量;第一地址分配单元,用于为固有硬件设备分配固定设备地址;第二地址分配单元,用于为ide和scsi接口类型的磁盘分配设备地址;第三地址分配单元,用于为网卡和virtio接口类型的磁盘分配设备地址。优选的,在上述虚拟机配置中设备地址的分配装置中,所述确定单元具体用于根据计划添加的设备的数量,确定安装到PCI总线上的控制器的种类包括pci-root控制器、pci-bridge控制器、提供ide类型设备地址的控制器以及提供scsi类型设备地址的控制器。优选的,在上述虚拟机配置中设备地址的分配装置中,所述为第一地址分配单元具体用于:将bus=0,slot=0x01~0x10,function=0,domain=0的地址分配给所述固有硬件设备。优选的,在上述虚拟机配置中设备地址的分配装置中,所述第二地址分配单元具体用于:为所述ide接口类型的磁盘分配的设备地址为controller=0,target=0,bus=0,unit=0;controller=0,target=0,bus=0,unit=1;controller=0,target=0,bus=1,unit=0;controller=0,target=0,bus=1,unit=1;为所述scsi接口类型的磁盘分配的设备地址为controller=0,target=0,bus=0,unit=0~31,而且,当所述scsi接口类型的磁盘为虚拟机系统盘时,则将其设备地址分配为controller=0,target=0,bus=0,unit=0。优选的,在上述虚拟机配置中设备地址的分配装置中,所述第三地址分配单元具体用于:为所述网卡分配的设备地址为bus=0,slot=0x11~0x1f,function=0,domain=0;为所述virtio接口类型的磁盘分配的设备地址为所述pci-bridge控制器上的bus=1,slot=0x00~0x1f,function=0,domain=0。通过上述描述可知,本专利技术提供的上述虚拟机配置中设备地址的分配方法和装置,由于该方法包括:根据计划添加的设备的数量,确定安装到PCI总线上的控制器的种类和数量;为固有硬件设备分配固定设备地址;为ide和scsi接口类型的磁盘分配设备地址;为网卡和virtio本文档来自技高网
...
一种虚拟机配置中设备地址的分配方法和装置

【技术保护点】
一种虚拟机配置中设备地址的分配方法,其特征在于,包括:根据计划添加的设备的数量,确定安装到PCI总线上的控制器的种类和数量;为固有硬件设备分配固定设备地址;为ide和scsi接口类型的磁盘分配设备地址;为网卡和virtio接口类型的磁盘分配设备地址。

【技术特征摘要】
1.一种虚拟机配置中设备地址的分配方法,其特征在于,包括:根据计划添加的设备的数量,确定安装到PCI总线上的控制器的种类和数量;为固有硬件设备分配固定设备地址;为ide和scsi接口类型的磁盘分配设备地址;为网卡和virtio接口类型的磁盘分配设备地址。2.根据权利要求1所述的虚拟机配置中设备地址的分配方法,其特征在于,所述根据计划添加的设备的数量,确定安装到PCI总线上的控制器的种类和数量为:根据计划添加的设备的数量,确定安装到PCI总线上的控制器的种类包括pci-root控制器、pci-bridge控制器、提供ide类型设备地址的控制器以及提供scsi类型设备地址的控制器。3.根据权利要求2所述的虚拟机配置中设备地址的分配方法,其特征在于,所述为固有硬件设备分配固定设备地址为:将bus=0,slot=0x01~0x10,function=0,domain=0的地址分配给所述固有硬件设备。4.根据权利要求2所述的虚拟机配置中设备地址的分配方法,其特征在于,所述为ide和scsi接口类型的磁盘分配设备地址包括:为所述ide接口类型的磁盘分配的设备地址为controller=0,target=0,bus=0,unit=0;controller=0,target=0,bus=0,unit=1;controller=0,target=0,bus=1,unit=0;controller=0,target=0,bus=1,unit=1;为所述scsi接口类型的磁盘分配的设备地址为controller=0,target=0,bus=0,unit=0~31,而且,当所述scsi接口类型的磁盘为虚拟机系统盘时,则将其设备地址分配为controller=0,target=0,bus=0,unit=0。5.根据权利要求2-4任一项所述的虚拟机配置中设备地址的分配方法,其特征在于,所述为网卡和virtio接口类型的磁盘分配设备地址包括:为所述网卡分配的设备地址为bus=0,slot=0x11~0x1f,function=0,domain=0;为所述virtio接口类型的磁盘分配的设备地址为所述pci-bridge控制器上的bus=1,slot=0x00~0x1f,function=0,d...

【专利技术属性】
技术研发人员:解琰曾鹏庞慷宇
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南;41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1