CN117389677A - 一种基于云计算技术的服务器以及云系统 - Google Patents

一种基于云计算技术的服务器以及云系统 Download PDF

Info

Publication number
CN117389677A
CN117389677A CN202310067448.4A CN202310067448A CN117389677A CN 117389677 A CN117389677 A CN 117389677A CN 202310067448 A CN202310067448 A CN 202310067448A CN 117389677 A CN117389677 A CN 117389677A
Authority
CN
China
Prior art keywords
operating system
virtual machine
management platform
cloud management
processor core
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.)
Pending
Application number
CN202310067448.4A
Other languages
English (en)
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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing Technologies Co Ltd
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 Huawei Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Priority to PCT/CN2023/105678 priority Critical patent/WO2024008066A1/zh
Publication of CN117389677A publication Critical patent/CN117389677A/zh
Pending legal-status Critical Current

Links

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
    • 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
    • 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/45562Creating, deleting, cloning virtual machine instances
    • 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/45583Memory management, e.g. access or allocation
    • 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/45587Isolation or security of virtual machine instances
    • 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

Abstract

本申请提供了一种基于云计算技术的服务器,包括至少一个第一处理器核、至少一个第二处理器核和存储器,至少一个第一处理器核,用于执行用于与云管理平台进行通信的操作系统的代码以启动并运行第一操作系统,其中:第一操作系统,运行有云管理平台客户端,云管理平台客户端用于从云管理平台获取待创建的第一虚拟机的第一配置信息;至少一个第二处理器核,用于执行用于管理虚拟机的操作系统的代码以启动并运行第二操作系统,其中:第二操作系统,运行有第一虚拟机管理器,第一虚拟机管理器用于接收云管理平台客户端发送的第一配置信息、在第二操作系统中创建并运行第一虚拟机、并为第一虚拟机设置与第一配置信息匹配的虚拟硬件资源。

Description

