一种云计算平台中的I/O请求计数系统及其方法与流程

文档序号:11697527阅读:193来源:国知局
一种云计算平台中的 I/O 请求计数系统及其方法与流程
一种云计算平台中的I/O请求计数系统及其方法技术领域本发明涉及到云计算平台中的安全I/O请求计数技术,特别是涉及到准确并且有安全性的云计算平台中的I/O请求计数系统及其方法。

背景技术:
随着计算技术的不断发展,传统的个人PC已经很难满足用户的计算需求,云计算技术应运而生,在近几年得到迅速的发展。云计算通过使用虚拟化等核心技术,为用户提供计算能力远大于个人PC的服务器集群来为用户进行大规模的计算任务。云计算的一种主要应用形式是由供应商为用户提供以虚拟机为单位的实例,用户通过网络等渠道将需要进行处理的任务提交给该虚拟机实例进行运行。然而,这样的环境存在很多安全性的隐患。由于用户无法与处理其数据的机器进行直接的接触,数据存在泄露的风险,而且,云计算平台的集群的供应商也需要提供足够的证据证明自己不会对用户的数据进行改动。与安全性有关的另一个关键问题是云计算平台的计费问题。当前的计费模式一般是按照时间收费,然而该种方式过于粗略,而且,由于多个虚拟机的调度问题,很容易造成执行时间分配不均的情况,会直接造成用户的经济损失。因此,如何为用户提供更为准确的资源使用计数凭证,以及如何确保该凭证是安全可信的,是当前亟需解决的问题。作为当前云计算平台的主要实现技术,虚拟化技术产生于上世纪六十年代,IBM提出了虚拟化的概念,并把此技术应用于IBM的System/370系统。到目前为止,虚拟化技术已经被应用于很多行业和领域,并且在未来将有更广泛的使用。通过虚拟化技术,可以提高服务器的利用率,提高服务的稳定性和健壮性以及软件的可移植性,此外,虚拟化技术也由于其出色的隔离性为解决系统的安全问题提供了一种思路。Xen是一种广泛使用的虚拟化软件,其主要部件为虚拟机管理层(VirtualMachineMonitor,以下简称VMM)、包含管理工具的特权虚拟机Domain0(以下简称Dom0),以及客户虚拟机(以下简称DomU),其中,VMM层运行在客户虚拟机和硬件之间,Dom0与DomU都运行在VMM层之上,Dom0的特殊之处在于,其具有管理其他DomU的管理工具,以及与VMM通信的接口,从而达到对Xen虚拟环境进行控制的目的。Dom0端还包括接收DomU硬件访问信息的接口,称为后端驱动,后端驱动能够接收同一物理机上所有的DomU的硬件请求,并通过访问真实设备驱动来对这些请求进行统一处理。文献1“ChenChen,PetrosManiatis,AdrianPerrig,AmitVasudevan,VyasSekar.TowardsVerifiableResourceAccountingforOutsourcedComputation.VEE2013”首次开始关注如何在云计算平台中进行可验证的资源计数问题,该文章从保证实例整个运行生命周期安全性的角度来确保其对于资源的计数是安全的,并且使用增加一层虚拟化层次的方法对各个实例的CPU和内存使用情况进行记录,并通过一种加密的技术将该记录发送给用户。然而,该文章并未考虑I/O资源的计数问题。目前,大数据处理是云计算平台主要的任务之一,频繁的I/O访问是这类应用的主要特征之一,此外,对用户的I/O资源使用情况进行记录还可以为用户提供分析应用性能的凭证,因此,对于供应商和用户来说,I/O资源使用的计数问题是十分重要的。文献2“M.Wachs,L.Xu,A.Kanevsky,andG.R.Ganger.Exertion-basedBillingforCloudStorageAccess.InHotCloud,2011.”则提出存储云的计费问题的主要方面是要保证准确记录每个请求的磁盘处理时间。此外,标识每个I/O请求来自于哪个实例的哪个应用是十分必要的。因此有必要针对云计算平台的I/O请求计数问题,提出一种安全准确的I/O请求计数方法及其系统。

