CN109558216B - 一种基于在线迁移的单根i/o虚拟化优化方法及其*** - Google Patents

一种基于在线迁移的单根i/o虚拟化优化方法及其*** Download PDF

Info

Publication number
CN109558216B
CN109558216B CN201811507379.XA CN201811507379A CN109558216B CN 109558216 B CN109558216 B CN 109558216B CN 201811507379 A CN201811507379 A CN 201811507379A CN 109558216 B CN109558216 B CN 109558216B
Authority
CN
China
Prior art keywords
network
virtual machine
migration
virtual
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811507379.XA
Other languages
English (en)
Other versions
CN109558216A (zh
Inventor
叶志勇
王洋
须成忠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Institute of Advanced Technology of CAS
Original Assignee
Shenzhen Institute of Advanced Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Institute of Advanced Technology of CAS filed Critical Shenzhen Institute of Advanced Technology of CAS
Priority to CN201811507379.XA priority Critical patent/CN109558216B/zh
Publication of CN109558216A publication Critical patent/CN109558216A/zh
Application granted granted Critical
Publication of CN109558216B publication Critical patent/CN109558216B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及云计算技术领域,特别涉及一种基于在线迁移的单根I/O虚拟化优化方法及其***;本发明先动态感知虚拟机的网络负载变化情况而采集虚拟机的网络数据信息;再网络监控模块接收网络数据信息后,对虚拟机进行分类和分配VF;然后网络监控模块对虚拟机的网络状态进行监控,如果网络监控模块对虚拟机监控到的信息数据超过设定的阈值,则将监控的虚拟机进行迁移;本发明能够动态感知虚拟机的网络负载,给虚拟机进行分类且给虚拟机分配数量受限的VF以提升虚拟机的网络性能,从而提升***整体的网络性能,而且采用对虚拟机在线迁移的方法缓解主机的网络压力。

Description

一种基于在线迁移的单根I/O虚拟化优化方法及其***
技术领域
本发明涉及云计算技术领域,特别涉及一种基于在线迁移的单根I/O虚拟化优化方法及其***。
背景技术
随着云计算技术的快速发展,现代数据中心几乎都部署了虚拟化技术,虚拟机软件与硬件的分离可以更好的在数据中心进行软件管理、故障检测和***维护等操作。通过数据隔离等方式在一台物理服务器上运行多台虚拟服务器,虚拟化技术能大幅度提高服务器的物理资源利用率,而虚拟服务器的性能并不会因此而受到太大的影响。目前来说,CPU和内存的虚拟化技术相对来说已比较成熟,I/O虚拟化技术成为了制约***性能的关键所在。
网络资源是I/O资源中极为重要的一种,同时由于数据中心网络资源的稀缺性和高度竞争性,对虚拟化环境中网络资源的合理调度和数据中心网络带宽利用率的提升是急需解决的一个关键问题。
网络I/O虚拟化是解决这一问题的关键技术,但是在目前主流的几种I/O虚拟化方式中,没有一种方法能够在保证可扩展性的同时又满足虚拟机的性能需要。基于软件的虚拟化具有很好的可扩展性,但由于虚拟机监控器会对虚拟机的I/O路径进行干预而使其性能受限。硬件辅助的虚拟化方式无论是Pass-through技术还是单根I/O虚拟化技术都绕过了虚拟机监控器的对虚拟机I/O路径的干预,能够达到接近物理机的I/O性能,但其破坏了虚拟化的服务透明性,给虚拟机的在线迁移带来了困难。
发明内容
本发明主要解决的技术问题是提供一种基于在线迁移的单根I/O虚拟化优化方法,其能够动态感知虚拟机的网络负载,给虚拟机进行分类且给虚拟机分配数量受限的VF以提升虚拟机的网络性能,从而提升***整体的网络性能,而且采用对虚拟机在线迁移的方法缓解主机的网络压力,为了避免主机网络负载过重而出现宕机的情况,在主机网络负载还没超出其承受范围就要对虚拟机进行迁移;本发明还提供一种基于在线迁移的单根I/O虚拟化优化***。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种基于在线迁移的单根I/O虚拟化优化方法,其中,包括如下步骤:
步骤S1、动态感知虚拟机的网络负载变化情况而采集虚拟机的网络数据信息,将该网络数据信息发送至网络监控模块;
步骤S2、网络监控模块接收网络数据信息后,对虚拟机进行分类和分配VF;
步骤S3、网络监控模块对虚拟机的网络状态进行监控,如果网络监控模块对虚拟机监控到的信息数据超过设定的阈值,则将监控的虚拟机进行迁移。
作为本发明的一种改进,步骤S1包括:
步骤S11、虚拟机在每个采样周期结束时将获取的流量信息发送至网络监控模块;
步骤S12、虚拟机读取其正在使用的内存信息,在每个采样周期结束时将获取的内存信息发送给主机。
作为本发明的进一步改进,在步骤S2内,网络监控模块根据接收的网络数据信息将虚拟机分类成网络密集型虚拟机和非网络密集型虚拟机,对网络密集型虚拟机分配VF,而让非网络密集型虚拟机使用半虚拟化的网卡工作。
作为本发明的更进一步改进,在步骤S2内,使用Bonding驱动技术的激活备份模式将单根I/O虚拟化网卡设置为主设备和半虚拟化的网卡设置为从设备,网络监控模块创建两个队列对虚拟机进行管理,刚开始将所有虚拟机放入通用队列中,当每次采样周期结束时将虚拟机按照本次流量和由大到小排序,选取一定数量的虚拟机放入优先队列,剩余的虚拟机放入通用队列,然后给在优先队列中的虚拟机分配VF,而在通用队列中的虚拟机使用半虚拟化的网卡工作。
作为本发明的更进一步改进,步骤S3包括:
步骤S31、网络监控模块对虚拟机的网络状态进行监控,同时分析虚拟机的网络密集程度;如果网络监控模块对虚拟机监控到的信息数据超过设定的阈值,则进入下一步骤;
步骤S32、预测该虚拟机的网络状态的下一个周期的信息数据是否超过设定的阈值,如果超过设定的阈值,则进入下一步骤;
步骤S33、网络监控模块选定其信息数据超过设定的阈值的虚拟机并将该虚拟机迁移至迁移管理模块;
步骤S34、迁移管理模块将选择集群中网络密集状态最小的主机接受该迁移的虚拟机;
步骤S35、如果该迁移的虚拟机的信息数据超过设定的阈值,则重复步骤S34。
作为本发明的更进一步改进,在步骤S31内,网络监控模块将信息数据存入文件netinfo且同时分析虚拟机的网络密集程度;分析虚拟机的网络密集程度采用的方法为所述网络监控模块从文件中读取过去n个采样数据,如果其中有k个数据都超出设定的阈值,则进入步骤S33,否则不断重复存入数据、读取数据和分析数据的过程。
作为本发明的更进一步改进,在步骤S32内,预测虚拟机的网络状态的下一个周期的信息数据的方法是使用基于时间序列的自回归预测模型进行预测。
作为本发明的更进一步改进,在步骤S33内,网络监控模块选择主机上的将被迁移的虚拟机,并读取文件中虚拟机的网络数据信息和内存信息,基于让每单位字节传输最大负载的原则,选定将被迁移的虚拟机并将该虚拟机的IP地址发送给迁移管理模块。
一种基于在线迁移的单根I/O虚拟化优化***,其中,包括:
若干个虚拟机;
网络监控模块,用于对各个虚拟机进行监控及接收各个虚拟机发送的网络数据信息;
迁移管理模块,用于接收到迁移触发信号时,读取文件中各虚拟机的网络数据信息按照主机发送和接收的总流量和除以网卡带宽的方法计算主机的网络带宽利用率,将主机的带宽利用率从大到小递减的顺序排序,选择其中最小的主机,将虚拟机迁移到该主机。
作为本发明的一种改进,还包括:
VF调度模块,用于将虚拟机按照本次采样周期内的网络流量由大到小排序,选取前面一定数量的虚拟机放入优先队列,剩余的虚拟机放入通用队列。
本发明的有益效果是:与现有技术相比,本发明能够动态感知虚拟机的网络负载,给虚拟机进行分类且给虚拟机分配数量受限的VF以提升虚拟机的网络性能,从而提升***整体的网络性能,而且采用对虚拟机在线迁移的方法缓解主机的网络压力,为了避免主机网络负载过重而出现宕机的情况,在主机网络负载还没超出其承受范围就要对虚拟机进行迁移。
附图说明
图1为本发明的基于在线迁移的单根I/O虚拟化优化方法的步骤框图;
图2为图1中步骤S1的内部步骤框图;
图3为图1中步骤S3的内部步骤框图;
图4为本发明的分配VF的调度过程示意图;
图5为本发明的在线迁移虚拟机的调度过程示意图;
图6为本发明的分配VF的调度过程框架图;
图7为本发明的在线迁移虚拟机的调度过程框架图;
图8为本发明的基于在线迁移的单根I/O虚拟化优化***的框图。
具体实施方式
目前的虚拟机分配和调度策略主要是关心数据中心计算资源利用的经济性和高效性,而对于网络资源调度方面还存在一定程度的缺失。相对于计算和存储资源来说,网络资源在数据中心仍属高度竞争和稀缺的资源。如果不能对网络资源进行合理调度,将会影响整个***的性能。特别是在数据中心部署虚拟化技术之后,同一主机上可能同时会有多个虚拟机对网络资源发出请求,这必将导致对网络资源的竞争更加激烈。数据中心往往是通过使用单根I/O虚拟化技术来优化虚拟机的网络性能。
在数据中心,单根I/O虚拟化技术事实上已经成为网络I/O虚拟化的标准技术。相比于半虚拟化技术,单根I/O虚拟化技术通过独占VF的方式可以大幅度降低虚拟机的通信延迟,但是如果每个虚拟机都分配VF将会无法满足网络密集型虚拟机通信的需求,因为每个VF所获取的有效带宽反比于总共配置VF的数量,VF数量的增多会导致单个VF带宽的下降。此外,由于应用服务程序在运行过程中的可变性,***在运行一段时间后可能在网络负载上变得不再均衡,导致有些主机因为网络负载过重而性能下降,而有些主机因为网络负载不够而资源利用率过低,如果不对单根I/O虚拟化进一步优化必然会影响***的扩展性和网络性能。但是,使用单根I/O虚拟化技术也存在不足,表现在两个方面:(1)当单根I/O虚拟化网卡的VF数量增多时,每个VF所获取的有效带宽反比于总共配置的VF数量,导致单个VF的性能下降;(2)单根I/O虚拟化网卡的虚拟机在线迁移受限,从而当集群***中不同主机间负载变化时不能达到负载均衡,影响***的整体性能。为此,本发明提出了一种基于在线迁移的单根I/O虚拟化网络优化方法,动态感知虚拟机的网络负载状态,通过限制VF的数量以保证I/O密集型虚拟机的性能,从而保证***整体的网络性能。而当主机网络负载过重无法满足虚拟机的网络需求时,通过单根I/O虚拟化和半虚拟化相结合的方式,在线迁移部分虚拟机到其他比较空闲的主机运行,均衡集群***之间的网络负载,以优化数据中心的整体网络性能。
如图1至图3所示,一种基于在线迁移的单根I/O虚拟化优化方法,包括如下步骤:
步骤S1、动态感知虚拟机的网络负载变化情况而采集虚拟机的网络数据信息,将该网络数据信息发送至网络监控模块;
步骤S2、网络监控模块接收网络数据信息后,对虚拟机进行分类和分配VF;
步骤S3、网络监控模块对虚拟机的网络状态进行监控,如果网络监控模块对虚拟机监控到的信息数据超过设定的阈值,则将监控的虚拟机进行迁移。
如图2所示,步骤S1包括:
步骤S11、虚拟机在每个采样周期结束时将获取的流量信息发送至网络监控模块;
步骤S12、虚拟机读取其正在使用的内存信息,在每个采样周期结束时将获取的内存信息发送给主机。
具体地,首先采集虚拟机的网络数据用于动态感知虚拟机的网络负载变化情况,虚拟机读取Linux***提供的接口文件/proc/net/dev获取虚拟机的网络信息,在每个采样周期结束时将获取的流量信息发送给主机的网络监控模块;再虚拟机通过读取文件/proc/meminfo获得虚拟机正在使用的内存大小,在每个采样周期结束时将获取的数据发送给主机。
其中,在步骤S2内,网络监控模块根据接收的网络数据信息将虚拟机分类成网络密集型虚拟机和非网络密集型虚拟机,对网络密集型虚拟机分配VF,而让非网络密集型虚拟机使用半虚拟化的网卡工作。
进一步,在步骤S2内,使用Bonding驱动技术的激活备份模式将单根I/O虚拟化网卡设置为主设备和半虚拟化的网卡设置为从设备,网络监控模块创建两个队列对虚拟机进行管理,刚开始将所有虚拟机放入通用队列中,当每次采样周期结束时将虚拟机按照本次流量和由大到小排序,选取一定数量的虚拟机放入优先队列,剩余的虚拟机放入通用队列,然后给在优先队列中的虚拟机分配VF,而在通用队列中的虚拟机使用半虚拟化的网卡工作;具体地,主机的网络监控模块接收到虚拟机发送到的流量信息后,将虚拟机分成网络密集型虚拟机和非网络密集型虚拟机,给网络密集型虚拟机分配VF,而让非网络密集型虚拟机使用半虚拟化的网卡工作。在这个过程中,如果原来是非网络密集型的虚拟机而在这一采样周期中被归类为网络密集型虚拟机,则将虚拟机的半虚拟化网卡切换为单根I/O虚拟化的VF网卡;如果原本是网络密集型的虚拟机而在这一采样周期中被归类为非网络密集型虚拟机,则剥夺其VF使其使用半虚拟化的网卡工作。将虚拟机分成网络密集型虚拟机和非网络密集型虚拟机两类的方法是:使用两个队列对虚拟机进行管理,优先队列放入的是网络密集型虚拟机,通用队列放入的是非网络密集型虚拟机。网络监控模块按照本次采样周期内虚拟机流量的由大到小对虚拟机进行排序,选取前面一定数量的虚拟机放入优先队列,剩余的虚拟机放入通用队列。单根I/O虚拟化网卡与半虚拟化网卡动态切换的方法是:使用Bonding驱动技术的激活备份模式将单根I/O虚拟化网卡设置为主设备,半虚拟化的网卡被设置为从设备,对单根I/O虚拟化网卡的虚拟热插拔直接实现单根I/O虚拟化网卡与半虚拟化网卡的动态切换。
如图3所示,步骤S3包括:
步骤S31、网络监控模块对虚拟机的网络状态进行监控,同时分析虚拟机的网络密集程度;如果网络监控模块对虚拟机监控到的信息数据超过设定的阈值,则进入下一步骤;
步骤S32、预测该虚拟机的网络状态的下一个周期的信息数据是否超过设定的阈值,如果超过设定的阈值,则进入下一步骤;
步骤S33、网络监控模块选定其信息数据超过设定的阈值的虚拟机并将该虚拟机迁移至迁移管理模块;
步骤S34、迁移管理模块将选择集群中网络密集状态最小的主机接受该迁移的虚拟机;
步骤S35、如果该迁移的虚拟机的信息数据超过设定的阈值,则重复步骤S34。
其中,在步骤S31内,网络监控模块将信息数据存入文件netinfo且同时分析虚拟机的网络密集程度;分析虚拟机的网络密集程度采用的方法为所述网络监控模块从文件中读取过去n个采样数据,如果其中有k个数据都超出设定的阈值,则进入步骤S33,否则不断重复存入数据、读取数据和分析数据的过程。
进一步,在步骤S32内,预测虚拟机的网络状态的下一个周期的信息数据的方法是使用基于时间序列的自回归预测模型进行预测。
再进一步,在步骤S33内,网络监控模块选择主机上的将被迁移的虚拟机,并读取文件中虚拟机的网络数据信息和内存信息,基于让每单位字节传输最大负载的原则,选定将被迁移的虚拟机并将该虚拟机的IP地址发送给迁移管理模块。
具体地,第一,主机的网络监控模块对虚拟机的网络状态进行监控,每次当虚拟机的流量数据到达时,网络监控模块将数据存入文件netinfo;网络监控模块从文件中读取过去的n个采样数据,如果其中有k个数据都超出设定的阈值,则进入下一步骤,否则不断重复存入数据、读取数据和分析数据的过程;第二,主机的网络监控模块对虚拟机网络状态的未来趋势进行预测,如果预测下一个周期的结果也将超出设定的阈值,则触发迁移;网络监控模块基于每单位字节传输最大负载的原则选定将被迁移的虚拟机,将该虚拟机的IP地址及触发迁移信号发送给迁移控制主机的迁移管理模块,进入下一步骤;其中,预测下个周期的数据的方法是:使用基于时间序列的自回归预测模型进行预测,所述自回归预测模式是指用自身做回归变量的过程,采用一阶自回归模型AR(1),考虑时间序列x1,x2,…,xp,预测第(p+1)个采样周期的值,按照如下方式估计第(p+1)的值:
Figure BDA0001899776230000081
其中,μ是前p个时间序列的期望值,参数φ用于捕获时间序列的变化,δ是高斯白噪声决定于当前序列的波动程度;第三,迁移控制主机的迁移管理模块选择集群中网络密集程度最小的主机接受被迁移的虚拟机,开始迁移虚拟机,如果迁移的是半虚拟化或者是完全虚拟化的虚拟机,直接迁移即可;而如果被选中的虚拟机正在使用单根I/O虚拟化设备,结合ACPI热插拔技术和Bonding驱动技术的激活-备份模式,动态切换单根I/O虚拟化的VF为半虚拟化的虚拟网卡。如果迁移虚拟机后网络负载还是过重,即还会触发迁移信号,则重复前面一步骤。选择主机中迁移虚拟机的方法是:基于让每单位字节传输最大负载的原则,按照如下公式计算虚拟机迁移判定因子:
Figure BDA0001899776230000091
其中,Traffic_data表示一次采样周期内总共发送与接收数据包的大小,Num表示总共采样次数,mem是虚拟机内存的大小。按照虚拟机迁移判定因子从大到小递减的顺序排序,选择其中最大的虚拟机进行迁移。
其中,单根I/O虚拟化设备的虚拟机在线迁移的具体方法如下:
(I)使用Bonding驱动技术的激活备份模式将单根I/O虚拟化设备设置为主设备,半虚拟化的网卡设置为从设备;(II)当触发迁移时,迁移控制主机的迁移管理模块通知源主机的虚拟热插拔控制器使其触发选定虚拟机单根I/O虚拟化设备的虚拟热移除事件;(III)虚拟机关闭单根I/O虚拟化设备的驱动,并停止使用单根I/O虚拟化设备以回应虚拟热移除事件,基于Bonding驱动技术的活动网卡则由单根I/O虚拟化网卡自动转换为半虚拟化的网卡;(IV)这时虚拟机不再与硬件相关,可安全迁移到目标主机;(V)当迁移完成后,目的主机的虚拟热插拔控制器触发虚拟机单根I/O虚拟化设备的虚拟热添加事件;(VI)虚拟机加载单根I/O虚拟化网卡驱动并选择新的虚拟功能开始工作。
如图8所示,一种基于在线迁移的单根I/O虚拟化优化***,包括:
若干个虚拟机;
网络监控模块,用于对各个虚拟机进行监控及接收各个虚拟机发送的网络数据信息;
迁移管理模块,用于接收到迁移触发信号时,读取文件中各虚拟机的网络数据信息按照主机发送和接收的总流量和除以网卡带宽的方法计算主机的网络带宽利用率,将主机的带宽利用率从大到小递减的顺序排序,选择其中最小的主机,将虚拟机迁移到该主机。
本发明的一种基于在线迁移的单根I/O虚拟化优化***,还包括:
VF调度模块,用于将虚拟机按照本次采样周期内的网络流量由大到小排序,选取前面一定数量的虚拟机放入优先队列,剩余的虚拟机放入通用队列。
其中,网络监控模块设置有用于分析虚拟机的网络密集程度的分析单元。
如图4和图5所示,本发明的动态调度单根I/O虚拟化网卡的VF的具体过程如下:
步骤一:采集虚拟机中的各项数据,包括虚拟机的网络数据和内存信息,本步骤一包含以下执行步骤:
(1.1)首先准确收集虚拟机的网络数据用于动态感知虚拟机的网络负载情况,虚拟机读取Linux的内核接口文件/proc/net/dev获取虚拟机的网络信息,将现有的发送和接收总流量减去上次发送和接收总流量便是本次采样周期发送和接收的总流量和,将本次采样周期发送和接收的总流量和除以网卡带宽就是本次采样该虚拟机的带宽利用率。虚拟机中的网络监控模块按照上述方法收集虚拟机的网络数据,网络监控模块在每次采样周期结束时将本次采样周期发送和接收的总流量和发送给主机的网络监控模块,主机的网络监控模块集合所有虚拟机的数据就是该主机发送和接收的总流量和。
(1.2)虚拟机读取文件/proc/meminfo获取虚拟机正在使用的内存大小,在每次采样周期结束时将获得的内存信息发送给主机并存入文件中以便后续的处理,在触发迁移后用于决定哪个虚拟机将被迁移。
步骤二:对单根I/O虚拟化网卡的VF资源进行调度
首先使用Bonding驱动技术的激活备份模式将单根I/O虚拟化网卡设置为主设备,半虚拟化的网卡被设置为从设备,对单根I/O虚拟化网卡的虚拟热插拔直接实现单根I/O虚拟化网卡与半虚拟化网卡的动态切换;随后主机的网络监控模块创建两个队列对虚拟机进行管理,刚开始将所有虚拟机放入通用队列中,当每次采样周期结束时将虚拟机按照本次流量和由大到小排序,选取最大一定数量的虚拟机放入优先队列,剩余的虚拟机放入通用队列,然后给在优先队列中的虚拟机分配VF,而在通用队列中的虚拟机使用半虚拟化的网卡工作。在这个过程中,如果原来是非网络密集型的虚拟机在这一采样周期被归类为网络密集型虚拟机,则将半虚拟化网卡切换为单根I/O虚拟化的VF网卡,如果原本是网络密集型的虚拟机在这一采样周期被归类为非网络密集型虚拟机,则剥夺其VF使其使用半虚拟化的网卡工作。
步骤三:主机的网络监控模块对虚拟机网络数据进行统一的管理和分析,分析虚拟机的网络密集程度,本步骤三包含以下执行步骤:
(3.1)当每次虚拟机的网络数据到达的时候,主机的网络监控模块将数据存入文件netinfo,同时分析虚拟机的网络密集程度;其中,分析虚拟机的网络密集程度采用的方法是:网络监控模块从文件中读取过去n个采样数据,即该主机发送和接收的总流量和,如果其中有k个数据都超出设定的阈值,则进入步骤(3.2),否则不断重复存入数据、读取数据和分析数据的过程。
(3.2)预测虚拟机网络状态的未来趋势,如果预测的下一个周期的结果也超出设定的阈值,则触发迁移进入步骤三,同时网络监控模块将迁移信号发送给迁移控制主机的迁移管理模块;其中,预测下个周期的数据的方法是使用基于时间序列的自回归预测模型进行预测,该自回归预测模式是用自身做回归变量的过程,采用一阶自回归模型AR(1),考虑时间序列x1,x2,…,xp,预测第(p+1)个采样周期的值,按照如下方式估计第(p+1)的值:
Figure BDA0001899776230000111
其中,μ是前p个时间序列的期望值,参数φ用于捕获时间序列的变化,δ是高斯白噪声决定于当前序列的波动程度。
步骤四:当触发迁移后,网络监控模块会选择该主机上将被迁移的虚拟机,读取文件中虚拟机的网络和内存信息,基于让每单位字节传输最大负载的原则,选定将被迁移的虚拟机并将该虚拟机的IP地址发送给迁移控制主机的迁移管理模块;其中,选择主机中被迁移的虚拟机的方法是基于让每单位字节传输最大负载的原则,按照如下公式计算虚拟机迁移判定因子:
Figure BDA0001899776230000112
其中,Traffic_data表示一次采样周期内总共发送与接收数据包的大小,Num表示总共采样次数,mem是虚拟机内存的大小。按照虚拟机迁移判定因子从大到小递减的顺序排序,选择其中最大的虚拟机进行迁移。
步骤五:迁移控制主机的迁移管理模块选择集群中网络密集状态最小的主机接受将被迁移的虚拟机,选取网络密集状态最小的主机的方法是:按照主机发送和接收的总流量和除以网卡带宽的方法计算主机的网络带宽利用率,按主机的带宽利用率从大到小递减的顺序排序,选择其中最小的主机。开始迁移虚拟机,迁移虚拟机后网络负载如果还是过重,即还会触发迁移信号,则重复步骤四。
其中,单根I/O虚拟化的虚拟机在线迁移方法包含以下执行步骤:
(5.1)使用Bonding驱动技术的激活备份模式将单根I/O虚拟化设备设置为主设备,半虚拟化的网卡被设置为从设备;主设备即单根I/O虚拟化设备处于激活状态时使用主设备工作,只有当主设备处于非激活状态才使用从设备即半虚拟化的网卡工作。
(5.2)当触发迁移时,迁移控制主机的迁移管理模块通知源主机的虚拟热插拔控制器触发选定虚拟机单根I/O虚拟化设备的虚拟热移除事件。
(5.3)虚拟机关闭虚拟机单根I/O虚拟化设备的驱动并停止使用虚拟机单根I/O虚拟化设备以回应虚拟热移除事件,Bonding驱动技术的激活网卡由单根I/O虚拟化网卡自动转换为半虚拟化的网卡。
(5.4)这时虚拟机不再与硬件相关,可安全的迁移到目标主机。
(5.5)当迁移完成后,目的主机的虚拟热插拔控制器触发虚拟机单根I/O虚拟化设备的虚拟热添加事件。
(5.6)虚拟机加载单根I/O虚拟化网卡驱动并选择新的虚拟功能开始工作。
如图4和图6所示,VF调度的主机包含n个虚拟机和一个特权域虚拟机,由特权域虚拟机对单根I/O虚拟化的网卡进行管理及VF的调度分配。特权域虚拟机中的网络监控模块接收各个虚拟机发送的网络流量信息,VF调度模块将虚拟机按照本次采样周期内的网络流量由大到小排序,选取前面一定数量的虚拟机放入优先队列,剩余的虚拟机放入通用队列。优先先队列放入的是网络密集型虚拟机,通用队列放入的是非网络密集型虚拟机,在初始状态所有的虚拟机都被放入通用队列,在每次调度的过程中将网络密集型的虚拟机***优先队列。VF调度模块给优先队列中的虚拟机分配VF,而通用队列中的虚拟机使用半虚拟化的网卡进行工作。在这个调度过程中,一个典型的队列变化如下:调度时如果优先队列的某一虚拟机网络流量小于通用队列的某一虚拟机,VF调度模块将把优先队列的这个虚拟机移到通用队列并剥夺其VF,而将通用队列网络流量最大的虚拟机***到优先队列并分配VF给这个虚拟机。
如图5和图7所示,网络资源调度由n个主机和一个迁移控制主机组成。网络资源调度***的主机包含k个虚拟机和一个网络监控模块,网络监控模块读取Linux的内核接口文件/proc/net/dev以获取虚拟机的网络信息和文件/proc/meminfo来获取虚拟机正在使用的内存大小,获取的数据存入文件中以便后续处理。在每个采样周期结束时所述网络监控模块读取文件中过去的n个采样数据,即该主机发送和接收的总流量和,如果其中有k个数据都超出设定的阈值,则预测的下一个周期的数据,如果预测结果也超出设定的阈值则触发迁移信号。网络监控模块在触发迁移信号后将计算虚拟机迁移判定因子,按照虚拟机迁移判定因子从大到小递减的顺序排序,选择其中最大的虚拟机进行迁移。所示迁移控制主机中包含迁移管理模块,当迁移管理模块接受到迁移触发信号时,读取文件中各主机的网络信息,按照主机发送和接收的总流量和除以网卡带宽的方法计算主机的网络带宽利用率,将主机的带宽利用率从大到小递减的顺序排序,选择其中最小的主机,将虚拟机迁移到该主机。
在本发明中,基于在线迁移的单根I/O虚拟化优化方法动态感知虚拟机的网络负载,将虚拟机分为网络密集型虚拟机和非网络密集型虚拟机,给网络密集型的虚拟机分配数量受限的VF以提升网络密集型虚拟机的网络性能,从而提升***整体的网络性能。该优化方法采用对虚拟机在线迁移的方法缓解主机的网络压力,为了避免主机网络过重而出现宕机的情况,在主机网络负载还没超出其承受范围就要对虚拟机进行迁移。本发明采用对网络资源阈值检测的方法触发迁移,为了消除不必要的瞬态峰值干扰以确保主机在未来也会有持续的网络负载,在n个采样数据中只要有k个超出阈值,才被判定为有效的触发,同时预测未来网络负载的变化趋势以便更好的对网络资源进行调度。
本发明具有如下优点:
1、方法结合半虚拟化和单根I/O虚拟化各自的优点,既能提升虚拟机的网络性能又可以保证虚拟机的可扩展性,动态感知虚拟机的网络负载状态,通过限制VF的数量以保证I/O密集型虚拟机的性能,从而保证***整体的网络性能。
2、该优化方法在单根I/O虚拟化网卡无法满足主机网络性能要求时迁移部分虚拟机到其他比较空闲的主机运行,均衡集群***之间的网络负载,以优化数据中心的整体网络性能。
3、该优化方法不会修改虚拟机监控器本身的调度程序,只是对虚拟机监控器调度***的补充,可应用于任何虚拟化平台,如Xen和KVM等。
4、该优化方法结合ACPI热插拔技术和Bonding驱动技术的激活备份模式,动态切换单根I/O虚拟化的VF和半虚拟化的虚拟网卡可以很好解决单根I/O虚拟化设备的虚拟机在线迁移的问题。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (8)

1.一种基于在线迁移的单根I/O虚拟化优化方法,其特征在于,包括如下步骤:
步骤S1、动态感知虚拟机的网络负载变化情况而采集虚拟机的网络数据信息,将该网络数据信息发送至网络监控模块;
步骤S2、网络监控模块接收网络数据信息后,对虚拟机进行分类和分配VF;
步骤S3、网络监控模块对虚拟机的网络状态进行监控,如果网络监控模块对虚拟机监控到的信息数据超过设定的阈值,则将监控的虚拟机进行迁移;
所述步骤S3包括:
步骤S31、网络监控模块对虚拟机的网络状态进行监控,同时分析虚拟机的网络密集程度;如果网络监控模块对虚拟机监控到的信息数据超过设定的阈值,则进入下一步骤;
步骤S32、预测该虚拟机的网络状态的下一个周期的信息数据是否超过设定的阈值,如果超过设定的阈值,则进入下一步骤;
步骤S33、网络监控模块选定其信息数据超过设定的阈值的虚拟机并将该虚拟机迁移至迁移管理模块;
步骤S34、迁移管理模块将选择集群中网络密集状态最小的主机接受被迁移的虚拟机;
步骤S35、如果该迁移的虚拟机的信息数据超过设定的阈值,则重复步骤S34;
在所述步骤S32内,预测虚拟机的网络状态的下一个周期的信息数据的方法是使用基于时间序列的自回归预测模型进行预测;
所述自回归预测模式是指用自身做回归变量的过程,采用一阶自回归模型AR(1),考虑时间序列x1,x2,…,xp,预测第(p+1)个采样周期的值,按照如下方式估计第(p+1)个采样周期的值:
Figure FDA0002620729770000011
其中,μ是前p个时间序列的期望值,参数φ用于捕获时间序列的变化,δ是高斯白噪声决定于当前序列的波动程度;
所述步骤S34中,如果迁移的是半虚拟化或者是完全虚拟化的虚拟机,直接迁移即可;如果被选中的虚拟机正在使用单根I/O虚拟化设备,结合ACPI热插拔技术和Bonding驱动技术的激活-备份模式,动态切换单根I/O虚拟化的VF为半虚拟化的虚拟网卡;如果迁移虚拟机后网络负载还是过重,即还会触发迁移信号,则重复前面一步骤;
选择主机中迁移虚拟机的方法是:基于让每单位字节传输最大负载的原则,按照如下公式计算虚拟机迁移判定因子:
Figure FDA0002620729770000021
其中,Traffic_data表示一次采样周期内总共发送与接收数据包的大小,Num表示总共采样次数,mem是虚拟机内存的大小;按照虚拟机迁移判定因子从大到小递减的顺序排序,选择其中最大的虚拟机进行迁移。
2.根据权利要求1所述的一种基于在线迁移的单根I/O虚拟化优化方法,其特征在于,步骤S1包括:
步骤S11、虚拟机在每个采样周期结束时将获取的流量信息发送至网络监控模块;
步骤S12、虚拟机读取其正在使用的内存信息,在每个采样周期结束时将获取的内存信息发送给主机。
3.根据权利要求1所述的一种基于在线迁移的单根I/O虚拟化优化方法,其特征在于,在步骤S2内,网络监控模块根据接收的网络数据信息将虚拟机分类成网络密集型虚拟机和非网络密集型虚拟机,对网络密集型虚拟机分配VF,而让非网络密集型虚拟机使用半虚拟化的网卡工作。
4.根据权利要求3所述的一种基于在线迁移的单根I/O虚拟化优化方法,其特征在于,在步骤S2内,使用Bonding驱动技术的激活备份模式将单根I/O虚拟化网卡设置为主设备和半虚拟化的网卡设置为从设备,网络监控模块创建两个队列对虚拟机进行管理,刚开始将所有虚拟机放入通用队列中,当每次采样周期结束时将虚拟机按照本次流量和由大到小排序,选取一定数量的虚拟机放入优先队列,剩余的虚拟机放入通用队列,然后给在优先队列中的虚拟机分配VF,而在通用队列中的虚拟机使用半虚拟化的网卡工作。
5.根据权利要求1所述的一种基于在线迁移的单根I/O虚拟化优化方法,其特征在于,在步骤S31内,网络监控模块将信息数据存入文件netinfo且同时分析虚拟机的网络密集程度;分析虚拟机的网络密集程度采用的方法为所述网络监控模块从文件中读取过去n个采样数据,如果其中有k个数据都超出设定的阈值,则进入步骤S33,否则不断重复存入数据、读取数据和分析数据的过程。
6.根据权利要求1所述的一种基于在线迁移的单根I/O虚拟化优化方法,其特征在于,在步骤S33内,网络监控模块选择主机上的将被迁移的虚拟机,并读取文件中虚拟机的网络数据信息和内存信息,基于让每单位字节传输最大负载的原则,选定将被迁移的虚拟机并将该虚拟机的IP地址发送给迁移管理模块。
7.一种应用如权利要求1至6任意一项所述优化方法的基于在线迁移的单根I/O虚拟化优化***,其特征在于,包括:
若干个虚拟机;
网络监控模块,用于对各个虚拟机进行监控及接收各个虚拟机发送的网络数据信息;
迁移管理模块,用于接收到迁移触发信号时,读取文件中各虚拟机的网络数据信息按照主机发送和接收的总流量和除以网卡带宽的方法计算主机的网络带宽利用率,将主机的带宽利用率从大到小递减的顺序排序,选择其中最小的主机,将虚拟机迁移到该主机。
8.根据权利要求7所述的一种基于在线迁移的单根I/O虚拟化优化***,其特征在于,还包括:
VF调度模块,用于将虚拟机按照本次采样周期内的网络流量由大到小排序,选取前面一定数量的虚拟机放入优先队列,剩余的虚拟机放入通用队列。
CN201811507379.XA 2018-12-11 2018-12-11 一种基于在线迁移的单根i/o虚拟化优化方法及其*** Active CN109558216B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811507379.XA CN109558216B (zh) 2018-12-11 2018-12-11 一种基于在线迁移的单根i/o虚拟化优化方法及其***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811507379.XA CN109558216B (zh) 2018-12-11 2018-12-11 一种基于在线迁移的单根i/o虚拟化优化方法及其***

Publications (2)

Publication Number Publication Date
CN109558216A CN109558216A (zh) 2019-04-02
CN109558216B true CN109558216B (zh) 2020-10-27

Family

ID=65869385

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811507379.XA Active CN109558216B (zh) 2018-12-11 2018-12-11 一种基于在线迁移的单根i/o虚拟化优化方法及其***

Country Status (1)

Country Link
CN (1) CN109558216B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110113184B (zh) * 2019-04-17 2021-10-26 杭州中科先进技术研究院有限公司 Sr-iov环境下的kvm虚拟机网络优化方法及装置
CN114416293A (zh) * 2021-12-31 2022-04-29 阿里巴巴(中国)有限公司 一种虚拟化设备的故障恢复方法和装置
CN115484212B (zh) * 2022-07-26 2023-10-20 浪潮通信技术有限公司 VF的QoS调整方法、装置及电子设备
CN115576732B (zh) * 2022-11-15 2023-03-10 阿里云计算有限公司 根因定位方法以及***
CN118245163A (zh) * 2022-12-23 2024-06-25 华为技术有限公司 虚拟机的调度方法、装置、芯片以及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250211A (zh) * 2016-08-05 2016-12-21 浪潮(北京)电子信息产业有限公司 一种基于sr_iov的虚拟化实现方法
CN107133093A (zh) * 2017-06-02 2017-09-05 郑州云海信息技术有限公司 一种虚拟机的在线迁移方法及装置
CN107562511A (zh) * 2016-06-30 2018-01-09 中兴通讯股份有限公司 物理到虚拟的迁移方法、物理服务器、虚拟服务器及***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562511A (zh) * 2016-06-30 2018-01-09 中兴通讯股份有限公司 物理到虚拟的迁移方法、物理服务器、虚拟服务器及***
CN106250211A (zh) * 2016-08-05 2016-12-21 浪潮(北京)电子信息产业有限公司 一种基于sr_iov的虚拟化实现方法
CN107133093A (zh) * 2017-06-02 2017-09-05 郑州云海信息技术有限公司 一种虚拟机的在线迁移方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Raccoon: A Novel Network I/O Allocation Framework for Workload-Aware VM Scheduling in Virtual Environments";Lingfang Zeng等;《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》;20170930;第28卷(第9期);摘要,第2-5节 *

Also Published As

Publication number Publication date
CN109558216A (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
CN109558216B (zh) 一种基于在线迁移的单根i/o虚拟化优化方法及其***
EP3847549B1 (en) Minimizing impact of migrating virtual services
US11403220B2 (en) Method and apparatus for adaptive cache load balancing for SSD-based cloud computing storage system
CN102696000B (zh) 用于虚拟化数据中心中的协调能量管理的方法和设备
CN104508634B (zh) 虚拟机的动态资源分配
US8694644B2 (en) Network-aware coordination of virtual machine migrations in enterprise data centers and clouds
US7945913B2 (en) Method, system and computer program product for optimizing allocation of resources on partitions of a data processing system
KR20220006490A (ko) 워크로드 동적 자원 배치 및 최적화 수행관리를 위한 하이브리드 클라우드 자원 배분 방법
CN102724277B (zh) 虚拟机热迁移和部署的方法、服务器及集群***
CN103810016B (zh) 实现虚拟机迁移的方法、装置和集群***
US20170017511A1 (en) Method for memory management in virtual machines, and corresponding system and computer program product
CN107992362B (zh) 自动化性能测试的方法、装置及***
CN104301404B (zh) 一种基于虚拟机的调整业务***资源的方法及装置
CN111399986A (zh) Pod资源配额配置方法及装置
CN102508718A (zh) 一种虚拟机负载均衡方法和装置
CN101488098A (zh) 基于虚拟计算技术的多核计算资源管理***
US20160196157A1 (en) Information processing system, management device, and method of controlling information processing system
JP2013515991A (ja) アクセラレータ・リソースを動的に管理するための方法、情報処理システム、およびコンピュータ・プログラム
CN103856337B (zh) 资源占用率获取方法、提供方法、***及服务器
US20200192692A1 (en) Containerized workload scheduling
CN106133693A (zh) 虚拟机的迁移方法、装置及设备
CN103955398A (zh) 一种基于处理器性能监控的虚拟机共生调度方法
CN104598298A (zh) 基于虚拟机当前工作性质以及任务负载的虚拟机调度算法
CN117707693A (zh) 一种异构智能计算平台虚拟化管理***和方法
CN107423114A (zh) 一种基于服务分类的虚拟机动态迁移方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant