|
Project Information
|
【系统总体介绍】 Woodpecker是一个基于oepnstack云平台构建能够自动检测云平台的故障并进行修复的云系统。它主要针对系统的三个层次:物理主机层、虚拟机层、虚拟应用层。在这个系统中,采取的是事件驱动机制。 【系统拓扑】 实验平台包括六台主机:两台不支持CPU虚拟化的主机(分别为主机A1,A2),四台支持虚拟化的主机(分别为主机B1,B2,B3,B4),路由器一个。四台机器(A1,A2,B1,B2)搭建服务器环境,另外两台(B3,B4)作为以后的客户端,暂时没用到。 A1:主控端 系统:ubuntu 12.04 server ip:192.168.1.100 服务:nova,glance,keystone,horizon,mysql 功能:除了运行虚拟机之外的所有功能 A2:共享存储 系统:win7 ip:192.168.1.104 服务:oracle 功能:数据库,共享存储 B1和B2:计算节点 系统:ubuntu 12.04 server ip:192.168.101和192.168.1.110 服务:nova-compute 功能:运行虚拟机 【系统软件体系结构设计】 该平台主要的思路是借用现有的开源云平台Openstack的API,包括GUI层、Scheduler调度层、逻辑层和功能层四层。按照该系统的工作机制,该系统从逻辑上化分为四个模块:感知模块、策略模块、执行模块、GUI模块,整个结构如图所示:
GUI层:主要用来与用户进行交互,用户可以通过该界面,获得系统的运行状况,其中包括:虚拟机的运行状态、虚拟机的资源情况等,同时用户可以通过界面控制虚拟机的运行状况(例如停止某台虚拟机),也可以进行一些系统的基本配置(比如扫描时间的设置),使得整个系统更灵活、更智能。 Scheduler调度层:主要是负责对事件队列进行操作,是整个系统的核心,该层能够保证事件有条不紊地被执行。此外,它需要对事件队列满、事件队列空等各种异常进行处理,同时保证进程同步。 逻辑层:我们采取的是事件驱动机制,每个事件都有相对应的处理对象。我们的事件主要分为三种:感知事件、策略事件、执行事件。感知模块响应感知事件,策略模块响应策略事件,执行模块响应执行事件。 功能层:主要是对Libvirt API和Openstack API的封装,用来与Openstack和Libvirt进行交互,是整个系统的最底层,提供对上述几层的支持。 【系统界面】 图形界面是本系统重要的功能,它主要有三个功能:第一:用来展示系统的运行情况,用户可以从界面上获得系统的运行状况,例如虚拟机的状态、虚拟机的资料利用率、主机的运行状况等信息;第二:可以与用户进行交互,干涉虚拟机的运行情况,其中包括停止某台虚拟机、打开某台虚拟机的VNC连接;第三:用户可以实现系统地动态配置,其中包括虚拟机的扫描时间间隔、杀毒时间间隔、主机的扫描时间间隔等信息,实现系统的自动化。整个系统的界面如下图所示:
第一部分:命令菜单和标题菜单。在这里着重介绍命令菜单:红色按钮是删除虚拟机按钮;第二个按钮是暂停虚拟机按钮;第三个按钮是恢复暂停虚拟机按钮;第四个按钮是重置系统按钮;第五个按钮是离线杀毒按钮;第六个按钮是虚拟机vnc链接按钮。 第二部分:用来显示当前系统的状况。从这一栏,我们可以看出当前系统中的所有虚拟机、可以看出当前系统中所有的主机。 第三部分:是用来显示在第二部分选择特定的主机的详细信息。详细信息主要包括虚拟机的状态、虚拟机IP、虚拟机的cpu、虚拟机的磁盘disk、虚拟机的volume。 第四部分:用来显示日志信息,记录用户的操作。 【系统主要功能列表】 感知功能: 目前,从三个层次进行感知。第一层是感知物理主机,主要包括物理主机电源、物理主机剩余内存;第二层是感知虚拟机,主要包括虚拟机状态、虚拟机网络、虚拟机CPU利用率、虚拟机内存使用率、虚拟机磁盘的使用情况;第三层是感知虚拟应用,主要包括虚拟应用状态、虚拟应用CPU使用率、虚拟应用内存使用率、虚拟机应用链接数、虚拟机应用是否存在。 执行功能: 目前能够利用openstack的API进行Instance,image,flavor,volume四方面的操作。 |