一种基于云计算技术的服务器以及云系统
技术领域
本申请涉及云计算领域,尤其涉及一种基于云计算技术的服务器以及云系统。
背景技术
随着虚拟化技术的不断发展和成熟,硬件辅助虚拟化技术被广泛应用到虚拟化技术中。硬件辅助虚拟化,顾名思义,就是在处理、芯片组以及输入/输出设备等硬件中加入专门针对虚拟化的支持,使系统软件可以更高效、更简易的实现虚拟化。但是,目前虚拟化软件通常直接运行在服务器的硬件之上,在虚拟化软件之上运行客户机操作系统。但是,这种架构存在较多的问题。
发明内容
本申请提供了一种基于云计算技术的服务器以及系统以及云系统,能够在服务器的两个不同的处理器核上分别运行第一操作系统以及第二操作系统。
第一方面,提供了一种基于云计算技术的服务器,包括至少一个第一处理器核、至少一个第二处理器核和存储器。所述存储器存储有用于与云管理平台进行通信的操作系统的代码和用于管理虚拟机的操作系统的代码。其中,所述至少一个第一处理器核用于执行所述用于与云管理平台进行通信的操作系统的代码以启动并运行第一操作系统。所述至少一个第二处理器核用于执行所述用于管理虚拟机的操作系统的代码以启动并运行第二操作系统。所述第一操作系统,运行有云管理平台客户端。所述云管理平台客户端用于从云管理平台获取待创建的第一虚拟机的第一配置信息。所述第二操作系统,运行有第一虚拟机管理器。所述第一虚拟机管理器用于接收所述云管理平台客户端发送的所述第一配置信息、在所述第二操作系统中创建并运行所述第一虚拟机、并为所述第一虚拟机设置与所述第一配置信息匹配的虚拟硬件资源。
其中,第一虚拟机例如为公有云厂商提供给租户使用的虚拟机,租户可以通过客户端(例如浏览器或远程桌面客户端)远程登录第一虚拟机,以管理员权限安装配置第一虚拟机,例如可在第一虚拟机上配置网页服务、文件服务、和/或数据库服务。
上述方案中,在同一服务器中能够同时运行第一操作系统以及第二操作系统,第一操作系统中设置有云管理平台客户端,第二操作系统设置有第一虚拟机管理器。如果云管理平台客户端直接安装在第一操作系统上,就会对虚拟机暴露模拟硬件接口,自然就很容易被黑客攻击,而本方案中将第一虚拟机管理器安装在第二操作系统中,云管理平台客户端安装在第一操作系统中,就可以通过第二操作系统对第一虚拟机管理器进行操作系统级别的隔离,能够有效避免第一操作系统被黑客攻击,提高系统安全性。
并且,由于第一操作系统和第二操作系统在同一服务器中由不同处理器核同时运行,因此可实现硬件层面的操作系统隔离,第一操作系统与云管理平台通信获取用于创建虚拟机的配置信息,第二操作系统从第一操作系统获取配置信息并创建提供给租户使用的虚拟机,通过不同的操作系统实现管理面和业务面,使得管理面和业务面可以实现操作系统之间的隔离,进一步提高系统安全性。
在一些可能的设计中,所述云管理平台客户端还可以和所述第一虚拟机管理器相互配合,实现对所述第一虚拟机的生命周期的管理。其中,所述云管理平台客户端用于从云管理平台获取针对所述第一虚拟机的生命周期的管理命令并发送所述管理命令至所述第一虚拟机管理器。所述第一虚拟机管理器用于根据所述管理命令对所述第一虚拟机执行以下操作的一者或任意组合:开机、关机、更改规格、迁移和释放。
上述方案中,能够在同一服务器中跨操作系统对第一虚拟机的生命周期进行管理,因此,即使第一虚拟机设置于远离租户的第二操作系统中,也能够按照租户的意思开启、关闭、修改、迁移和释放第一虚拟机,确保了租户对远离租户的第二操作系统中第一虚拟机的掌控权。
在一些可能的设计中,所述第一操作系统中还运行有虚拟机报文转发模块。所述虚拟机报文转发模块将与所述第一虚拟机相关的第一业务报文转发至所述第一虚拟机或将从所述第一虚拟机接收的第二业务报文转发到所述服务器的外部网络。
在上述方案中,第一虚拟机可以通过第一操作系统中的虚拟机报文转发模块实现与服务器的外部网络之间的通讯。即,第一操作系统作为了第二操作系统中的第一虚拟机与服务器的外部网络之间沟通的桥梁,实现了第一虚拟机和服务器的外部网络之间的通讯。并且,由于虚拟机报文转发模块涉及大量输入输出数据的发送,虚拟机报文转发模块设置在第一操作系统中,缩短了输入输出数据发送的路径,能够有效提高输入输出数据的传输效率,进一步,通过第一操作系统可实现第一操作系统的服务器上运行的虚拟机的报文的统一管控。
在一些可能的设计中,所述第二操作系统,还运行有虚拟机报文转发模块。所述虚拟机报文转发模块将与所述第一虚拟机相关的第一业务报文转发至所述第一虚拟机或将从所述第一虚拟机接收的第二业务报文转发到所述服务器的外部网络。其中,第一业务报文可以是目的IP地址为第一虚拟机的IP地址的业务报文,或者,可以是目的MAC地址为第一虚拟机的MAC地址的业务报文。第二业务报文可以是源IP地址为第一虚拟机的IP地址的业务报文,或者,源MAC地址为第一虚拟机的IP地址的业务报文。
在上述方案中,由于虚拟机报文转发模块也较容易收到黑客的攻击,因此,将虚拟机报文转发模块设置在第二操作系统,可以实现通过第二操作系统隔离虚拟机报文转发模块以及第一操作系统,提高系统的安全性能。
在一些可能的设计中,所述第一操作系统还运行有操作系统启动模块和操作系统关闭模块中的至少一个。所述操作系统启动模块用于触发所述至少一个第二处理器核执行所述用于管理虚拟机的操作系统的代码以启动并运行所述第二操作系统。所述操作系统关闭模块用于触发所述至少一个第二处理器核停止执行所述用于管理虚拟机的操作系统的代码以关闭所述第二操作系统。
上述方案中,通过在第一操作系统中设置操作系统启动模块,能够在第一操系统启动之后,引导第二操作系统,实现两个操作系统同时运行在服务器的同一硬件系统中。这里的同时,是指在至少在某一时刻,两个操作系统分享同一硬件系统的不同计算或者存储资源。此外,还可以通过操作系统关闭模块关闭所述第二操作系统。
在一些可能的设计中,所述第一操作系统还运行有规格调整模块。所述规格调整模块用于调整所述服务器中分配给所述第二操作系统的至少一个第二处理器核的数量、分配给所述第二操作系统的内存大小、和/或分配给所述第二操作系统的PCI设备或PCIe设备的类型和数量。
在一些可能的设计中,所述云管理平台客户端和所述第一操作系统之间互相配合,实现对所述第二操作系统进行操作系统升级。所述第一操作系统还运行有升级模块。所述云管理平台客户端用于从所述云管理平台获取操作系统升级文件。所述升级模块用于触发所述至少一个第二处理器核根据所述操作系统升级文件对所述第二操作系统进行操作系统升级。
上述方案中,通过在第一操作系统中运行升级模块,能够在第一操作系统不进行升级的情况下,单独对第二操作系统进行升级。
在一些可能的设计中,所述存储器中设置有所述第一操作系统与所述第二操作系统的共享内存区域。云管理平台客户端,用于将所述第一配置信息发送至所述共享内存区域并产生中断信号以通知所述第二操作系统中的所述第一虚拟机管理器从所述共享内存区域获取所述第一配置信息。
上述方案中,通过共享内存区域的方式,实现了两个同时运行在服务器的同一硬件系统之上的两个操作系统之间的通信。
在一些可能的设计中,所述服务器还包括至少一个第三处理器核。所述至少一个第三处理器核,用于执行用于管理虚拟机的操作系统的代码以启动并运行第三操作系统。所述第三操作系统,运行有第二虚拟机管理器。所述云管理平台客户端从云管理平台获取待创建的第二虚拟机的第二配置信息。所述第二虚拟机管理器用于接收所述云管理平台客户端发送的所述第二配置信息、在所述第二操作系统中创建并运行所述第二虚拟机、并为所述第二虚拟机设置与所述第二配置信息匹配的虚拟硬件资源。由于第三处理器核中的第三操作系统和第二处理器核中的第二操作系统是相类似的,具有相同的功能,所以,这里并没有对第三操作系统展开详细的介绍。
上述方案中,在同一服务器的硬件系统上可以运行三个以上的操作系统,可以实现多重的隔离。
在一些可能的设计中,所述第一操作系统用于安装非热升级软件,所述第二操作系统用于安装热升级软件。其中,所述安装有所述热升级软件的第二操作系统能够在业务不中断的情况下进行升级,安装所述非热升级软件的第一操作系统不能够在业务不中断的情况下进行升级。例如,热升级软件可以包括容易导致虚拟机逃逸的软件、需要经常进行升级的软件等等中的一种或者多种,非热升级软件可以包括不容易导致虚拟机逃逸的软件、不需要经常进行升级的软件等等中的一种或者多种。
上述方案中,将热升级软件安装在第二操作系统,将非热升级软件安装在第一操作系统中,能够通过第二操作系统将热升级软件和第一操作系统进行隔离,从而提高了安全性能。另外,热升级软件安装在体量比较小的第一虚拟机管理系统中,可以便于对安装了热升级软件的第二操作系统进行升级,也加快了安装了热升级软件的第二操作系统进行升级的速度。此外,热升级软件不涉及需要大量进行IO数据转发的软件,因此,能够在业务不中断的情况下进行升级。
在一些可能的设计中,所述第二操作系统的占用的资源小于所述第一操作系统占用的资源,具体地,所述第二操作系统占用的处理器核的数量少于所述第一操作系统占用的处理器核的数量,和/或,所述第二操作系统占用的存储器的存储空间小于所述第一操作系统占用的存储器的存储空间。由于所述安装有所述热升级软件的第二操作系统的升级频率大于所述安装所述非热升级软件的第一操作系统的升级频率,所以,第二操作系统的体量需要比第一操作系统的体量要小,才能便于第二操作系统进行升级。因此,所述第二操作系统比所述第一操作系统缺少了文件系统以及网络协议栈,从而减轻第二操作系统的体量。
在一些可能的设计中,所述第二操作系统和所述第一操作系统至少在一段时间内同时运行。
上述方案中,在同一时刻在同一服务器的硬件系统之上可以同时运行第二操作系统和第一操作系统。
第二方面,提供了一种服务器,包括插置于所述服务器的卸载卡,所述卸载卡包括第一存储器以及至少一个第一处理器核。所述服务器还包括第二存储器以及至少一个第二处理器核。所述第一存储器存储有用于与云管理平台通信的操作系统的代码,所述第二存储器存储有用于管理虚拟机的操作系统的代码。所述至少一个第一处理器核用于执行用于与云管理平台通信的操作系统的代码以启动并运行第一操作系统。所述第一操作系统,运行有云管理平台客户端。所述至少一个第二处理器核,用于执行用于管理虚拟机的操作系统的代码以启动并运行第二操作系统。所述第二操作系统,运行有第一虚拟机管理器。所述云管理平台客户端用于从所述云管理平台获取待创建的第一虚拟机的第一配置信息。所述第一虚拟机管理器用于接收所述云管理平台客户端发送的所述第一配置信息、在所述第二操作系统中创建并运行所述第一虚拟机、并为所述第一虚拟机设置与所述第一配置信息匹配的虚拟硬件资源。
上述方案中,第一操作系统运行于服务器的卸载卡中。因为,第一操作系统负责与服务器之外的网络设备进行通讯,因此,将第一操作系统设置于服务器的卸载卡中,能够缩短数据传输的路径的长度,从而提高数据传输的效率。并且,第一操作系统位于卸载卡中,第二操作系统位于卸载卡之外,能够更好地在硬件层面上实现第一操作系统和第二操作系统之间的隔离。
在一些可能的设计中,所述云管理平台客户端还可以和所述第一虚拟机管理器相互配合,实现对所述第一虚拟机的生命周期的管理。其中,所述云管理平台客户端用于从云管理平台获取针对所述第一虚拟机的生命周期的管理命令并发送所述管理命令至所述第一虚拟机管理器。所述第一虚拟机管理器用于根据所述管理命令对所述第一虚拟机执行以下操作的一者或任意组合:开机、关机、更改规格、迁移和释放。
在一些可能的设计中,所述第一操作系统中还运行有虚拟机报文转发模块。所述虚拟机报文转发模块将与所述第一虚拟机相关的第一业务报文转发至所述第一虚拟机或将从所述第一虚拟机接收的第二业务报文转发到所述服务器的外部网络。
在一些可能的设计中,所述第二操作系统,还运行有虚拟机报文转发模块。所述虚拟机报文转发模块将与所述第一虚拟机相关的第一业务报文转发至所述第一虚拟机或将从所述第一虚拟机接收的第二业务报文转发到所述服务器的外部网络。
在一些可能的设计中,所述第一操作系统还运行有操作系统启动模块和操作系统关闭模块中的至少一个。所述操作系统启动模块用于触发所述至少一个第二处理器核执行所述用于管理虚拟机的操作系统的代码以启动并运行所述第二操作系统。所述操作系统关闭模块用于触发所述至少一个第二处理器核停止执行所述用于管理虚拟机的操作系统的代码以关闭所述第二操作系统。
在一些可能的设计中,所述第一操作系统还运行有规格调整模块。所述规格调整模块用于调整所述服务器中分配给所述第二操作系统的至少一个第二处理器核的数量、分配给所述第二操作系统的内存大小、和/或分配给所述第二操作系统的PCI设备或PCIe设备的类型和数量。
在一些可能的设计中,所述云管理平台客户端和所述第一操作系统之间互相配合,实现对所述第二操作系统进行操作系统升级。所述第一操作系统还运行有升级模块。所述云管理平台客户端用于从所述云管理平台获取操作系统升级文件。所述升级模块用于触发所述至少一个第二处理器核根据所述操作系统升级文件对所述第二操作系统进行操作系统升级。
在一些可能的设计中,所述第二存储器中设置有所述第一操作系统与所述第二操作系统的共享内存区域。云管理平台客户端,用于将所述第一配置信息发送至所述共享内存区域并产生中断信号以通知所述第二操作系统中的所述第一虚拟机管理器从所述共享内存区域获取所述第一配置信息。
在一些可能的设计中,所述服务器还包括至少一个第三处理器核。所述至少一个第三处理器核,用于执行用于管理虚拟机的操作系统的代码以启动并运行第三操作系统。所述第三操作系统,运行有第二虚拟机管理器。所述云管理平台客户端从云管理平台获取待创建的第二虚拟机的第二配置信息。所述第二虚拟机管理器用于接收所述云管理平台客户端发送的所述第二配置信息、在所述第二操作系统中创建并运行所述第二虚拟机、并为所述第二虚拟机设置与所述第二配置信息匹配的虚拟硬件资源。
第三方面,提供了一种云系统,包括云管理平台和与所述云管理平台网络连接的多个服务器。所述云管理平台,用于接收租户输入的待创建的第一虚拟机的第一配置信息,并在所述多个服务器中选择能够提供所述第一配置信息指示的虚拟硬件资源的目标服务器。所述目标服务器,包括至少一个第一处理器核、至少一个第二处理器核和存储器。所述存储器存储有用于与云管理平台进行通信的操作系统的代码和用于管理虚拟机的操作系统的代码。所述至少一个第一处理器核用于执行所述用于与云管理平台进行通信的操作系统的代码以启动并运行第一操作系统。所述第一操作系统,运行有云管理平台客户端。所述至少一个第二处理器核用于执行所述用于管理虚拟机的操作系统的代码以启动并运行第二操作系统。所述第二操作系统,运行有第一虚拟机管理器。所述云管理平台客户端用于从所述云管理平台获取待创建的第一虚拟机的第一配置信息。所述第一虚拟机管理器用于接收所述云管理平台客户端发送的所述第一配置信息、在所述第二操作系统中创建并运行所述第一虚拟机、并为所述第一虚拟机设置与所述第一配置信息匹配的虚拟硬件资源。
在一些可能的设计中,所述云管理平台客户端还可以和所述第一虚拟机管理器相互配合,实现对所述第一虚拟机的生命周期的管理。其中,所述云管理平台客户端用于从云管理平台获取针对所述第一虚拟机的生命周期的管理命令并发送所述管理命令至所述第一虚拟机管理器。所述第一虚拟机管理器用于根据所述管理命令对所述第一虚拟机执行以下操作的一者或任意组合:开机、关机、更改规格、迁移和释放。
在一些可能的设计中,所述第一操作系统中还运行有虚拟机报文转发模块。所述虚拟机报文转发模块将与所述第一虚拟机相关的第一业务报文转发至所述第一虚拟机或将从所述第一虚拟机接收的第二业务报文转发到所述服务器的外部网络。
在一些可能的设计中,所述第二操作系统,还运行有虚拟机报文转发模块。所述虚拟机报文转发模块将与所述第一虚拟机相关的第一业务报文转发至所述第一虚拟机或将从所述第一虚拟机接收的第二业务报文转发到所述服务器的外部网络。
在一些可能的设计中,所述第一操作系统还运行有操作系统启动模块和操作系统关闭模块中的至少一个。所述操作系统启动模块用于触发所述至少一个第二处理器核执行所述用于管理虚拟机的操作系统的代码以启动并运行所述第二操作系统。所述操作系统关闭模块用于触发所述至少一个第二处理器核停止执行所述用于管理虚拟机的操作系统的代码以关闭所述第二操作系统。
在一些可能的设计中,所述第一操作系统还运行有规格调整模块。所述规格调整模块用于调整所述服务器中分配给所述第二操作系统的至少一个第二处理器核的数量、分配给所述第二操作系统的内存大小、和/或分配给所述第二操作系统的PCI设备或PCIe设备的类型和数量。
在一些可能的设计中,所述云管理平台客户端和所述第一操作系统之间互相配合,实现对所述第二操作系统进行操作系统升级。所述第一操作系统还运行有升级模块。所述云管理平台客户端用于从所述云管理平台获取操作系统升级文件。所述升级模块用于触发所述至少一个第二处理器核根据所述操作系统升级文件对所述第二操作系统进行操作系统升级。
在一些可能的设计中,所述存储器中设置有所述第一操作系统与所述第二操作系统的共享内存区域。云管理平台客户端,用于将所述第一配置信息发送至所述共享内存区域并产生中断信号以通知所述第二操作系统中的所述第一虚拟机管理器从所述共享内存区域获取所述第一配置信息。
在一些可能的设计中,所述服务器还包括至少一个第三处理器核。所述至少一个第三处理器核,用于执行用于管理虚拟机的操作系统的代码以启动并运行第三操作系统。所述第三操作系统,运行有第二虚拟机管理器。所述云管理平台客户端从云管理平台获取待创建的第二虚拟机的第二配置信息。所述第二虚拟机管理器用于接收所述云管理平台客户端发送的所述第二配置信息、在所述第二操作系统中创建并运行所述第二虚拟机、并为所述第二虚拟机设置与所述第二配置信息匹配的虚拟硬件资源。
在一些可能的设计中,所述第一操作系统用于安装非热升级软件,所述第二操作系统用于安装热升级软件。其中,所述安装有所述热升级软件的第二操作系统能够在业务不中断的情况下进行升级,安装所述非热升级软件的第一操作系统不能够在业务不中断的情况下进行升级。例如,热升级软件可以包括容易导致虚拟机逃逸的软件、需要经常进行升级的软件等等中的一种或者多种,非热升级软件可以包括不容易导致虚拟机逃逸的软件、不需要经常进行升级的软件等等中的一种或者多种。
在一些可能的设计中,所述第二操作系统的占用的资源小于所述第一操作系统占用的资源,具体地,所述第二操作系统占用的处理器核的数量少于所述第一操作系统占用的处理器核的数量,和/或,所述第二操作系统占用的存储器的存储空间小于所述第一操作系统占用的存储器的存储空间。由于所述安装有所述热升级软件的第二操作系统的升级频率大于所述安装所述非热升级软件的第一操作系统的升级频率,所以,第二操作系统的体量需要比第一操作系统的体量要小,才能便于第二操作系统进行升级。因此,所述第二操作系统比所述第一操作系统缺少了文件系统以及网络协议栈,从而减轻第二操作系统的体量。
在一些可能的设计中,所述第二操作系统和所述第一操作系统至少在一段时间内同时运行。
第四方面,提供了一种云系统,包括云管理平台和与所述云管理平台网络连接的多个服务器。所述云管理平台,用于接收租户输入的待创建的第一虚拟机的第一配置信息,并在所述多个服务器中选择能够提供所述第一配置信息指示的虚拟硬件资源的目标服务器。所述目标服务器,包括插置于所述目标服务器的卸载卡,所述卸载卡包括第一存储器以及至少一个第一处理器核。所述目标服务器还包括第二存储器以及至少一个第二处理器核。所述第一存储器存储有用于与所述云管理平台通信的操作系统的代码,所述第二存储器存储有用于管理虚拟机的操作系统的代码。所述至少一个第一处理器核,用于执行与所述云管理平台通信的操作系统的代码以启动并运行第一操作系统。所述第一操作系统,运行有云管理平台客户端。所述至少一个第二处理器核,用于执行用于管理虚拟机的操作系统的代码以启动并运行第二操作系统。所述第二操作系统,运行有第一虚拟机管理器。所述云管理平台客户端用于从所述云管理平台获取待创建的第一虚拟机的第一配置信息。所述第一虚拟机管理器用于接收所述云管理平台客户端发送的所述第一配置信息、在所述第二操作系统中创建并运行所述第一虚拟机、并为所述第一虚拟机设置与所述第一配置信息匹配的虚拟硬件资源。
在一些可能的设计中,所述云管理平台客户端还可以和所述第一虚拟机管理器相互配合,实现对所述第一虚拟机的生命周期的管理。其中,所述云管理平台客户端用于从云管理平台获取针对所述第一虚拟机的生命周期的管理命令并发送所述管理命令至所述第一虚拟机管理器。所述第一虚拟机管理器用于根据所述管理命令对所述第一虚拟机执行以下操作的一者或任意组合:开机、关机、更改规格、迁移和释放。
在一些可能的设计中,所述第一操作系统中还运行有虚拟机报文转发模块。所述虚拟机报文转发模块将与所述第一虚拟机相关的第一业务报文转发至所述第一虚拟机或将从所述第一虚拟机接收的第二业务报文转发到所述服务器的外部网络。
在一些可能的设计中,所述第二操作系统,还运行有虚拟机报文转发模块。所述虚拟机报文转发模块将与所述第一虚拟机相关的第一业务报文转发至所述第一虚拟机或将从所述第一虚拟机接收的第二业务报文转发到所述服务器的外部网络。
在一些可能的设计中,所述第一操作系统还运行有操作系统启动模块和操作系统关闭模块中的至少一个。所述操作系统启动模块用于触发所述至少一个第二处理器核执行所述用于管理虚拟机的操作系统的代码以启动并运行所述第二操作系统。所述操作系统关闭模块用于触发所述至少一个第二处理器核停止执行所述用于管理虚拟机的操作系统的代码以关闭所述第二操作系统。
在一些可能的设计中,所述第一操作系统还运行有规格调整模块。所述规格调整模块用于调整所述服务器中分配给所述第二操作系统的至少一个第二处理器核的数量、分配给所述第二操作系统的内存大小、和/或分配给所述第二操作系统的PCI设备或PCIe设备的类型和数量。
在一些可能的设计中,所述云管理平台客户端和所述第一操作系统之间互相配合,实现对所述第二操作系统进行操作系统升级。所述第一操作系统还运行有升级模块。所述云管理平台客户端用于从所述云管理平台获取操作系统升级文件。所述升级模块用于触发所述至少一个第二处理器核根据所述操作系统升级文件对所述第二操作系统进行操作系统升级。
在一些可能的设计中,所述第二存储器中设置有所述第一操作系统与所述第二操作系统的共享内存区域。云管理平台客户端,用于将所述第一配置信息发送至所述共享内存区域并产生中断信号以通知所述第二操作系统中的所述第一虚拟机管理器从所述共享内存区域获取所述第一配置信息。
在一些可能的设计中,所述服务器还包括至少一个第三处理器核。所述至少一个第三处理器核,用于执行用于管理虚拟机的操作系统的代码以启动并运行第三操作系统。所述第三操作系统,运行有第二虚拟机管理器。所述云管理平台客户端从云管理平台获取待创建的第二虚拟机的第二配置信息。所述第二虚拟机管理器用于接收所述云管理平台客户端发送的所述第二配置信息、在所述第二操作系统中创建并运行所述第二虚拟机、并为所述第二虚拟机设置与所述第二配置信息匹配的虚拟硬件资源。
附图说明
图1是本申请提供的一种云系统的结构示意图;
图2是本申请提供的一种操作系统启动模块的结构示意图;
图3是本申请提供的通过操作系统启动模块引导第二操作系统进行启动的示意图;
图4A至图4E是本申请提供的一些热升级软件和非热升级软件部署方式的示意图;
图5是本申请提供的另一种云系统的结构示意图。
具体实施方式
下面先对本申请涉及的一些名称进行定义。
虚拟机监视器(virtual machine monitor,VMM):一个位于计算机硬件和操作系统之间的软件层,它运行在特权级,负责管理和隔离上层运行的多个虚拟机。为这些虚拟机提供安全、独立的运行环境。同时也为每个虚拟机虚拟出一套与真实硬件无关的虚拟硬件系统,如显示器、硬盘、CPU、内存、网卡等。
基于内核的虚拟机(kernel-based virtual machine,KVM):一种基于Linux内核的虚拟化基础设施,可将Linux内核转化为一个虚拟机监视器,KVM仅提供抽象的设备,但不模拟处理器,仅开放/dev/kvm接口供使用者调用。
Linux:一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
参见图1,图1是本申请提供的一种云系统的结构示意图。如图1所示,本申请提供的云系统包括:云管理平台110以及与云管理平台110网络连接的多个服务器120。
云管理平台110是用于对多个服务器120进行管理的平台。云管理平台110可以和多个服务器120设置于相同的地域,也可以和多个服务器120设置于不同的地域,此处不作具体限定。云管理平台110可以包括云管理平台服务端111。云管理平台服务端111可以和云管理平台客户端126配合,完成云管理平台对服务器的管理。
服务器包括一个或者多个处理器,所述第一个多个处理器可以包括一个或者多个处理器核。服务器还可以包括一个或者多个存储器,一个或者多个网卡设备等等。在一种具体的实施例中,服务器包括至少一个第一处理器核121、至少一个第二处理器核122和存储器123。
存储器123用于存储与云管理平台进行通信的操作系统的代码以及用于管理虚拟机的操作系统的代码。
第一处理器核121,用于执行用于与云管理平台进行通信的操作系统的代码以启动并运行第一操作系统124。第一处理器核121的数量可以是一个或者多个。通常来说,第一操作系统124可以负责对服务器的资源,包括,计算资源、存储资源以及网络资源等等进行管理。第一操作系统124还可以为第二操作系统125分配计算资源、存储资源以及网络资源等等,并对第二操作系统125进行管理。因此,第一操作系统124的体量往往比较大,即第一操作系统往往包含更多的组件,并且,第一操作系统124往往需要占用更多的计算资源,存储资源以及网络资源。
第二处理器核122,用于执行所述用于管理虚拟机的操作系统的代码以启动并运行第二操作系统。第一处理器核121的数量可以是一个或者多个。通常来说,第二操作系统125可以负责对第二操作系统的资源,包括,计算资源、存储资源以及网络资源等等进行管理。第二操作系统125中的资源往往是第一操作系统管理的资源的一部分。因此,第二操作系统125的体量可以比较小,即第二操作系统125可以包含更少的组件,例如,第二操作系统125和第一操作系统124相比,可以缺少了文件系统以及网络协议栈。
为了能够实现在同一硬件系统上运行第一操作系统124以及第二操作系统125,需要解决的问题包括:第一操作系统124和第二操作系统125的启动,第一操作系统124和第二操作系统125之间的通讯。
由于在以往的情况下,在同一个时刻通常只有一个操作系统在服务器的硬件系统上运行,因此,在服务器启动的时候,只会启动一个操作系统。而主操作系统和客户操作系统是分别运行在服务器的硬件系统上以及虚拟机中,两者的运行环境完全不同,如此一来,主机操作系统启动之后,引导客户机操作系统的方法并不适用于两个甚至更多操作系统同时在服务器的硬件系统上运行的情况。现在同一时刻需要有两个甚至更多操作系统在服务器的硬件系统上运行,则需要考虑如何启动另外的操作系统。以服务器的硬件系统上运行第一操作系统以及第二操作系统两个操作系统为例,在服务器的初始化阶段,可以在基本输入输出系统(basic input output system,BIOS)或者bootloader中引导第一操作系统进行启动。第一操作系统启动成功之后,结合业务部署情况,可以计算出服务器的硬件系统上还剩多少资源可以分配给第二操作系统。然后,第一操作系统可以通过操作系统启动模块引导第二操作系统进行启动。如图2所示,操作系统启动模块包括引导工具(bootloader-tools)以及引导模组(bootloader moudule)。引导模组可以包括一种或者多种引导子模块,例如,引导子模块可以是适用于基于x86的硬件平台的x86引导子模块(例如,x86-boot-loader),可以是适用于基于arm的硬件平台的arm引导子模块(例如,arm-boot-loader)等等。引导工具可以设置于第一操作系统的用户空间(user space),引导模组可以设置于第一操作系统的内核空间(kernel space)。如图3所示,第一操作系统通过操作系统启动模块引导第二操作系统进行启动的具体过程可以是:通过操作系统启动模块调用引导模组提供的接口将第二操作系统的内核、初始化模块以及命令行模块对应加载到供第二操作系统使用的内存区域。其中,内核可以加载到第二操作系统使用的内存区域中的内核区域(kernelarea),初始化模块加载到第二操作系统使用的内存区域中的初始化区域(initrd area),命令行模块加载到第二操作系统使用的内存区域中的命令行区域(cmdline area)。此外,第二操作系统使用的内存区域还包括:建立区域(setup area)、保留区域(reserved area)以及页表区域(page table area)等等。然后,引导模组中的子引导模块通过APIC唤醒IPI机制通知第二操作系统使用的处理器核执行第二操作系统的初始化,完成第二操作系统的启动。相应地,还可以在第一操作系统中设置操作系统关闭模块。其中,操作系统关闭模块用于触发至少一个第二处理器核停止执行用于管理虚拟机的操作系统的代码以关闭第二操作系统。这样,第一操作系统就可以通过操作系统启动模块以及操作系统关闭模块随意实现对第二操作系统的启动和关闭。此外,还可以在第一操作系统中设置规格调整模块。规格调整模块用于调整至少一个第二处理器核的数量、分配给所述第二操作系统的内存大小、和/或分配给所述第二操作系统的PCI设备或PCIe设备的类型和数量。其中,对第二操作系统的调整可以发生在第二操作系统启动之前,也可以发生在第二操作系统重启之前。在一具体的实施例中,规格调整模块可以是一个第一操作系统的应用,系统管理员可以在这个应用调整从操作系统的规格,以及,执行第二操作系统的启动、关闭以及升级等等操作。
当存在两个或者两个以上运行在服务器的硬件系统上的操作系统时,操作系统之间会存在通讯的需求,由于在以往的情况下,在同一个时刻通常只有一个在服务器的硬件系统上运行的操作系统,所以,自然是不存在两个在同一服务器的硬件系统上运行的操作系统进行通讯的机制。并且,尽管现有技术中存在第一操作系统和客户机操作系统之间进行通讯的机制,但是,第一操作系统和客户机操作系统分别是运行在服务器的硬件系统上的操作系统和运行在虚拟机上的操作系统,因此,第一操作系统和客户机操作系统之间的通讯机制不适用于同时运行在同一服务器的硬件系统上的多个操作系统之间的通讯。因此,必须为多个运行在服务器的硬件系统上的操作系统设置通信通道。以服务器的硬件系统上运行第一操作系统和第二操作系统两个操作系统为例,可以通过共享内存池和IPI中断消息模拟通道设备。该通道设备的配置信息可以在第一操作系统引导第二操作系统启动时,写入供第二操作系统使用的内存区域中的保留区域,这样,第二操作系统中的通道设备驱动(channel-device-driver)就可以从该保留区域中获得通道设备的配置信息,并根据通道设备的配置信息进行初始化。在通道设备驱动初始化完成之后,可以基于通道设备实现消息互通。
在同一服务器中运行的第一操作系统和第二操作系统可以具有以下的特点:
(1)第一操作系统和第二操作系统可以在至少一段时间内是同时运行的。第一操作系统可以在第一操作系统启动之后,就引导第二操作系统进行启动,然后,第一操作系统和第二操作系统同时运行。这里的同时运行可以是指第一操作系统和第二操作系统在同一个时刻是同时作为不同处理器核中的实例,处于活动状态的。举个例子说明,服务器上的硬件系统中的硬件设备包括:128个处理器核、512G内存和16个PCI设备,将这些硬件设备分给两个不同的操作系统使用,第一操作系统占用100个处理器核、12G内存、1个PCI设备,第二操作系统占用28个处理器核、500G内存、14个PCI设备;每个操作系统只使用自己的处理器核、内存、PCI设备。如果有些硬件设备是全局唯一的,例如,剩下的一个PCI设备,则根据该全局唯一的硬件设备是否可以被共享来决定该全局唯一的硬件设备的使用方法。如果该全局唯一硬件设备是可共享的,则需要两个操作系统进行分时复用,如果该全局唯一硬件设备是不可共享的,则只能被一个操作系统使用。此时,这两个操作系统是同时运行的。
(2)第一操作系统和第二操作系统均可以直接安装在服务器的硬件系统上。这里的含义为第二操作系统可以不通过虚拟硬件模拟软件而直接安装在同一个服务器的处理器核上,第一操作系统也可以不通过虚拟硬件模拟软件而直接安装在同一个服务器的处理器核上。所以,第一操作系统和第二操作系统之间没有间隔虚拟硬件模拟软件。相反,现有技术中第一操作系统安装在服务器的硬件系统之上,然后,在第一操作系统上安装虚拟硬件模拟软件,然后,再在虚拟硬件模拟软件之上安装客户机操作系统,此时,第一操作系统和客户机操作系统之间间隔了虚拟硬件模拟软件,所以,第一操作系统是直接安装在服务器的硬件系统上的,但是,客户机操作系统则不是直接安装在服务器的硬件系统上的。
(3)第一操作系统和第二操作系统之间可以是相互隔离的。第一操作系统和第二操作系统之间是相互隔离的是指第一操作系统占据的硬件资源和第二操作系统占据的硬件资源之间是“相互隔离”的。在一种可能的实施例中,第一操作系统和第二操作系统分别安装在服务器的第一分区和第二分区中,从而实现了物理上的隔离。举个例子说明,服务器上的硬件系统包括:128个处理器核、512G内存和16个PCI设备,将这些硬件系统分给两个不同的操作系统使用,第一操作系统占用第一分区中的100个处理器核、12G内存、1个PCI设备,第二操作系统占用另外的一个分区中的28个处理器核、500G内存、14个PCI设备;每个操作系统只使用自己的处理器核、内存、PCI设备。这两个操作系统之间的硬件资源是不会发生重叠的,此时,这两个操作系统之间是互相隔离的。
(4)第一操作系统可以对第二操作系统进行管理。第一操作系统可以管理服务器上的大部分或者全部硬件系统,但是,第一操作系统可以将一部分硬件设备分给第二操作系统使用。第一操作系统具有第二操作系统的生命周期管理能力,具体可以体现在:第一操作系统可以启动第二操作系统、第一操作系统可以回收第二操作系统的资源、第二操作系统发送故障时不影响第一操作系统正常运行,但是,第一操作系统发生故障时会影响第二操作系统正常运行。
可以理解,第一操作系统可以采用windows系统、linux系统等等中或者他们的裁剪版本的任意一种。第二操作系统可以采用windows系统、linux系统等等或者他们的裁剪版本中的任意一种。第一操作系统和第二操作系统可以采用相同的操作系统,也可以采用不同的操作系统。例如,第一操作系统和第二操作系统均可以采用linux系统,或者,第二操作系统可以采用windows系统,第一操作系统可以采用linux系统等等。
在服务器的同一硬件系统中同时安装了第一操作系统和第二操作系统之后,在可以在第二操作系统中创建第一虚拟机。为了能够创建第一虚拟机,可以在云管理平台110中设置云管理平台服务端111,可以在服务器的第一操作系统124中设置云管理平台客户端126,可以在服务器的第二操作系统125中设置第一虚拟机管理器127。云管理平台服务端111、云管理平台客户端126以及第一虚拟机管理器127用于相互配合,共同完成第一虚拟机的创建。具体地,云管理平台服务端111接收租户输入的待创建的第一虚拟机的第一配置信息,根据所述第一配置信息从多个服务器中选择目标服务器,并将第一配置信息发送给目标服务器的第一操作系统中的云管理平台客户端126,例如,虚拟机管理(VM Manager),第一操作系统中的云管理平台客户端126将第一配置信息发送至共享内存区域并产生中断信号以通知第二操作系统的第一虚拟机管理器127,例如,虚拟机管理代理(VM Manageragent)从共享内存区域获取第一配置信息。第一虚拟机管理器127接收到第一配置信息之后,基于第一配置信息在第二操作系统125之上创建第一虚拟机,并向第一虚拟机提供与第一配置信息匹配的虚拟硬件资源。其中,第一配置信息包括待创建的第一虚拟机的规格,例如,存储器的大小、存储器的类型、内存的大小、内存的类型、处理器核的类型、处理器核的数量、处理器核的计算速度、处理器核的内核数量、网络带宽、第一虚拟机的生命周期等等。第一配置信息可以包括至少两种:在第一种方式中,第一配置信息可以是租户在界面上输入的,用户可以根据自己的需求输入所需要的处理器核的类型,处理器核的数量,处理器核的计算能力要求,存储器的类型,存储器的数量,内存的大小,内存的类型,网络带宽的要求等等,此时,第一虚拟机可以理解为是私人订制的。在第二种方式中,第一配置信息可以从界面提供的多种可能的配置信息作为第一配置信息,也就是说,用户只能从多种配置信息中进行选择,而不能根据自己的需要自行决定处理器核的类型,处理器核的数量,处理器核的计算能力要求,存储器的类型,存储器的数量,内存的大小,内存的类型,网络带宽的要求等等。此时,第一虚拟机可以理解为按规格进行提供的,用户只能从有限的规格中选择适合自己的规格。虚拟硬件资源包括第一虚拟机需要使用到的计算资源、存储资源和网络资源等等。例如,虚拟硬件资源可以包括由第一虚拟机管理器对第二处理器核进行虚拟化生成的虚拟处理器核,虚拟处理器核可以为第二处理器核的一个时间片(例如,可以从第二处理器核的每秒钟中分出10ms给这个虚拟机使用)。云管理平台客户端还可以从云管理平台获取针对所述第一虚拟机的生命周期的管理命令并发送所述管理命令至所述第一虚拟机管理器。所述第一虚拟机管理器则根据所述管理命令对所述第一虚拟机执行以下操作的一者或任意组合:开机、关机、更改规格、迁移和释放。
当需要创建多个虚拟机时,创建虚拟机的方法与创建第一虚拟机的方式相类似,例如:所述服务器还包括至少一个第三处理器核,所述云管理平台客户端从云管理平台获取待创建的第二虚拟机的第二配置信息;所述至少一个第三处理器核,用于执行所述用于管理虚拟机的操作系统的代码以启动并运行第二操作系统,其中:所述第二操作系统,设置有第一虚拟机管理器,所述第二第一虚拟机管理器接收所述云管理平台客户端发送的所述第二配置信息,在所述第二操作系统创建所述第二虚拟机,并向所述第二虚拟机提供与所述第二配置信息匹配的虚拟硬件资源。
上述方案中,在同一服务器中能够同时运行第一操作系统以及第二操作系统,第一操作系统中设置有云管理平台客户端,第二操作系统设置有第一虚拟机管理器。如果云管理平台客户端直接安装在第一操作系统上,就会对虚拟机暴露模拟硬件接口,自然就很容易被黑客攻击,而本方案中将第一虚拟机管理器安装在第二操作系统中,云管理平台客户端安装在第一操作系统中,就可以通过第二操作系统对第一虚拟机管理器进行操作系统级别的隔离,能够有效避免第一操作系统被黑客攻击,提高系统安全性。
并且,由于第一操作系统和第二操作系统在同一服务器中由不同处理器核同时运行,因此可实现硬件层面的操作系统隔离,第一操作系统与云管理平台通信获取用于创建虚拟机的配置信息,第二操作系统从第一操作系统获取配置信息并创建提供给租户使用的虚拟机,通过不同的操作系统实现管理面和业务面,使得管理面和业务面可以实现操作系统之间的隔离,进一步提高系统安全性。
在第二操作系统中创建了第一虚拟机之后,为了能够实现第一虚拟机的报文转发,即,将与第一虚拟机相关的第一业务报文转发至第一虚拟机或将从第一虚拟机接收的第二业务报文转发到服务器的外部网络,还需要在服务器中设置虚拟机报文转发模块。虚拟机报文转发模块可以是例如DPDK等组件。其中,第一业务报文可以是目的IP地址为第一虚拟机的IP地址的业务报文,或者,可以是目的MAC地址为第一虚拟机的MAC地址的业务报文。第二业务报文可以是源IP地址为第一虚拟机的IP地址的业务报文,或者,源MAC地址为第一虚拟机的IP地址的业务报文。虚拟机报文转发模块的设置方式至少可以包括两种:第一种方式中,虚拟机报文转发模块可以设置在第一操作系统中。由于虚拟机报文转发模块涉及大量输入输出数据的发送,将虚拟机报文转发模块设置在第一操作系统中,缩短了数据发送的路径,能够有效提高数据的传输效率。第二种方式中,虚拟机报文转发模块可以设置在第二操作系统中。由于虚拟机报文转发模块也可能受到黑客的攻击,因此,将虚拟机报文转发模块设置在第二操作系统,可以实现通过第二操作系统隔离虚拟机报文转发模块以及第一操作系统,提高系统的安全性能。
安装了第一虚拟机的第二操作系统容易受到黑客攻击,因此,需要对第二操作系统进行升级以及时修复漏洞,但是,第一虚拟机中通常运行有业务,如果采用冷升级,会导致第一虚拟机中的业务发生中断,影响用户的体验。由于以往在服务器的硬件系统上只运行一个第一操作系统,该第一操作系统安装了各种各样的软件,操作系统的体量比较庞大,而且,往往还包括与网络存储转发相关的软件,无法进行热升级。这里,冷升级是指在业务中断的情况下进行升级,热升级是指在业务不中断的情况下进行升级。而本申请中的第二操作系统需要进行热升级。因此,原有的升级方法并不适用于本申请的第二操作系统。在本申请中,第一操作系统还设置有升级模块,升级模块用于触发第二操作系统根据操作系统升级文件进行操作系统升级,其中,操作系统升级文件是从云管理平台获取的。第二操作系统的升级可以有以下两种升级方式:
在第一种方式中,调用第一虚拟机管理器的接口,通知第一虚拟机暂停并完成如下操作:a)标记第一虚拟机内存位置,并将标记信息保存到存储介质(例如,内存、磁盘、持久化内存等)中。b)将第一虚拟机的状态(例如,处理器核寄存器、处理器核上下文、模拟设备状态、模拟设备内存)保存到存储介质中。在保存完标记信息以及第一虚拟机的状态之后,重新启动新的第二操作系统。新的第二操作系统的启动过程如下:首先关闭旧的第二操作系统,关闭后由第一操作系统通过操作系统启动模块重新引导新的第二操作系统。将旧的第二操作系统的处理器核大部分进行冻结或者下线,只保留小部分(甚至可能只有一个)旧的第二操作系统的处理器核运行。再由虚拟机监视器(例如,Hypervisor)的处理器核引导新的第二操作系统。在新的第二操作系统启动过程中,识别已标记的第一虚拟机的内存位置,避免修改第一虚拟机的内存。新的第二操作系统启动完成之后,根据将保存在存储介质中的第一虚拟机状态进行恢复。最后,通过第一虚拟机管理器的接口通知第一虚拟机恢复运行,第一虚拟机的业务恢复正常。这里,先下线旧的第二操作系统之后,再启动新的第二操作系统,能够有效地减少资源的消耗。
(3)在第二种方式中,通过调用操作系统启动模块引导新的第二操作系统。具体地,可以通过如下步骤从旧的第二操作系统切换新的第二操作系统:在新的第二操作系统启动与旧的第二操作系统的虚拟机配置相同的虚拟机模拟器。通知旧的第二操作系统将内存位置信息、设备状态信息共享到新的第二操作系统中启动的虚拟机模拟器。其中,共享可以是旧的第二操作系统的虚拟机将内存位置信息、设备状态信息写入存储介质,然后,通知新的第二操作系统去获取,或者,通过旧的第二操作系统的传输装置发送到新的第二操作系统。旧的第二操作系统将虚拟机使用的处理器核下线,在新的第二操作系统上线虚拟机使用的处理器核。新的第二操作系统中启动的虚拟机模拟器恢复虚拟机的运行,旧的第二操作系统中关闭的虚拟机模拟器的运行。待第一虚拟机从旧的第二操作系统切换到新的第二操作系统之后,关闭旧的第二操作系统,然后,回收旧的第二操作系统最后使用的硬件资源(处理器核、内存和硬件设备等等),回收的硬件资源可以在新的第二操作系统中重复利用或者预留给下次升级使用。可以理解,将旧的第二操作系统的第一虚拟机使用的处理器核下线,将新的第二操作系统的第一虚拟机使用的处理器核上线,以及将旧的第二操作系统最后使用的硬件资源进行回收均是可选步骤。这里,同时运行新的第二操作系统以及旧的第二操作系统,直到新的第二操作系统准备好之后,才下线旧的第二操作系统,能够有效地减少业务中断的时间。
上述的云系统可以应用于各种场景,下面将以一个具体的应用场景作为事例进行说明。在该应用场景之下,第二操作系统为用于安装热升级软件的操作系统,第一操作系统为用于安装非热升级软件的操作系统。热升级软件为会导致虚拟机逃逸的软件。这里,虚拟机逃逸指的是突破虚拟机的限制,实现与操作系统交互的一个过程,攻击者可以通过虚拟机逃逸感染主机或者在主机上运行恶意软件。因此,热升级软件所在的操作系统需要经常性地进行升级,以避免黑客进行攻击。更具体地,热升级软件可以是虚拟硬件模拟软件,例如,设备仿真(deviceemulator)、虚拟机监视器(virtual machine monitor,VMM)(例如QUME、KVM、Hypervisor),第一虚拟机管理器,例如虚拟机管理代理(VM Manager Agent)等等。在另一种可能的实施例中,热升级软件通常为不涉及网络数据转发,存储数据转发等等大量的输入输出操作,并且,会导致虚拟机逃逸的软件。因为不涉及网络数据转发,存储数据转发等等大量的输入输出操作,所以,具备了热升级的便利性;因为会导致虚拟机逃逸,所以,具备了热升级的需求。此外,第二操作系统还用于安装部分非热升级软件,例如,在第一操作系统的空间不够的时候,也可以将部分的非热升级软件安装在第二操作系统中。为了便于热升级,第二操作系统的体量可以比较小,具体可以包括以下中的一种或者多种:(1)第二操作系统是经过裁减的操作系统,例如,第二操作系统可以不包括文件系统以及网络协议栈;(2)第二操作系统的占用的资源比较少,例如,第二操作系统占用的处理器核的数量比较少,和/或,第二操作系统占用的存储器的存储空间比较少。
第一操作系统为用于安装非热升级软件的操作系统。其中,安装所述非热升级软件的第一操作系统不能够在业务不中断的情况下进行升级。在一种可能的实施例中,非热升级软件为不会导致虚拟机逃逸的软件,因此,不需要经常性地进行升级,以避免业务中断给用户带来不好的体验。安装非热升级软件的第一操作系统可以在不进行业务的时候进行升级。可以理解,安装非热升级软件的第一操作系统的升级频率可以小于安装热升级软件的第二操作系统。此时,非热升级软件可以包括虚拟机管理(VM Manager)等等。在另一种可能的实施例中,非热升级软件通常为涉及网络数据转发,存储数据转发等等大量的输入输出操作,并且,不会导致虚拟机逃逸的软件。因为涉及网络数据转发,存储数据转发,所以,不具备热升级的便利性;因为不会导致虚拟机逃逸,所以,不具备热升级的需求。此时,非热升级软件可以包括DPDK、虚拟机管理等等。由于不需要进行热升级,第一操作系统的体量可以比较大,具体可以包括以下中的一种或者多种:(1)第一操作系统是没有经过裁减的操作系统,例如,第一操作系统可以包括文件系统以及网络协议栈;(2)第一操作系统的占用的资源比较多,例如,第一操作系统占用的处理器核的数量比较多,和/或,第一操作系统占用的存储器的存储空间比较多。
在上述陈述中,热升级软件是会导致虚拟机逃逸的软件,非热升级软件是不会导致虚拟机逃逸的软件,在实际应用中,热升级软件也可以是容易导致虚拟机逃逸的软件,即,导致虚拟机逃逸发生的概率比较高的软件,非升级软件也可以是不容易导致虚拟机逃逸的软件,即,导致虚拟机逃逸发生的概率比较低的软件。文中统一用“会”以及“不会”导致虚拟机逃逸来进行描述,但是,这里的“会”以及“不会”应该包含“容易”以及“不容易”的含义。
上述方案中,将会发生虚拟机逃逸的热升级软件设置在第二操作系统中,将不会发生虚拟机逃逸的非热升级软件设置在第一操作系统中,能够实现即使第二操作系统中的热升级软件发生了虚拟机逃逸,依然限制在第二操作系统之内,不会波及到第一操作系统,有效提升系统的安全性能。并且,第二操作系统中安装的热升级软件不涉及网络数据转发,存储数据转发等等大量的输入输出操作,可以在不中断业务的情况下进行热升级,因此,第二操作系统可以及时进行升级,防止被黑客进行攻击。
下面将结合附图对服务器中将热升级软件和非热升级软件分别部署第二操作系统和第一操作系统的几种具体的实现方式进行详细的介绍:
在第一种方式中,DPDK设置于服务器的网卡设备中,服务器中的网卡设备为智能网卡。在一个具体的实施例中,如图4A所示,服务器的硬件设备210包括:处理器核211、存储器212以及网卡设备213(智能网卡)等等。其中,服务器的硬件设备210上同时运行第二操作系统220以及第一操作系统230。第二操作系统220可以包括第二操作系统的内核(例如,kernel)221。第二操作系统的内核221可以安装有虚拟机管理器222,例如Hypervisor,VMM,第二操作系统的内核221之上可以设置一个或者多个设备仿真223。设备仿真223之上可以安装客户机操作系统224,客户机操作系统224可以包括客户机操作系统的内核225,客户机操作系统的内核225可以安装有设备驱动(device driver)226。第二操作系统220还可以安装有虚拟机管理代理(VM Manager agent)227,以便于调用第一操作系统230中的云管理平台客户端233。第一操作系统230可以包括第一操作系统的内核(例如,kernel)231,第一操作系统230可以安装有云管理平台客户端233。网卡设备213中安装DPDK214。
处理器核211可以包括上述提及的第一处理器核以及第二处理器核,其中,第一处理器核用于运行第一操作系统230,第二处理器核用于运行第二操作系统220。虚拟机管理器222可以是上述提及的第一虚拟管理器。第一操作系统中还可以安装有上述的虚拟机报文转发模块、操作系统启动模块、操作系统关闭模块、规格调整模块、升级模块。虚拟机报文转发模块除了可以安装在第一操作系统中,也可以安装在第二操作系统中,此处不作具体限定。
上述方案中,设置了虚拟机管理代理227,可以用于创建虚拟机。在实际应用中,也可以不设置虚拟机管理代理227,而是由虚拟机管理器222负责虚拟机创建。
上述方案中,在智能网卡中安装DPDK,能够有效提高网络存储数据平面的转发的速度,从而提高用户的体验。
在第二种方式中,DPDK设置于第一操作系统中,服务器中的网卡设备为普通的网卡设备。在一个具体的实施例中,如图4B所示,服务器的硬件设备310包括:处理器核311、存储器312以及网卡设备313(普通的网卡设备)等等。其中,服务器的硬件设备310上同时运行第二操作系统320以及第一操作系统330。第二操作系统320可以包括第二操作系统的内核(例如,kernel)321。第二操作系统的内核321可以安装有虚拟机管理器322,例如Hypervisor,第二操作系统的内核321之上可以设置一个或者多个设备仿真323。设备仿真323之上可以安装客户机操作系统324,客户机操作系统324可以包括客户机操作系统的内核325,客户机操作系统的内核325可以安装有设备驱动(device driver)326。第二操作系统320还可以安装有虚拟机管理代理(VM Manager agent)327,以便于调用第一操作系统330中的云管理平台客户端333。第一操作系统330可以包括第一操作系统的内核(例如,kernel)331,第一操作系统330可以安装有DPDK332以及云管理平台客户端333。
处理器核311可以包括上述提及的第一处理器核以及第二处理器核,其中,第一处理器核用于运行第一操作系统330,第二处理器核用于运行第二操作系统320。虚拟机管理器322可以是上述提及的第一虚拟管理器。第一操作系统中还可以安装有上述的虚拟机报文转发模块、操作系统启动模块、操作系统关闭模块、规格调整模块、升级模块。虚拟机报文转发模块除了可以安装在第一操作系统中,也可以安装在第二操作系统中,此处不作具体限定。
上述方案中,设置了虚拟机管理代理327,可以用于创建虚拟机。在实际应用中,也可以不设置虚拟机管理代理327,而是由虚拟机管理器322负责虚拟机创建。
上述方案中,将DPDK等网络存储数据平面转发软件安装在第一操作系统中,从而充分利用第一操作系统,此时,网卡设备可以采用普通的网卡设备,而不是采用智能网卡。并且,在该种方式中,第二操作系统320只安装会导致虚拟机逃逸的软件,不安装不会导致虚拟机逃逸的软件,第一操作系统330中只安装不会导致虚拟机逃逸的软件。由于第二操作系统中安装了安装会导致虚拟机逃逸的软件,因此,比较容易出现漏洞受到黑客的攻击,需要及时得到修复。而第二操作系统320只安装了会导致虚拟机逃逸的软件,体量比较小,而且,第二操作系统320不涉及网络存储数据转发平面和虚拟机的管理,能够快速地对第二操作系统320进行热升级,升级速度快。
在第三种方式中,DPDK设置于第二操作系统中,服务器中的网卡设备为普通的网卡设备。在一个具体的实施例中,如图4C所示,服务器的硬件设备410包括:处理器核411、存储器412以及网卡设备413(普通的网卡设备)等等。其中,服务器的硬件设备410上同时运行第二操作系统420以及第一操作系统430。第二操作系统420可以包括第二操作系统420的内核(例如,kernel)421。第二操作系统420的内核421可以安装有虚拟机管理器422,例如,Hypervisor,第二操作系统420的内核421之上可以设置一个或者多个设备仿真423。设备仿真423之上可以安装客户机操作系统424,客户机操作系统424可以包括客户机操作系统的内核425,客户机操作系统的内核425可以安装有设备驱动(device driver)426。第二操作系统420还可以安装有DPDK427以及虚拟机管理代理(VM Manager agent)428,以便于调用第一操作系统430中的云管理平台客户端433。第一操作系统430可以包括第一操作系统的内核(例如,kernel)431,第一操作系统430可以安装有云管理平台客户端433。
处理器核411可以包括上述提及的第一处理器核以及第二处理器核,其中,第一处理器核用于运行第一操作系统430,第二处理器核用于运行第二操作系统420。虚拟机管理器422可以是上述提及的第一虚拟管理器。第一操作系统中还可以安装有上述的虚拟机报文转发模块、操作系统启动模块、操作系统关闭模块、规格调整模块、升级模块。虚拟机报文转发模块除了可以安装在第一操作系统中,也可以安装在第二操作系统中,此处不作具体限定。
上述方案中,除了第二操作系统中只安装会导致虚拟机逃逸的软件外,还提供了第二操作系统中也可以安装部分不会导致虚拟机逃逸的软件供用户选择,以适应不同场景的需求,例如,第一操作系统中的不会导致虚拟机逃逸的软件比较多,导致第一操作系统的容量不够的情况,可以将部分不会导致虚拟机逃逸的软件安装在第二操作系统。
可以理解,服务器运行的初始状态时第二操作系统中可以只安装会导致虚拟机逃逸的软件,随着运行的过程,第一操作系统中不会导致虚拟机逃逸的软件越安装越多,则后续可以将一部分不会导致虚拟机逃逸的软件安装、重新安装或者迁移到第二操作系统中,以减少第一操作系统的负载,进行使得第二操作系统和第一操作系统均运行在较好的状态。同样地,服务器运行的初始状态时第二操作系统中可以同时安装有会导致虚拟机逃逸的软件以及不会导致虚拟机逃逸的软件,随着运行的过程,第一操作系统中的软件被卸载得越来越少了,此时,可以将第二操作系统中不会导致虚拟机逃逸的软件安装、重新安装或者迁移到第一操作系统中,以便于第二操作系统进行热升级。而且,不会导致虚拟机逃逸的软件可以在第二操作系统和第一操作系统之间多次进行迁移,此处不作具体限定。
在第四种方式中,如图4D所示,服务器的硬件设备510包括:处理器核511、存储器512以及网卡设备513等等。其中,服务器的硬件设备510上同时运行多个第三操作系统540、第二操作系统520以及第一操作系统530。以第二操作系统为例,第二操作系统包括第二操作系统的内核(例如,kernel)521。第二操作系统的内核521可以安装有第一虚拟机管理器522,例如,Hypervisor,第二操作系统的内核521之上可以设置一个或者多个设备仿真523。设备仿真523之上可以安装客户机操作系统524,客户机操作系统524可以包括客户机操作系统的内核525,客户机操作系统的内核525可以安装有设备驱动(device driver)526。第二操作系统还可以安装有虚拟机管理代理(VM Manager agent)527,以便于调用第一操作系统530中的云管理平台客户端533。第三操作系统540中的第二虚拟机管理器542、设备仿真543、客户机操作系统544、内核545、虚拟机管理代理547均与第二操作系统中的第一虚拟机管理器522、设备仿真523、客户机操作系统524、内核525、虚拟机管理代理527相似,此处不再另外说明。第一操作系统530可以包括第一操作系统的内核(例如,kernel)531,第一操作系统530可以安装有DPDK 532以及云管理平台客户端533。第一操作系统530分别负责管理第二操作系统以及第二操作系统。
处理器核511可以包括上述提及的第一处理器核、第二处理器核、第三处理器核,其中,第一处理器核用于运行第一操作系统530,第二处理器核用于运行第二操作系统520、第三处理器核用于运行第三操作系统540。第一虚拟机管理器522可以是上述提及的第一虚拟管理器。第二虚拟机管理器542可以是上述提及的第二虚拟管理器。第一操作系统中还可以安装有上述的虚拟机报文转发模块、操作系统启动模块、操作系统关闭模块、规格调整模块、升级模块。虚拟机报文转发模块除了可以安装在第一操作系统中,也可以安装在第二操作系统中,此处不作具体限定。
上述方案中,可以将会导致虚拟机逃逸的软件分别装在不同的第二操作系统中,从而使得隔离的效果更佳。举例来说,可以将会导致虚拟机逃逸的软件按照升级频率进行分级,将最容易导致虚拟机逃逸、升级频率最高的软件设置在第二操作系统中,将较容易导致虚拟机逃逸、升级频率较高的软件设置在第三操作系统中,将不会导致虚拟机逃逸、升级频率最低的软件模块安装在第一操作系统。这样可以保障第二操作系统中软件得到及时升级,又可以避免升级占用过多的资源。
应当理解,软件在各个操作系统的设置具体可以是根据设置策略来进行的,其中,设置策略可以综合考虑软件的安全性高低、升级频率多少、操作系统占用资源的多少、操作系统的可用资源的多少、虚拟管理操作系统是否安装不会导致虚拟机逃逸的软件等等中的一种或者多种。设置策略可以是用户自己设定的,也可以是根据算法确定的优选策略,此次不做具体限定。
在第五种方式中,如图4E所示,第一操作系统1负责管理第二操作系统,第一操作系统2负责管理第三操作系统。其中,第一操作系统1和第一操作系统2中可以任意选择一个操作系统负责管理服务器的所有硬件设备。
服务器的硬件设备610包括:处理器核611、存储器612以及网卡设备613等等。其中,服务器的硬件设备610上同时运行多个第二操作系统620以及多个第一操作系统630。第一操作系统630包括第一操作系统1以及第一操作系统2。以第二操作系统为例,第二操作系统包括第二操作系统的内核(例如,kernel)621。第二操作系统的内核621可以安装有第一虚拟机管理器622,例如,Hypervisor,第二操作系统的内核621之上可以设置一个或者多个设备仿真623。设备仿真623之上可以安装客户机操作系统624,客户机操作系统624可以包括客户机操作系统的内核625,客户机操作系统的内核625可以安装有设备驱动(devicedriver)626。第二操作系统还可以安装有虚拟机管理代理(VM Manager agent)627,以便于调用第一操作系统1中的云管理平台客户端633。第一操作系统1可以包括第一操作系统的内核(例如,kernel)631,第一操作系统1可以安装有DPDK 632以及云管理平台客户端633。第三操作系统以及第一操作系统2之间的关系也相类似。第三操作系统640中的第二虚拟机管理器642、设备仿真643、客户机操作系统644、内核645、虚拟机管理代理647均与第二操作系统中的第一虚拟机管理器622、设备仿真623、客户机操作系统624、内核625、虚拟机管理代理627相似,此处不再另外说明。
处理器核611可以包括上述提及的第一处理器核、第二处理器核、第三处理器核,其中,第一处理器核用于运行第一操作系统630,第二处理器核用于运行第二操作系统620、第三处理器核用于运行第三操作系统640。第一虚拟机管理器622可以是上述提及的第一虚拟管理器。第二虚拟机管理器642可以是上述提及的第二虚拟管理器。第一操作系统中还可以安装有上述的虚拟机报文转发模块、操作系统启动模块、操作系统关闭模块、规格调整模块、升级模块。虚拟机报文转发模块除了可以安装在第一操作系统中,也可以安装在第二操作系统中,此处不作具体限定。
在图4E所示的实施例中,可以将会发生虚拟机逃逸的软件按照升级频率进行分级,将不会导致虚拟机逃逸的软件按照升级频率进行分级,然后,再将会发生虚拟机逃逸且升级频率最高的软件设置在第二操作系统中,将会发生虚拟机逃逸且升级频率较低的软件设置在第三操作系统中,将不会导致虚拟机逃逸、升级频率较高的软件设置在第一操作系统1中,将不会导致虚拟机逃逸、升级频率较低的软件设置在第一操作系统2中。这样,第二操作系统和第三操作系统中的软件的数量比较少,升级的速度比较快,而且,升级耗费的资源比较少。第二操作系统和第三操作系统中的软件则可以降低升级频率,从而降低了资源的消耗。或者,可以将会导致虚拟机逃逸的软件按照危险程度再进行分级,将不会导致虚拟机逃逸的软件按照危险程度再进行分级,然后,将危险程度最高的软件设置在第二操作系统中,将危险程度次高的软件设置在第三操作系统中,将危险次低的软件设置在第一操作系统1中,将危险性最低的软件设置在第一操作系统2中。这样可以对危险性较高的软件层层进行隔离,有效地提高了安全性能。当然,也可以按照安全性对会导致虚拟机逃逸的软件进行分级,按照升级频率对不会导致虚拟机逃逸的软件进行分级,然后,将危险性最高的软件设置在第二操作系统中,将危险性次高的软件设置在第三操作系统中,将不会导致虚拟机逃逸且升级频率高的软件设置在第一操作系统1中,将不会导致虚拟机逃逸且升级频率低的软件模块设置在第一操作系统2中。
这里,图4D以及图4E中第二操作系统和第一操作系统之间的关系比较复杂,因此,它们之间的启动关系和通讯关系也会比较复杂。下面将结合具体的例子进行进一步说明。
(1)第二操作系统和第一操作系统的启动。
以图4D所示的例子为例,第一操作系统可以同时管理第二操作系统以及第三操作系统,此时,第一操作系统可以先按照上述方法引导第二操作系统启动,然后,第一操作系统再按照上述方法引导第三操作系统启动。又或者,第一操作系统可以先按照上述方法引导第二操作系统启动,然后,第二操作系统可以先按照上述方法引导第三操作系统启动。
以图4E所示的例子为例,第一操作系统1可以先按照上述方法引导第一操作系统2启动,然后,第一操作系统1再按照上述方法引导第二操作系统启动,第一操作系统2可以先按照上述方法引导第三操作系统启动。
(2)第二操作系统和第一操作系统之间的通信。
以图4D所示的例子为例,第一操作系统可以分别和第二操作系统、第三操作系统通过上述方式建立通信通道。可选地,第二操作系统和第三操作系统之间也可以通过上述方法建立通信通道。或者,第一操作系统可以和第二操作系统通过上述方式建立通信通道,第二操作系统和第三操作系统之间也可以通过上述方法建立通信通道。
以图4E所示的例子为例,第一操作系统1可以和第二操作系统通过上述方式建立通信通道,第一操作系统2可以和第三操作系统通过上述方式建立通信通道。可选地,第一操作系统1和第一操作系统2之间可以通过上述方式建立通信通道,第二操作系统和第三操作系统之间也可以通过上述方式建立通信通道。
上述例子中,均以第一操作系统中安装非热升级软件,第二操作系统中安装热升级软件为例进行说明,在实际应用中,第一操作系统和第二操作系统可以任意分别安装需要进行隔离的软件,例如,第一操作系统可以用于安装大型软件,第二操作系统可以用于安装小型软件等等,此处不作具体限定。
参见图5,图5是本申请提供的另一种云系统的结构示意图。如图5所示,本申请提供的云系统包括:云管理平台710和与所述云管理平台网络连接的多个服务器720(为便于展示,图5仅示出一个服务器720)。
云管理平台710,用于接收租户输入的待创建的第一虚拟机的第一配置信息,并在所述多个服务器中选择能够提供所述第一配置信息指示的虚拟硬件资源的目标服务器。云管理平台710可以包括云管理平台服务端711。云管理平台服务端711可以和云管理平台客户端735配合,完成云管理平台对服务器的管理。
服务器包括一个或者多个处理器。处理器的体系结构可以包括:精简指令集计算机(reduced instruction set computer,RISC),每条指令仅用于完成一项简单操作。对于经常使用的简单操作,RISC结构的处理器可以以更快的速度执行指令,对不常用的操作,RISC结构的处理器常通过组合指令来完成。复杂指令系统计算机(complex instructionset computer,CISC),每个指令可执行若干简单操作,例如从存储器读取、存储、和计算操作,全部集于单一复杂指令之中。处理器可以是单核的,也可以是多核的,处理器可以是X86处理器,也可以是嵌入式处理器等等。该一个或者多个处理器可以包括一个或者多个处理器核(core)。服务器还可以包括一个或者多个存储器,一个或者多个卸载卡等等。在一种具体的实施例中,服务器包括第二存储器713、第二处理器核711、第三处理器核712以及卸载卡730。所述卸载卡730包括第一存储器732以及至少一个第一处理器核731。所述第一存储器732存储有用于与所述云管理平台通信的操作系统的代码,所述第二存储器713存储有用于管理虚拟机的操作系统的代码。
上述例子中,服务器720中设置了第二操作系统以及第三操作系统两个操作系统,但是,在实际应用中,也可以只设置一个第二操作系统,或者更多的操作系统,此处不作具体限定。此外,第一操作系统733、第一操作系统中的云管理平台客户端735、DPDK 736、内核734均与前述例子中的第一操作系统、第一操作系统中的云管理平台客户端、DPDK、内核相类似。第二操作系统728、第二操作系统728中的内核721、第一虚拟机管理器722、设备仿真723、客户机操作系统724、客户机操作系统的内核725、设备驱动726均与上述实施例中的第二操作系统、第二操作系统中的内核、第一虚拟机管理器、设备仿真、客户机操作系统、客户机操作系统的内核、设备驱动相类似。第三操作系统740、第三操作系统740中的内核721、第二虚拟机管理器742、设备仿真743、客户机操作系统744、客户机操作系统的内核745、设备驱动746均与上述实施例中的第三操作系统、第三操作系统中的内核、第二虚拟机管理器、设备仿真、客户机操作系统、客户机操作系统的内核、设备驱动相类似。具体请参见前文所述。
本申请中还提供了一种基于云计算技术的服务器,包括至少一个第一处理器核、至少一个第二处理器核和存储器,所述存储器存储有第一操作系统的代码和第二操作系统的代码,本实施例中的基于云计算技术的服务器可以参见图1所示的云系统中的服务器,此处不再展开描述。
本申请中还提供了一种基于云计算技术的服务器,包括插置于所述服务器的并接入服务器的总线的卸载卡,所述卸载卡包括第一存储器以及至少一个第一处理器核,所述服务器还包括第二存储器以及至少一个第二处理器核,所述第一存储器存储有用于与云管理平台通信的操作系统的代码,所述第二存储器存储有用于管理虚拟机的操作系统的代码。本实施例中的基于云计算技术的服务器可以参见图5所示的云系统中的服务器,此处不再展开描述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
在上述实施例中,可以全部或部分地通过软件、硬件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质、或者半导体介质等。
以上所述,仅为本申请的具体实施方式。熟悉本技术领域的技术人员根据本申请提供的具体实施方式,可想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (40)

