文件名称:虚拟机管理的软件实现-搭建小型access数据库实录
文件大小:1.72MB
文件格式:PDF
更新时间:2024-06-29 06:09:32
OpenStack 自动部署
4.3 虚拟机管理的软件实现 虚拟机管理是应用自动部署管理系统的核心功能,它负责通过 OpenStack 驱 动,管理和维护云平台中所有虚拟机以及与其有关的网络、存储、镜像等配套资源。 对于他们的管理不单是调用现成的 API 那么简单,需要额外加入对虚拟机的管理 流程和业务逻辑,并在系统运行期间起到维护虚拟机实例集合,维护虚拟机实例与 应用程序间的对应关系等作用。 4.3.1 虚拟机的数据结构 应用自动部署管理系统底层对于虚拟机的数据类型进行了抽象的包装,通过 面向对象编程的方式把对于虚拟机的数据结构通过 NovaServer 类进行封装, NovaServer 类的属性包括虚拟机对象、监控对象、应用名称、虚拟机浮动 IP 和部 署应用的服务端口。其中在虚拟机最初初始化时,应用名称和服务端口属性都是空 值,只有系统在该上虚拟机完成应用部署之后,才给这两个属性进行赋值。 4.3.2 虚拟机的业务逻辑管理 由于自动部署系统没有使用数据库存储系统的状态信息,所以需要一个静态 变量来保存程序运行时的所有虚拟机实例,这个类就是 NovaServerManager,它把 系统管理的全局虚拟机分为两类,一类是没有部署应用程序的虚拟机,另一类是已 经部署了应用程序的虚拟机,分别存放在 serverPool 和 webAppServers 两个静态的 HashMap 变量中,可以根据虚拟机 IP 快速获取虚拟机 NovaServer 实例。 NovaServerManager 类为实现了对虚拟机的抽象管理,包括了系统对虚拟机的创建、 选择、入池、分配、回收等操作。NovaServerManager 类是对虚拟机进行管理的核 心类之一,它的结构较为复杂,内部实现了很多有系统虚拟机集群状态有关的方法, 例如从没有绑定应用的 VMServer 池中分配一个平均负载最低的服务器,并将其用 作部署应用程序,创建并初始化一个虚拟机,通过浮动 IP 获取虚拟机 NovaServer 对象等。它的功能主要是对所有系统创建的虚拟机实例进行汇总管理,为上层应用 程序的管理提供虚拟机主机资源,通过调用下层 NovaAction 与 OpenStack 进行交 互。 4.3.3 虚拟机的操作管理 NovaAction 类的作用是封装 NovaServerManager 对底层 OpenStack 接口的调 用,为其他类提供所有需要调用 OpenStack API 执行的动作,例如新建虚拟机,控 制虚拟机启动、挂起、关闭、重启动作,清除虚拟机、为虚拟机绑定浮动 IP 等操