技术实现要素:
本发明的目的在于提供一种云计算平台中的I/O请求计数系统及其方法,用于为用户的资源使用情况提供了安全可信的凭证,并为用户提供了一种分析其应用运行情况的有效方法。为了实现上述目的,本发明提供一种云计算平台中的I/O请求计数系统,应用于Xen虚拟化系统,该Xen虚拟化系统包括虚拟机管理层VMM、特权虚拟机Dom0、客户虚拟机DomU,该VMM运行在DomU和真实设备之间,Dom0与DomU运行在VMM之上,其特征在于,该I/O请求计数系统包括:部署于同一安全虚拟机的后端设备驱动模块、真实设备驱动模块;后端设备驱动模块还设置有一I/O计数监控模块;该虚拟机管理层VMM启动该安全虚拟机,该安全虚拟机在启动后通知该虚拟机管理层VMM关闭该安全虚拟机与该特权虚拟机之间的通信通道;该后端设备驱动模块接收该客户虚拟机发送的I/O请求,并交由真实设备驱动模块执行,该I/O计数监控模块检测该I/O请求并进行计数。所述的云计算平台中的I/O请求计数系统,其中,所述客户虚拟机还设置一前端设备驱动模块,用于将所述I/O请求通过一共享环传送给所述后端设备驱动模块,由所述后端设备驱动模块将所述I/O请求交由真实设备驱动模块执行。所述的云计算平台中的I/O请求计数系统,其中,所述I/O计数监控模块当所述I/O请求为磁盘I/O请求时,从磁盘I/O请求中提取所述客户虚拟机的标识信息,根据该标识信息向VMM层发送超级调用请求,获取所述客户虚拟机当前正在运行的进程信息。所述的云计算平台中的I/O请求计数系统,其中,所述I/O计数监控模块根据所述客户虚拟机的当前CPU的CR3寄存器值获取所述客户虚拟机当前正在运行的进程信息。所述的云计算平台中的I/O请求计数系统,其中,所述I/O计数监控模块还包括:一转换应用模块,用于每隔一定时间对运行的客户虚拟机的当前运行进程列表信息进行提取,利用得到的初始进程地址得到第一个进程的进程结构,通过该进程结构的进程名偏移得到该第一个进程的进程名,通过进程链表信息获取到下一个进程的地址信息,再由下一个进程地址信息获取到下一个进程的结构信息,以此类推,获取到每个进程名以及其页目录基址信息,根据该信息将记录的CR3值转换为其对应的进程名。为了实现上述目的,本发明提供一种云计算平台中的I/O请求计数方法,其特征在于,包括:步骤一,将后端设备驱动模块、真实设备驱动模块部署于同一安全虚拟机;步骤二,虚拟机管理层VMM启动该安全虚拟机,该安全虚拟机在启动后通知该虚拟机管理层VMM关闭该安全虚拟机与该特权虚拟机Dom0之间的通信通道;步骤三,该后端设备驱动模块接收该客户虚拟机DomU发送的I/O请求,并交由真实设备驱动模块执行,该后端设备驱动模块中的I/O计数监控模块检测该I/O请求并进行计数。所述的云计算平台中的I/O请求计数方法,其中,所述步骤三中,还包括:所述客户虚拟机通过一共享环将所述I/O请求传送给所述后端设备驱动模块,由所述后端设备驱动模块将所述I/O请求交由真实设备驱动模块执行。所述的云计算平台中的I/O请求计数方法,其中,所述步骤三中,包括:所述I/O计数监控模块当所述I/O请求为磁盘I/O请求时,从磁盘I/O请求中提取所述客户虚拟机的标识信息,根据该标识信息向VMM层发送超级调用请求,获取所述客户虚拟机当前正在运行的进程信息。所述的云计算平台中的I/O请求计数方法,其中,所述步骤三中,包括:所述I/O计数监控模块根据所述客户虚拟机的当前CPU的CR3寄存器值获取所述客户虚拟机当前正在运行的进程信息。所述的云计算平台中的I/O请求计数方法,其中,所述步骤三中,包括:所述I/O计数监控模块通过一转换应用模块,每隔一定时间对运行的客户虚拟机的当前运行进程列表信息进行提取,利用得到的初始进程地址得到第一个进程的进程结构,通过该进程结构的进程名偏移得到该第一个进程的进程名,通过进程链表信息获取到下一个进程的地址信息,再由下一个进程地址信息获取到下一个进程的结构信息,以此类推,获取到每个进程名以及其页目录基址信息,根据该信息将记录的CR3值转换为其对应的进程名。与现有技术相比,本发明的有益技术效果是:本发明提供了一种云计算平台中的安全准确的I/O计数方法,为用户的资源使用情况提供了安全可信的凭证,也为用户提供了一种分析其应用运行情况的有效方法。在该部署有I/O计数监控模块的虚拟化架构中,特权虚拟机Dom0作为整个架构的管理节点,拥有创建关闭虚拟机、内存内容映射等接口。安全虚拟机具有能够访问真实设备的能力,即部署有真实的设备驱动,以及响应其他客户虚拟机DomU的I/O请求的后端设备驱动模块。客户虚拟机DomU中安装有前端设备驱动模块,该前端设备驱动模块能够将客户虚拟机DomU中的I/O请求信息通过一段共享内存传递到安全虚拟机提供的后端设备驱动模块,由后端设备驱动模块发送给真实设备驱动模块执行,这里使用的共享内存成为I/O共享环,这里使用一种环状机制,I/O请求被前端设备驱动模块提交到I/O共享环中后,XenVMM层将发送中断信号给后端设备驱动模块,后端设备驱动模块接到中断信号后从I/O共享环中提取请求信息,根据请求信息中包含的磁盘扇区号、网络目的端地址等信息重新生成真实I/O设备访问请求,最终交由真实设备驱动模块进行处理:对于磁盘访问I/O请求,按照扇区号及大小读取磁盘内容,最终获取到相关扇区的内容并返回给客户虚拟机DomU;对于网络访问I/O请求,根据目的端地址发送请求,等待目的端处理返回包信息后,传递给客户虚拟机DomU;当处理完成后,后端设备驱动模块将应答信息同样放于共享环中,由VMM层发送中断信号给前端设备驱动模块来完成请求。附图说明图1为本发明的计数系统结构示意图;图2为本发明的安全虚拟机启动流程示意图;图3为本发明的磁盘I/O请求计数流程示意图。具体实施方式以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。如图1所示,为本发明的计数系统结构示意图。在图1中,在该系统中,后端设备驱动模块以及真实设备驱动模块被部署到了一个安全虚拟机中,而不是传统的特权虚拟机Dom0中。安全虚拟机将具备转发其他客户虚拟机DomU的I/O请求到真实设备驱动模块,并与真实硬件通信的能力。特权虚拟机Dom0则只具备管理其他客户虚拟机DomU的能力,包括启动、关闭操作等。安全虚拟机由Xen的VMM层自行启动,而不需要通过特权虚拟机Dom0。在安全虚拟机启动后,将安全虚拟机与特权虚拟机Dom0的所有共享通道关闭,包括内存映射通道、共享内存通道等,以此来保证管理者无法通过内存映射通道等接触到安全虚拟机。同一物理平台上的所有客户虚拟机DomU所发出的I/O请求经由前端设备驱动模块发送到安全虚拟机的后端设备驱动模块中进行集中处理。因此,在后端设备驱动模块上部署I/O计数监控模块,该I/O计数监控模块能够获取到所有的I/O请求信息,并按照客户虚拟机DomU进行分离的I/O计数记录,此处分离的I/O计数是指以每个客户虚拟机DomU为一个单位,发送自或者接受自某个客户虚拟机DomU的I/O请求分别保存到一个单独的记录中,最终形成各个客户虚拟机DomU的I/O计数记录。如图2所示,为本发明的安全虚拟机启动流程示意图。结合图1,详细描述安全虚拟机的启动流程,具体地,安全虚拟机的启动步骤如下:步骤201,机器启动,XenVMM开始启动;步骤202,XenVMM启动特权虚拟机Dom0;步骤203,XenVMM启动安全虚拟机,在启动之前,通过XenVMM中记录的hash值对安全虚拟机的内核完整性进行验证,确定其没有被更改,允许启动;如果发现被更改,说明可能受到攻击,不允许启动,并向提供商报错。步骤204,安全虚拟机内核启动,挂载文件系统。在挂载之前,通过记录的hash值对根目录分区进行完整性验证,确定其没有被修改,允许启动;如果发现其被更改,说明可能受到攻击,不允许启动,并向供应商报错。步骤205,安全虚拟机正常启动,通知XenVMM关闭安全虚拟机与特权虚拟机Dom0之间的通信通道,达到隔离的目的。如图3所示,为本发明的磁盘I/O请求计数流程示意图。该流程中描述了磁盘I/O请求计数过程,结合图1、2,对该磁盘I/O请求计数的具体过程描述如下:I/O计数监控模块部署于后端设备驱动模块。由于客户虚拟机DomU的I/O请求都必须要经过后端设备驱动模块来达到真实设备驱动模块,因此,在后端设备驱动模块处可以截获到来自同一物理平台上的所有客户虚拟机DomU的全部I/O请求。下面以磁盘I/O请求计数为例,详细说明I/O计数监控模块的工作流程,网络I/O请求计数与其类似:步骤301,一个客户虚拟机的前端设备驱动模块发送出一个磁盘I/O请求;步骤302,磁盘I/O请求到达磁盘的后端设备驱动模块,I/O计数监控模块部署于后端设备驱动模块中,I/O计数监控模块在此时会检测到有磁盘I/O请求到达,开始一次记录;步骤303,I/O计数监控模块从磁盘I/O请求的结构中提取客户虚拟机DomU的标识信息,利用该标识信息,通过与XenVMM的交互设备模块向XenVMM层发送超级调用请求,获取当前客户虚拟机DomU正在运行的进程信息,由于每个进程的页目录基址的值是不同的,而每个CPU中的CR3寄存器存储的是当前运行的进程的页目录基址。因此,通过获取该客户虚拟机DomU的当前CPU的CR3寄存器值就可以知道当前客户虚拟机DomU中运行的是哪一个进程。I/O计数监控模块将获取到的该信息与当前的I/O请求信息一起存储。步骤304,为了进一步达到准确计数的目的,在I/O计数监控模块中还设置一个CR3到进程名的转换应用模块,该转换应用模块每隔一段时间对运行的客户虚拟机DomU的当前运行进程列表信息进行提取,本项操作需要虚拟机的操作系统的初始进程地址、进程结构偏移量等信息,但并不需要虚拟机协同进行操作,I/O计数监控模块利用初始进程地址得到第一个进程的进程结构,通过进程名偏移(即内核中进程结构体中进程名描述变量的位置,该值形式上等于进程结构体的起始地址+进程名描述变量在进程结构体中的偏移量)得到该第一个进程的进程名,然后再通过进程链表信息(该信息通过外部读取客户虚拟机DomU描述进程链表的内存内容解析得到)获取到下一个进程的地址信息,再由下一个进程地址信息获取到下一个进程的结构信息,以此类推,获取到每个进程名以及其页目录基址信息。I/O计数监控模块的转换应用模块负责根据该信息将记录的CR3值转换为其对应的进程名。步骤305,I/O计数监控模块根据用户需求,将该信息保存在本地或直接发送给用户。如果直接发送,则利用用户提供的密钥进行加密传输,避免数据泄露的风险。在该部署有I/O计数监控模块的虚拟化架构中,特权虚拟机Dom0作为整个架构的管理节点,拥有创建关闭虚拟机、内存内容映射等接口。安全虚拟机具有能够访问真实设备的能力,即部署有真实的设备驱动,以及响应其他客户虚拟机DomU的I/O请求的后端设备驱动模块。客户虚拟机DomU中安装有前端设备驱动模块,该前端设备驱动模块能够将客户虚拟机DomU中的I/O请求信息通过一段共享内存传递到安全虚拟机提供的后端设备驱动模块,由后端设备驱动模块发送给真实设备驱动模块执行,这里使用的共享内存成为I/O共享环,这里使用一种环状机制,I/O请求被前端设备驱动模块提交到I/O共享环中后,XenVMM层将发送中断信号给后端设备驱动模块,后端设备驱动模块接到中断信号后从I/O共享环中提取请求信息,根据请求信息中包含的磁盘扇区号、网络目的端地址等信息重新生成真实I/O设备访问请求,最终交由真实设备驱动模块进行处理:对于磁盘访问I/O请求,按照扇区号及大小读取磁盘内容,最终获取到相关扇区的内容并返回给客户虚拟机DomU;对于网络访问I/O请求,根据目的端地址发送请求,等待目的端处理返回包信息后,传递给客户虚拟机DomU;当处理完成后,后端设备驱动模块将应答信息同样放于共享环中,由VMM层发送中断信号给前端设备驱动模块来完成请求。本发明提供了一种云计算平台中的安全准确的I/O计数方法及其系统,其中,云计算平台主要基于Xen虚拟化技术,安全是指提供商可以保证不能干涉计数系统的正常运行,而且恶意攻击者也无法对其进行干扰;准确是指I/O计数能够获取当前处理的I/O请求来自于哪一个虚拟机实例中的哪一个应用。本发明需要将特权虚拟机Dom0的后端设备驱动模块进行隔离,这里是使用一个安全虚拟机来运行后端设备驱动模块,对其他客户虚拟机DomU的I/O请求进行响应。该安全虚拟机无法通过特权虚拟机Dom0进行访问,这样就保证了提供商无法对其运行进行干扰,同时攻击者也没有渠道对其记录的数据进行读取或篡改。本发明提供的云计算平台中的安全准确I/O计数方法,为用户的资源使用情况提供了安全可信的凭证,也为用户提供了一种分析其应用运行情况的有效方法。当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1