1.一种基于云计算技术的服务器,其特征在于,包括至少一个第一处理器核、至少一个第二处理器核和存储器,所述存储器存储有用于与云管理平台进行通信的操作系统的代码和用于管理虚拟机的操作系统的代码,
所述至少一个第一处理器核,用于执行所述用于与云管理平台进行通信的操作系统的代码以启动并运行第一操作系统,其中:
所述第一操作系统,运行有云管理平台客户端,所述云管理平台客户端用于从云管理平台获取待创建的第一虚拟机的第一配置信息;
所述至少一个第二处理器核,用于执行所述用于管理虚拟机的操作系统的代码以启动并运行第二操作系统,其中:
所述第二操作系统,运行有第一虚拟机管理器,所述第一虚拟机管理器用于接收所述云管理平台客户端发送的所述第一配置信息、在所述第二操作系统中创建并运行所述第一虚拟机、并为所述第一虚拟机设置与所述第一配置信息匹配的虚拟硬件资源。
2.根据权利要求1所述的服务器,其特征在于,
所述云管理平台客户端,还用于从云管理平台获取针对所述第一虚拟机的生命周期的管理命令并发送所述管理命令至所述第一虚拟机管理器;
所述第一虚拟机管理器,还用于根据所述管理命令对所述第一虚拟机执行以下操作的一者或任意组合:开机、关机、更改规格、迁移和释放。
3.根据权利要求1或2所述的服务器,其特征在于,
所述第一操作系统,还运行有虚拟机报文转发模块,所述虚拟机报文转发模块将与所述第一虚拟机相关的第一业务报文转发至所述第一虚拟机或将从所述第一虚拟机接收的第二业务报文转发到所述服务器的外部网络。
4.根据权利要求1或2所述的服务器,其特征在于,
所述第二操作系统,还运行有虚拟机报文转发模块,所述虚拟机报文转发模块将与所述第一虚拟机相关的第一业务报文转发至所述第一虚拟机或将从所述第一虚拟机接收的第二业务报文转发到所述服务器的外部网络。
5.根据权利要求1至4任一项所述的服务器,其特征在于,
所述第一操作系统,还运行有操作系统启动模块,所述操作系统启动模块用于触发所述至少一个第二处理器核执行所述用于管理虚拟机的操作系统的代码以启动并运行所述第二操作系统。
6.根据权利要求1至5任一项所述的服务器,其特征在于,
所述第一操作系统,还运行有操作系统关闭模块,所述操作系统关闭模块用于触发所述至少一个第二处理器核停止执行所述用于管理虚拟机的操作系统的代码以关闭所述第二操作系统。
7.根据权利要求1至6任一项所述的服务器,其特征在于,
所述第一操作系统,还运行有规格调整模块,所述规格调整模块用于调整所述服务器中分配给所述第二操作系统的至少一个第二处理器核的数量、分配给所述第二操作系统的内存大小、和/或分配给所述第二操作系统的PCI设备或PCIe设备的类型和数量。
8.根据权利要求1至7任一项所述的服务器,其特征在于,所述云管理平台客户端,还用于从所述云管理平台获取操作系统升级文件,则:
所述第一操作系统,还运行有升级模块,所述升级模块用于触发所述至少一个第二处理器核根据所述操作系统升级文件对所述第二操作系统进行操作系统升级。
9.根据权利要求1至8任一项所述的服务器,其特征在于,所述存储器中设置有所述第一操作系统与所述第二操作系统的共享内存区域,
云管理平台客户端,用于将所述第一配置信息发送至所述共享内存区域并产生中断信号以通知所述第二操作系统中的所述第一虚拟机管理器从所述共享内存区域获取所述第一配置信息。
10.根据权利要求1至9任一项所述的服务器,其特征在于,所述服务器还包括至少一个第三处理器核,
所述云管理平台客户端从云管理平台获取待创建的第二虚拟机的第二配置信息;
所述至少一个第三处理器核,用于执行用于管理虚拟机的操作系统的代码以启动并运行第三操作系统,其中:
所述第三操作系统,运行有第二虚拟机管理器,所述第二虚拟机管理器用于接收所述云管理平台客户端发送的所述第二配置信息、在所述第二操作系统中创建并运行所述第二虚拟机、并为所述第二虚拟机设置与所述第二配置信息匹配的虚拟硬件资源。
11.一种服务器,其特征在于,包括插置于所述服务器的卸载卡,所述卸载卡包括第一存储器以及至少一个第一处理器核,所述服务器还包括第二存储器以及至少一个第二处理器核,所述第一存储器存储有用于与云管理平台通信的操作系统的代码,所述第二存储器存储有用于管理虚拟机的操作系统的代码,
所述至少一个第一处理器核,用于执行用于与云管理平台通信的操作系统的代码以启动并运行第一操作系统,其中:
所述第一操作系统,运行有云管理平台客户端,所述云管理平台客户端用于从所述云管理平台获取待创建的第一虚拟机的第一配置信息;
所述至少一个第二处理器核,用于执行用于管理虚拟机的操作系统的代码以启动并运行第二操作系统,其中:
所述第二操作系统,运行有第一虚拟机管理器,所述第一虚拟机管理器用于接收所述云管理平台客户端发送的所述第一配置信息、在所述第二操作系统中创建并运行所述第一虚拟机、并为所述第一虚拟机设置与所述第一配置信息匹配的虚拟硬件资源。
12.根据权利要求11所述的服务器,其特征在于,
所述云管理平台客户端,还用于从所述云管理平台获取针对所述第一虚拟机的生命周期的管理命令并发送所述管理命令至所述第一虚拟机管理器;
所述第一虚拟机管理器,还用于根据所述管理命令对所述第一虚拟机执行以下操作的一者或任意组合:开机、关机、更改规格、迁移和释放。
13.根据权利要求11或12所述的服务器,其特征在于,
所述第一操作系统,还运行有虚拟机报文转发模块,所述虚拟机报文转发模块用于将与所述第一虚拟机相关的第一业务报文转发至所述第一虚拟机或将从所述第一虚拟机接收的第二业务报文转发到所述服务器的外部网络。
14.根据权利要求11或12所述的服务器,其特征在于,
所述第二操作系统,还运行有虚拟机报文转发模块,所述虚拟机报文转发模块用于将与所述第一虚拟机相关的第一业务报文转发至所述第一虚拟机或将从所述第一虚拟机接收的第二业务报文转发到所述服务器的外部网络。
15.根据权利要求11至14任一项所述的服务器,其特征在于,
所述第一操作系统,还运行有操作系统启动模块,所述操作系统启动模块用于触发所述至少一个第二处理器核执行所述用于管理虚拟机的操作系统的代码以启动并运行所述第二操作系统。
16.根据权利要求11至15任一项所述的服务器,其特征在于,
所述第一操作系统,还运行有操作系统关闭模块,所述操作系统关闭模块用于触发所述至少一个第二处理器核停止执行所述用于管理虚拟机的操作系统的代码以关闭所述第二操作系统。
17.根据权利要求11至16任一项所述的服务器,其特征在于,
所述第一操作系统,还运行有规格调整模块,所述规格调整模块用于调整所述服务器中分配给所述第二操作系统的至少一个第二处理器核的数量、分配给所述第二操作系统的内存大小、和/或分配给所述第二操作系统的PCI设备或PCIe设备的类型和数量。
18.根据权利要求11至17任一项所述的服务器,其特征在于,所述云管理平台客户端,还用于从所述云管理平台获取操作系统升级文件,则:
所述第一操作系统,还运行有升级模块,所述升级模块用于触发所述至少一个第二处理器核根据所述操作系统升级文件对所述第二操作系统进行操作系统升级。
19.根据权利要求11至18任一项所述的服务器,其特征在于,所述第二存储器中设置有所述第一操作系统与所述第二操作系统的共享内存区域,
云管理平台客户端,用于将所述第一配置信息发送至所述共享内存区域并产生中断信号以通知所述第二操作系统中的所述第一虚拟机管理器从所述共享内存区域获取所述第一配置信息。
20.根据权利要求11至19任一项所述的服务器,其特征在于,所述服务器还包括至少一个第三处理器核,
所述云管理平台客户端从云管理平台获取待创建的第二虚拟机的第二配置信息;
所述至少一个第三处理器核,用于执行用于管理虚拟机的操作系统的代码以启动并运行第三操作系统,其中:
所述第三操作系统,运行有第二虚拟机管理器,所述第二虚拟机管理器用于接收所述云管理平台客户端发送的所述第二配置信息、在所述第二操作系统中创建并运行所述第二虚拟机、并为所述第二虚拟机设置与所述第二配置信息匹配的虚拟硬件资源。
21.一种云系统,其特征在于,包括云管理平台和与所述云管理平台网络连接的多个服务器,其中:
所述云管理平台,用于接收租户输入的待创建的第一虚拟机的第一配置信息,并在所述多个服务器中选择能够提供所述第一配置信息指示的虚拟硬件资源的目标服务器;
所述目标服务器,包括至少一个第一处理器核、至少一个第二处理器核和存储器,所述存储器存储有用于与云管理平台进行通信的操作系统的代码和用于管理虚拟机的操作系统的代码;
所述至少一个第一处理器核,用于执行所述用于与云管理平台进行通信的操作系统的代码以启动并运行第一操作系统,
所述第一操作系统,运行有云管理平台客户端,所述云管理平台客户端用于从所述云管理平台获取待创建的第一虚拟机的第一配置信息;
所述至少一个第二处理器核,用于执行所述用于管理虚拟机的操作系统的代码以启动并运行第二操作系统,其中:
所述第二操作系统,运行有第一虚拟机管理器,所述第一虚拟机管理器用于接收所述云管理平台客户端发送的所述第一配置信息、在所述第二操作系统中创建并运行所述第一虚拟机、并为所述第一虚拟机设置与所述第一配置信息匹配的虚拟硬件资源。
22.根据权利要求21所述的云系统,其特征在于,
所述云管理平台客户端,还用于从云管理平台获取针对所述第一虚拟机的生命周期的管理命令并发送所述管理命令至所述第一虚拟机管理器;
所述第一虚拟机管理器,还用于根据所述管理命令对所述第一虚拟机执行以下操作的一者或任意组合:开机、关机、更改规格、迁移和释放。
23.根据权利要求21或22所述的云系统,其特征在于,
所述第一操作系统,还运行有虚拟机报文转发模块,所述虚拟机报文转发模块将与所述第一虚拟机相关的第一业务报文转发至所述第一虚拟机或将从所述第一虚拟机接收的第二业务报文转发到所述服务器的外部网络。
24.根据权利要求21或22所述的云系统,其特征在于,
所述第二操作系统,还运行有虚拟机报文转发模块,所述虚拟机报文转发模块将与所述第一虚拟机相关的第一业务报文转发至所述第一虚拟机或将从所述第一虚拟机接收的第二业务报文转发到所述服务器的外部网络。
25.根据权利要求21至24任一项所述的云系统,其特征在于,
所述第一操作系统,还运行有操作系统启动模块,所述操作系统启动模块用于触发所述至少一个第二处理器核执行所述用于管理虚拟机的操作系统的代码以启动并运行所述第二操作系统。
26.根据权利要求21至25任一项所述的云系统,其特征在于,
所述第一操作系统,还运行有操作系统关闭模块,所述操作系统关闭模块用于触发所述至少一个第二处理器核停止执行所述用于管理虚拟机的操作系统的代码以关闭所述第二操作系统。
27.根据权利要求21至26任一项所述的云系统,其特征在于,
所述第一操作系统,还运行有规格调整模块,所述规格调整模块用于调整所述服务器中分配给所述第二操作系统的至少一个第二处理器核的数量、分配给所述第二操作系统的内存大小、和/或分配给所述第二操作系统的PCI设备或PCIe设备的类型和数量。
28.根据权利要求21至27任一项所述的云系统,其特征在于,所述云管理平台客户端,还用于从所述云管理平台获取操作系统升级文件,则:
所述第一操作系统,还运行有升级模块,所述升级模块用于触发所述至少一个第二处理器核根据所述操作系统升级文件对所述第二操作系统进行操作系统升级。
29.根据权利要求21至28任一项所述的云系统,其特征在于,所述存储器中设置有所述第一操作系统与所述第二操作系统的共享内存区域,
云管理平台客户端,用于将所述第一配置信息发送至所述共享内存区域并产生中断信号以通知所述第二操作系统中的所述第一虚拟机管理器从所述共享内存区域获取所述第一配置信息。
30.根据权利要求21至29任一项所述的云系统,其特征在于,所述服务器还包括至少一个第三处理器核,
所述云管理平台客户端从云管理平台获取待创建的第二虚拟机的第二配置信息;
所述至少一个第三处理器核,用于执行用于管理虚拟机的操作系统的代码以启动并运行第三操作系统,其中:
所述第三操作系统,运行有第二虚拟机管理器,所述第二虚拟机管理器用于接收所述云管理平台客户端发送的所述第二配置信息、在所述第二操作系统中创建并运行所述第二虚拟机、并为所述第二虚拟机设置与所述第二配置信息匹配的虚拟硬件资源。
31.一种云系统,其特征在于,包括云管理平台和与所述云管理平台网络连接的多个服务器,其中:
所述云管理平台,用于接收租户输入的待创建的第一虚拟机的第一配置信息,并在所述多个服务器中选择能够提供所述第一配置信息指示的虚拟硬件资源的目标服务器;
所述目标服务器,包括插置于所述目标服务器的卸载卡,所述卸载卡包括第一存储器以及至少一个第一处理器核,所述目标服务器还包括第二存储器以及至少一个第二处理器核,所述第一存储器存储有用于与所述云管理平台通信的操作系统的代码,所述第二存储器存储有用于管理虚拟机的操作系统的代码,
所述至少一个第一处理器核,用于执行与所述云管理平台通信的操作系统的代码以启动并运行第一操作系统,
所述第一操作系统,运行有云管理平台客户端,所述云管理平台客户端用于从所述云管理平台获取待创建的第一虚拟机的第一配置信息;
所述至少一个第二处理器核,用于执行用于管理虚拟机的操作系统的代码以启动并运行第二操作系统,
所述第二操作系统,运行有第一虚拟机管理器,所述第一虚拟机管理器用于接收所述云管理平台客户端发送的所述第一配置信息、在所述第二操作系统中创建并运行所述第一虚拟机、并为所述第一虚拟机设置与所述第一配置信息匹配的虚拟硬件资源。
32.根据权利要求31所述的云系统,其特征在于,
所述云管理平台客户端,还用于从所述云管理平台获取针对所述第一虚拟机的生命周期的管理命令并发送所述管理命令至所述第一虚拟机管理器;
所述第一虚拟机管理器,还用于根据所述管理命令对所述第一虚拟机执行以下操作的一者或任意组合:开机、关机、更改规格、迁移和释放。
33.根据权利要求31或32所述的云系统,其特征在于,
所述第一操作系统,还运行有虚拟机报文转发模块,所述虚拟机报文转发模块用于将与所述第一虚拟机相关的第一业务报文转发至所述第一虚拟机或将从所述第一虚拟机接收的第二业务报文转发到所述服务器的外部网络。
34.根据权利要求31或32所述的云系统,其特征在于,
所述第二操作系统,还运行有虚拟机报文转发模块,所述虚拟机报文转发模块用于将与所述第一虚拟机相关的第一业务报文转发至所述第一虚拟机或将从所述第一虚拟机接收的第二业务报文转发到所述服务器的外部网络。
35.根据权利要求31至34任一项所述的云系统,其特征在于,
所述第一操作系统,还运行有操作系统启动模块,所述操作系统启动模块用于触发所述至少一个第二处理器核执行所述用于管理虚拟机的操作系统的代码以启动并运行所述第二操作系统。
36.根据权利要求31至35任一项所述的云系统,其特征在于,
所述第一操作系统,还运行有操作系统关闭模块,所述操作系统关闭模块用于触发所述至少一个第二处理器核停止执行所述用于管理虚拟机的操作系统的代码以关闭所述第二操作系统。
37.根据权利要求31至36任一项所述的云系统,其特征在于,
所述第一操作系统,还运行有规格调整模块,所述规格调整模块用于调整所述服务器中分配给所述第二操作系统的至少一个第二处理器核的数量、分配给所述第二操作系统的内存大小、和/或分配给所述第二操作系统的PCI设备或PCIe设备的类型和数量。
38.根据权利要求31至37任一项所述的云系统,其特征在于,所述云管理平台客户端,还用于从所述云管理平台获取操作系统升级文件,则:
所述第一操作系统,还运行有升级模块,所述升级模块用于触发所述至少一个第二处理器核根据所述操作系统升级文件对所述第二操作系统进行操作系统升级。
39.根据权利要求31至38任一项所述的云系统,其特征在于,所述第二存储器中设置有所述第一操作系统与所述第二操作系统的共享内存区域,
云管理平台客户端,用于将所述第一配置信息发送至所述共享内存区域并产生中断信号以通知所述第二操作系统中的所述第一虚拟机管理器从所述共享内存区域获取所述第一配置信息。
40.根据权利要求31至39任一项所述的云系统,其特征在于,所述服务器还包括至少一个第三处理器核,
所述云管理平台客户端从云管理平台获取待创建的第二虚拟机的第二配置信息;
所述至少一个第三处理器核,用于执行用于管理虚拟机的操作系统的代码以启动并运行第三操作系统,其中:
所述第三操作系统,运行有第二虚拟机管理器,所述第二虚拟机管理器用于接收所述云管理平台客户端发送的所述第二配置信息、在所述第二操作系统中创建并运行所述第二虚拟机、并为所述第二虚拟机设置与所述第二配置信息匹配的虚拟硬件资源。
CN202310067448.4A 2022-07-05 2023-02-02 一种基于云计算技术的服务器以及云系统 Pending CN117389677A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2023/105678 WO2024008066A1 (zh) 2022-07-05 2023-07-04 一种基于云计算技术的服务器以及云系统

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2022107823235 2022-07-05
CN202210782323 2022-07-05

Publications (1)

Publication Number Publication Date
CN117389677A true CN117389677A (zh) 2024-01-12

Family

ID=89436157

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310067448.4A Pending CN117389677A (zh) 2022-07-05 2023-02-02 一种基于云计算技术的服务器以及云系统

Country Status (2)

Country Link
CN (1) CN117389677A (zh)
WO (1) WO2024008066A1 (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810015A (zh) * 2012-11-09 2014-05-21 华为技术有限公司 虚拟机创建方法和设备
CN107436810A (zh) * 2017-07-03 2017-12-05 北京东土科技股份有限公司 一种计算机系统资源调度方法及装置
CN107479943B (zh) * 2017-07-03 2020-02-21 北京东土科技股份有限公司 基于工业互联网操作系统的多操作系统运行方法及装置

Also Published As

Publication number Publication date
WO2024008066A1 (zh) 2024-01-11

Similar Documents

Publication Publication Date Title
CN109154849B (zh) 包括核心层、用户接口和配备有基于容器的用户空间的服务层的超融合系统
EP3284213B1 (en) Managing virtual network functions
US9032200B2 (en) Method of installing virtual service processor (VSP) to computing device and application of the same
US8443365B2 (en) Methods and systems to clone a virtual machine instance
CN111989681A (zh) 自动部署的信息技术(it)系统和方法
US20150058839A1 (en) Method and System for Network-Less Guest OS and Software Provisioning
US11210132B2 (en) Virtual machine migration in virtualization environment having different virtualization systems
KR101369428B1 (ko) 이종의 게스트 오퍼레이팅 시스템을 지원하는 휴대용 단말을 위한 어플리케이션 관리 장치 및 방법
JP2008305034A (ja) デバイス割り当て変更方法
JP2010033404A (ja) 仮想計算機システムおよび仮想計算機システムの制御方法
CN110968392B (zh) 一种升级虚拟化模拟器的方法和装置
WO2022135429A1 (zh) 快速启动方法
CN114968477A (zh) 容器热迁移方法及容器热迁移装置
US11861357B2 (en) Selecting and sending subset of components to computing device prior to operating system install
US20230229481A1 (en) Provisioning dpu management operating systems
WO2023196074A2 (en) Hosting dpu management operating system using dpu software stack
CN117389677A (zh) 一种基于云计算技术的服务器以及云系统
Im et al. On-demand Virtualization for Post-copy OS Migration in Bare-metal Cloud
CN114115703A (zh) 裸金属服务器在线迁移方法以及系统
US20230325222A1 (en) Lifecycle and recovery for virtualized dpu management operating systems
CN113986358B (zh) 裸金属实例装机方法、装置及设备
US20230214245A1 (en) Online Migration Method and System for Bare Metal Server
US20230229470A1 (en) Virtual media offload in smart network interface controller
Kourai et al. Virtual AMT for Unified Management of Physical and Virtual Desktops
CN115879095A (zh) 密码重置方法、装置、计算设备及计算机存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication