搜索虚拟资源的位置的方法、装置和系统转让专利

申请号 : CN200910171027.6

文献号 : CN101998629B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴玉会何乐金涬赵阳邹志乐王庆波

申请人 : 国际商业机器公司

摘要 :

本发明涉及在大规模计算系统中搜索虚拟资源的位置的方法、装置和系统。所述虚拟资源部署在至少一个服务器上,其中每个服务器都附有一个传感器并与其通信,所述传感器相互通信以组成通信网络,每个传感器获取与该传感器连接的服务器中的虚拟资源的信息,每个传感器获取该传感器的位置信息,所述方法包括:任意一个传感器接收搜索请求,搜索请求包含目标虚拟资源的标识符;在所述多个传感器组成的网络中发送所述搜索请求;存储有所述目标虚拟资源的标识符的传感器返回自身的位置信息。

权利要求 :

1.一种用于搜索虚拟资源的位置的方法,所述虚拟资源部署在至少一个服务器上,其中每个服务器都附有一个传感器并与其通信,所述传感器相互通信以组成通信网络,每个传感器存储有与该传感器连接的服务器中的虚拟资源的标识符以及该传感器的位置信息,所述方法包括: 至少一个所述传感器接收搜索虚拟资源的搜索请求,所述搜索请求包含该虚拟资源的标识符; 在所述传感器组成的通信网络中传输所述搜索请求;

存储有该虚拟资源的标识符的传感器返回自身的位置信息, 所述方法还包括:

每个传感器获取与该传感器连接的服务器中的虚拟资源的信息,所述虚拟资源的信息包括所述虚拟资源的标识符,所述虚拟资源的信息还包括指示所述虚拟资源的至少一个以下状态的信息:存活、不活跃。

2.根据权利要求1的方法,其中所述传感器组成的是ad-hoc无线网络。

3.根据权利要求1的方法,还包括每个传感器获取该传感器的位置信息,所述每个传感器获取该传感器的位置信息进一步包括: 每个传感器通过接收多个基准信号源的信号来计算自己的位置,其中所述多个基准信号源被固定在所述服务器周围。

4.根据权利要求1的方法,还包括:

返回所述位置信息的传感器接收要求发出可听信号或可视信号的消息,并且根据所述消息发出可听信号或可视信号。

5.根据权利要求1的方法,还包括:

计算并显示到达返回所述位置信息的所述传感器的路径。

6.一种数据计算系统,包括:

多个服务器,至少一个服务器上部署有虚拟资源;

多个传感器,每个传感器安装到一个服务器上;

其中每个传感器包括:

通信单元,用于与其它传感器的通信单元通信以使所述多个传感器组成通信网络,所述通信单元还用于接收用于搜索所述虚拟资源的搜索请求,所述搜索请求包含该虚拟资源的标识符; 位置信息计算单元,用于计算并存储该传感器的位置信息; 虚拟资源信息获取单元,用于与该传感器所安装的服务器通信,以获取该服务器上部署的虚拟资源的标识符; 虚拟资源信息存储单元,用于存储虚拟资源信息获取单元获取的虚拟资源的标识符; 虚拟资源信息搜索单元,用于搜索所述虚拟资源信息存储单元以查找该虚拟资源的标识符,如果搜索到该虚拟资源的标识符,返回所述位置信息计算单元计算的位置信息, 其中所述虚拟资源信息存储单元还存储指示虚拟资源的至少一个以下状态的信息:存活、不活跃。

7.根据权利要求6的数据计算系统,所述多个传感器组成ad-hoc无线网络。

8.根据权利要求6的数据计算系统,所述传感器还包括电池单元。

9.根据权利要求6的数据计算系统,还包括:

多个基准信号源,所述每个传感器的位置信息计算单元通过接收基准信号源的信号来计算位置信息。

10.根据权利要求6的数据计算系统,还包括搜索装置,其中所述搜索装置包括: 搜索请求输入单元,用于输入搜索请求,所述搜索请求包括该虚拟资源的标识符,以及 通信单元,用于与至少一个传感器通信,以及用于接收搜索到所述该虚拟资源的传感器所返回的位置信息。

11.根据权利要求10的数据计算系统,所述搜索装置还包括: 路径计算及显示单元,用于根据所述位置信息来计算并显示到达发送所述位置信息的传感器的路径。

12.一种传感器,用于被安装到服务器上,所述服务器上部署 有虚拟资源,所述传感器包括: 通信单元,用于与其它传感器的通信单元通信以使所述传感器与其它传感器组成通信网络,所述通信单元还用于接收用于搜索所述虚拟资源的搜索请求,所述搜索请求包含该虚拟资源的标识符; 位置信息计算单元,用于计算并存储该传感器的位置信息; 虚拟资源信息获取单元,用于与该传感器所安装在的服务器通信,以获取该服务器上部署的虚拟资源的标识符; 虚拟资源信息存储单元,用于存储虚拟资源信息获取单元获取的虚拟资源的标识符; 虚拟资源信息搜索单元,用于搜索所述虚拟资源信息存储单元以查找该虚拟资源的标识符,如果搜索到该虚拟资源的标识符,返回所述位置信息计算单元计算的位置信息, 其中所述虚拟资源信息存储单元还存储指示虚拟资源的至少一个以下状态的信息:存活、不活跃。

13.根据权利要求12的传感器,所述通信单元遵照ad-hoc无线通信协议进行通信。

14.根据权利要求12的传感器,还包括电源单元。

15.根据权利要求12的传感器,其中传感器的位置信息计算单元通过接收多个基准信号源的信号来计算位置信息。

16.一种用于搜索数据计算系统中的虚拟资源的位置的终端装置,其中所述数据计算系统包括多个服务器,每个服务器与一个传感器相连接,所述传感器组成通信网络,以及至少一个服务器上部署有所述虚拟资源,所述终端装置包括: 虚拟资源搜索请求输入单元,用于输入对虚拟资源的搜索请求,所述搜索请求包括该虚拟资源的标识符; 通信单元,用于与多个所述传感器中的至少一个传感器通信,以把搜索请求发送给该传感器; 位置信息计算单元,用于计算所述终端装置的位置;

路径计算单元,用于基于传感器返回的该虚拟资源的位置信息, 计算从终端装置的位置到该虚拟资源的路径; 显示单元,用于显示路径计算单元所计算的路径信息,

其中所述传感器包括虚拟资源信息获取单元,用于与该传感器所安装在的服务器通信,以获取该服务器上部署的虚拟资源的标识符,所述虚拟资源信息存储单元还存储指示虚拟资源的至少一个以下状态的信息:存活、不活跃。

说明书 :

搜索虚拟资源的位置的方法、装置和系统

技术领域

[0001] 本发明涉及一种搜索资源的位置的方法和系统,尤其涉及在大规模的计算系统环境(例如,云计算环境)中搜索虚拟资源的位置的方法和系统。

背景技术

[0002] 云计算是一种新的计算形式,其在互连网上提供动态可扩展的、往往是虚拟的资源作为服务提供给用户。用户不需要知道、掌握或控制支持他们的“云”内部的技术基础结构。云计算的主要基础是由数据中心提供的、使用不同层次的虚拟化技术建立在服务器上的可靠服务构成。所述服务可以在提供网络接入的任何地方获取。对于所有的用户计算需求而言,“云”常常可被看作单个接入点。
[0003] 图1示出一个云计算中心的示例。在图1的示例中,相互连接的多个服务器101构成一个云计算中心100。多个终端200可以接入云计算中心100,以得到“云”提供的计算服务。这种云计算中心已经在商业上有了广泛应用。例如,Amazon提供的亚马逊弹性计算云(AmazonElastic Compute Cloud,也称为EC2)是一种商业的云计算服务,其允许用户租用计算机来运行他们自己的计算机应用程序。EC2允许可扩展的应用部署,用户可以通过EC2提供的网页服务界面来自己创建虚拟机,例如创建一个服务器实例,在服务器实例上用户可以加载任何选择的软件。用户可以根据需要产生、启动、结束服务器实例,按小时为运行的服务器付费,由此称之为“弹性”的。关于EC2的进一步详细内容,可以参见Amazon.com提供的Amazon Web Services(AWS)。此外,Microsoft提供的Azure Sevice Platform也是一种云计算平台,其提供了广泛的互联网服务。MicroSoft、Salesforce等也都提供各自的云计算服务。
[0004] 云计算中心往往是通过集中部署在一个或者若干个数据中心中的通过网络相互连接的大量物理服务器来实现的。例如,提供云计算服务的某个供应商可以在一个数据中心内部署几千甚至几万台物理服务器来实现一个云计算中心。
[0005] 在上述的大规模云计算中心中,常常需要寻找某个物理服务器或某个虚拟机的位置。例如,当为某个用户提供云计算服务的虚拟机出现故障时,管理员希望能够知道该虚拟机的具体位置在哪里。还例如,当某个物理机因故障而宕机时,管理员也希望能够找到该物理机的具体位置。
[0006] 然而,云计算中心的物理服务器常常被移动以便重新部署,物理服务器以及其上的虚拟机的位置也会被移动。即使管理员忠实地记录每一次移动物理服务器之后的新位置信息,当移动次数越来越多时,管理员容易出错从而导致失去某个物理机的位置;此外,记录并更新每个物理服务器的位置对于管理员来说也是个很大的负担,尤其是数据中心的规模很大时,这个任务几乎是不可完成的。例如,根据某个大型数据中心的报告,它的数据中心中已经有相当比例的物理服务器无法被确定其精确位置,尽管整个云计算中心仍然在正常工作。
[0007] 在云计算中心,不仅物理服务器的位置可以频繁地移动,物理服务器上的虚拟机也可以动态地建立、已迁移、整合等,因此物理机和虚拟机的位置都在变化,导致现有技术难以令人满意地提供所需的定位服务。
[0008] 例如,美国专利US7180422公开了一种资产管理方法和设备,其中通过把逻辑标签(L-tag)和物理标签(P-tag)附加到目标装置上来管理目标装置,其中物理标签包括计算机的物理地址信息等,逻辑标签包括诸如计算机的名称、IP地址等,使用RFID作为标签。但是,上述方法仅能够跟踪实体计算机的物理和逻辑属性,并不适用于虚拟服务器,也无法提供关于虚拟服务器的任何信息。此外,由于使用RFID作为标签,需要使用额外的RFID读取器,而且读取器必须与RFID的距离不能太远,因此工作范围受到限制。
[0009] 还例如,美国专利US7436303描述了一种用来跟踪硬件设备的机架传感器控制器设备。每一个机架传感器控制器上都有一个内存空间,用于存储机架的位置,以及多个传感器的信息,这些传感器上会安装一个RFID的读取器,可以用来读取机架里每个设备上的RFID标识。机架传感器控制器上还有一个处理器,用于归总整个机架的设备信息,并附加上机架的位置信息,用于转发给外部应用程序读取。但是,上述专利中的传感器安装在机架上,机架的位置相对固定,很少会出现移动改变,因此难以适应于服务器可以随意移动的动态数据中心机房环境(例如,云计算中心的物理服务器可以被移动)。此外,上述专利使用RFID技术,每个RFID是被动的,不具备通信和计算能力,需要额外的RFID读取器,并因此受到RFID读取器的通信范围的限制。

发明内容

[0010] 本发明旨在提供一种在大规模计算环境(例如云计算环境)中搜索虚拟资源的位置的方法和系统,尤其涉及搜索虚拟机(VM)的位置的方法和系统,以解决现有技术中存在的技术问题。
[0011] 本发明提供一种用于搜索虚拟资源的位置的方法,所述虚拟资源部署在至少一个服务器上,其中每个服务器都附有一个传感器并与其通信,所述传感器相互通信以组成通信网络,每个传感器存储有与该传感器连接的服务器中的虚拟资源的标识符以及该传感器的位置信息,所述方法包括:所述传感器接收搜索请求,搜索请求包含目标虚拟资源的标识符;在所述传感器组成的通信网络中传输所述搜索请求;存储有所述目标虚拟资源的标识符的传感器返回自身的位置信息。
[0012] 本发明还提供有一种管理数据计算系统中的虚拟资源的位置的方法,其中数据计算系统包括多个服务器,至少一个服务器上部署有虚拟资源,其中每个服务器上安装有一个传感器,所述多个传感器组成通信网络,所述方法包括:在每个传感器中存储与该传感器连接的服务器中的虚拟资源的信息;在每个传感器中存储该传感器的位置信息;基于每个传感器的位置信息和每个传感器的虚拟资源信息,显示每个虚拟资源的位置信息。
[0013] 本发明还提供有一种数据计算系统,包括:多个服务器,至少一个服务器上部署有虚拟资源;多个传感器,每个传感器安装到一个服务器上;其中每个传感器包括:通信单元,用于与其它传感器的通信单元通信以使所述多个传感器组成传感器网络,所述通信单元还用于接收搜索请求,所述搜索请求包含目标虚拟资源的标识符;位置信息计算单元,用于计算并存储该传感器的位置信息;虚拟资源信息获取单元,用于与该传感器所安装的服务器通信,以获取该服务器上部署的虚拟资源的标识符;虚拟资源信息存储单元,用于存储虚拟资源信息获取单元获取的虚拟资源信息;虚拟资源信息搜索单元,用于搜索所述虚拟资源信息存储单元以查找目标虚拟资源的标识符,如果搜索到目标虚拟资源的标识符,返回所述位置信息计算单元计算的位置信息。
[0014] 本发明还提供一种传感器,用于被安装到服务器上,所述服务器上部署有虚拟资源,所述传感器包括:通信单元,用于与其它传感器的通信单元通信以使所述传感器和其它传感器组成传感器网络,所述通信单元还用于接收用于搜索所述虚拟资源的搜索请求,所述搜索请求包含目标虚拟资源的标识符;位置信息计算单元,用于计算并存储该传感器的位置信息;虚拟资源信息获取单元,用于与该传感器所安装在的服务器通信,以获取该服务器上部署的虚拟资源的标识符;虚拟资源信息存储单元,用于存储虚拟资源信息获取单元获取的虚拟资源信息;虚拟资源信息搜索单元,用于搜索所述虚拟资源信息存储单元以查找目标虚拟资源的标识符,如果搜索到目标虚拟资源的标识符,返回所述位置信息计算单元计算的位置信息。
[0015] 本发明还提供有一种用于搜索数据计算系统中的虚拟资源的位置的终端搜索装置,其中所述数据计算系统包括多个服务器,每个服务器与一个传感器相连接,所述传感器组成通信网络,以及至少一个服务器上部署有所述虚拟资源,所述终端搜索装置包括:虚拟资源搜索请求输入单元,用于输入对目标虚拟资源的搜索请求,所述搜索请求包括目标虚拟资源的标识符;通信单元,用于与所述多个传感器中的至少一个传感器通信,以把搜索请求发送给该传感器;位置信息计算单元,用于计算并存储所述终端装置的位置;路径计算单元,用于基于传感器返回的目标虚拟资源的位置信息,计算从终端装置的位置到目标虚拟资源的路径;显示单元,用于显示路径计算单元所计算的路径信息。
[0016] 优选地,所述多个传感器组成的是ad-hoc无线网络。
[0017] 优选地,每个传感器存储与该传感器连接的服务器中的虚拟资源的信息包括,指示虚拟资源的至少一个以下状态的信息:存活、不活跃。
[0018] 优选地,在所述计算系统所在的建筑物内部署多个基准信号源,通过同基准信号源通信来计算临近基准信号源的传感器的位置信息,其余传感器节点的位置可以通过和已经获取位置信息的传感器节点进行通讯获取。

附图说明

[0019] 图1示出一个云计算中心的示例。
[0020] 图2示出物理服务器上部署的虚拟机。
[0021] 图3示出部署虚拟机和本发明的传感器的物理服务器的示例。
[0022] 图4示出本发明的传感器的基本结构。
[0023] 图5示出本发明的传感器组成的传感器网络。
[0024] 图6示出传感器中的虚拟机信息列表的一个示例。
[0025] 图7示出本发明的搜索虚拟机的方法的示例流程图。
[0026] 图8示出用于实现图7所示的方法流程的示例系统。
[0027] 图9示出本发明的搜索装置的示例结构。
[0028] 图10出本发明的管理数据计算系统中的虚拟机位置的方法的示例流程图。

具体实施方式

[0029] 以下结合附图来详细说明本发明的具体实施例。
[0030] 图2示出一个常规的物理服务器200以及部署在服务器上的虚拟机204-206。
[0031] 图2所示的物理服务器200具有硬件201、操作系统202、管理程序203、以及多个虚拟机204、205、206。
[0032] 硬件201可以包括常规的中央处理器、存储器、I/O接口、总线等。此外,硬件提供商也开发了提供虚拟机支持的各种硬件,例如AMD-V、Alcatel-Lucent 3B20D/3B21D、IBM System/370,System/390,zSeries mainframes、Sun Microsystems。
[0033] 操作系统202可以是各种已有的操作系统,例如Solaris Zones、Linux OS、FreeBSD OS等。
[0034] 管理程序(Hyperviser)203是用于管理多个虚拟机(VM)的应用程序。尽管在图2所示的示例中管理程序203和操作系统202是分离的,但在某些直接支持虚拟机的操作系统中,管理程序203可以实现在操作系统202中。
[0035] 多个虚拟机204-206可以是系统虚拟机(system VM),其提供完整的系统平台以进一步其上的操作系统的运行。系统虚拟机的一个示例是Solaris Containers。替换地,虚拟机204可以是处理虚拟机(processVM),其被设计为运行单个程序,从而支持单个处理。例如,处理虚拟机的一个示例是Java Virtual Machine。虚拟机的本质特征在于其中运行的软件被限制在虚拟机所提供的资源和抽象内,不能突破其虚拟边界。虚拟机204-206可以根据需要动态地创建、消除、迁移、整合等等。
[0036] 应当指出,本发明说明书中的“虚拟机”应当被广义理解为物理服务器上部署的任何虚拟资源(即,软资源),例如,在同一物理服务器上部署的多个操作系统或多个用户空间,在物理服务器上部署的web服务程序、ftp服务程序、email服务程序、提供其它服务或代理的应用程序等。
[0037] 管理程序203管理虚拟机204的创建、消除、迁移等,为虚拟机204分配资源、释放资源、并且跟踪记录每个虚拟机的状态。例如,在创建一个虚拟机时,管理程序203为虚拟机分配一个唯一标识符VMID,以用于标识该虚拟机。根据用户的需要,管理程序203还可以为每个创建虚拟机分配资源,包括多大空间的存储器、多少个计算单元、多少位的处理器(例如32-bit或64bit)、I/O吞吐性能等。虚拟机204被消除时,管理程序203释放为其分配的资源。当虚拟机204从一个物理服务器迁移到另一个物理服务器时,原始的物理服务器释放该虚拟机204的资源,新的物理服务器为该虚拟机204分配新的资源。根据本发明的一个实施例,当虚拟机204消除时,为其分配的标识符VMID被保留,不被其它重新创建的虚拟机所使用。根据本发明的另一个实施例,当虚拟机204从一个物理服务器迁移到另一个物理服务器时,新的物理服务器为虚拟机分配新的VMID,而不使用原始的VMID。这样可以保证VMID和虚拟机204之间的唯一的对应关系。
[0038] 图3示出部署了虚拟机和根据本发明的传感器的服务器示例。
[0039] 图3的服务器300包括硬件301、操作系统302、管理程序303、多个虚拟机304-306、传感器310。
[0040] 图3所示的硬件301、操作系统302、管理程序303、多个虚拟机304-306与图2所示的硬件201、操作系统202、管理程序203、多个虚拟机204-206基本相同,在此不再赘述。
[0041] 图3的传感器310用于获取服务器300中关于虚拟机304-306的信息。具体而言,可以在管理程序303中设置代理程序(agent)307。代理程序307用于监控并维护服务器300上的虚拟机304-306的相关信息,并把与虚拟机304-306相关的存储信息发送给传感器
310。传感器310可以与硬件301相互通信以得到代理程序307发送的与虚拟机304-306相关的信息。根据本发明的一个优选实施方式,传感器310可以定期向代理程序307发送请求,获取当前关于虚拟机的最新信息。
[0042] 根据本发明的一个优选实施方式,传感器310可以以无线通信方式与硬件301交互。可替换地,传感器310也可以通过有线连接与硬件301交互。
[0043] 应当指出,尽管在图3所示的实施例中,传感器310被实现为服务器300的组成部分。然而,本发明不限于此。在替换实施例中,传感器310与服务器300各自独立地实现。传感器310可以被固定到服务器300,并通过无线通信技术与服务器300交互。
[0044] 图4示出传感器310的基本结构示图。
[0045] 图4所示的传感器310包括:通信单元4001、虚拟机信息搜索单元4002、存储器4003、虚拟机信息获取单元4006、位置信息计算单元4007、电源4008。
[0046] 通信单元4001用于与其它传感器通信。根据本发明的优选实施方式,多个传感器310能够组成无线ad hoc通信网络。无线ad hoc网络是一种自组织的去中心化(decentralized)无线网络。每个节点的位置可以动态改变,整个网络的拓扑结构也随之动态改变。无线ad hoc网络中的每个节点都可以为其它节点转发数据,从而实现整个无线网络的连通性。
[0047] 应当指出,通过通信单元4001,多个传感器310能够组成一个独立的网络。即使传感器310所在的服务器300出现故障,也不影响传感器310之间的相互通信。
[0048] 图4所示的传感器310及其组成的传感器网络可以利用已有的传感器商业产品来实现。例如,在Crossbow公司开发的传感器产品 的基础上实现本发明的传感器。此外,CAS(中科院)、HIT(哈工大)也已研发出相关的传感器产品。当然本领域技术人员完全可以选用其它现有的适合本发明的传感器产品。
[0049] 图5示出传感器310通过通信单元4001而组成的ad-hoc网络500。
[0050] 图5所示的传感器网络500包括传感器1-6。所述网络500是自适应性的,即可以适应各个传感器的移动而重新组网。通过相邻的一个或多个传感器转发消息,源传感器可以向任意目标传感器发送/接收消息。例如,传感器2向传感器5发送消息时,路由路径:传感器2-传感器3-传感器4-传感器5。
[0051] Ad-hoc无线网络支持各种路由算法以实现网络内各个节点之间的通信。例如,按需路由(On-demand Routing)算法包括:Multirate Ad-hoc On-demand Distance Vector Routing Protocol;预先路由(Proactiverouting)算法包括:AWDS(Ad-hoc Wireless Distribution Service)、HSR(Hierarchical State Routing protocol)等;还可以采用自适应(Adaptive)路由算法。
[0052] 优选地,本发明采用的ad-hoc网络可以为无线网状网(wirelessmesh network,WMN)。WMN是一种特殊的ad-hoc无线网络,其中各个节点以网状拓扑而组织为通信网络。WMN中的节点可以是笔记本、移动电话或其它无线装置,例如传感器。WMN可以利用各种无线通信协议实现,例如包括802.11、802.16等或其组合。应当指出,本发明的传感器网络
500并不限于任何一种特定网络,只要能够实现传感器之间的相互通信即可。
[0053] 参见图4,传感器310包括的虚拟机信息获取单元4006用于管理虚拟机信息。具体而言,虚拟机信息获取单元4006与服务器300中的代理程序307(参见图3)通信以得到服务器300上的虚拟机304-306的信息。虚拟机信息获取单元4006把获取的虚拟机信息存储在存储器4003。存储器4003中保存虚拟机信息列表4004,其中存储与传感器310对应的服务器300中的所有虚拟机的相关信息。
[0054] 图6示出虚拟机信息列表4004的一个示例。
[0055] 如图6所示,VMID作为虚拟机信息列表4004的索引。VMID可以由管理员定义。为了简化说明,在本发明的实施例中,在图6示出标识符为0001、0002、0003、0004、0005的5个VMID。应当指出,VMID的组成并不限于十进制数字,还可以包括十六进制数字、或字母及其它字符以及其组合。此外,VMID的长度也可以根据需要进行调整。例如,根据数据中心所包含的物理服务器的数量来设定VMID的长度,以便保证每个虚拟机能够被分配唯一的标识符。此外,当VMID不能被循环使用时,即,当某个虚拟机被消除时其VMID也被保留,VMID的空间应该足够大。
[0056] 图6还示出与VMID对应的属性。例如,第一列ServerID是服务器标识符(Srv1),用于标识与VMID对应的服务器(Server 1)。第二列Status是状态标识符,用于标识该虚拟机当前的状态。例如,status可以包括至少如下状态:Live(存活)、Termintated(终结)等。Live状态表示该虚拟机当前仍然驻留在该物理服务器上正常工作。Termintated状态表示该虚拟机已经从该物理服务器上消除。
[0057] 以上仅为虚拟机信息列表4004的虚拟机状态status的基本示例。本领域的技术人员能够理解,可以根据具体应用的需要来定义虚拟机的其它状态。
[0058] 例如,根据替换实施例,还可以定义Inactive(不活跃)状态,表示无法监测到某个虚拟机的状态。Inactive状态可以用于虚拟机或物理服务器故障的情况。假设传感器310定期地向服务器300发送请求来查询各个虚拟机的最新状态信息,如果物理服务器300发生故障(例如物理服务器宕机), 则传感器310无法得到该物理服务器300上的任何虚拟机的信息。经过预定时间、或者经过预定次数的查询后,如果仍无法获得虚拟机的信息,则传感器310把该物理服务器300的所有虚拟机的状态设置为Inactive。类似地,当某个虚拟机出现故障(未正常地终结)时,传感器310也把该虚拟机的状态设置为Inactive。
[0059] 根据替换实施例,还可以在虚拟机信息列表4004中定义虚拟机的Moved(已迁移)状态。Moved状态表示该虚拟机已经从该物理服务器迁移到其它服务器。此外,可以进一步在虚拟机列表4004中保存该虚拟机所迁移到的目标服务器的相关信息,例如,目标服务器的标识符,迁移后为该虚拟机分配的新的标识符VMID等。在实际应用中,如果管理员对已迁移(Moved)的虚拟机和终结(Terminated)的虚拟机的位置并不感兴趣,状态为已迁移(Moved)的虚拟机和终结(Terminated)的虚拟机的信息可以从虚拟机信息列表4004中删除,以节省存储空间。
[0060] 应当指出以上仅示例性地说明虚拟机信息列表4004。虚拟机信息列表4004是可以扩展的,用户可以根据需要在虚拟机信息列表4004中保存虚拟机的更加详细的信息,包括:虚拟机创建时间、虚拟机的用户、虚拟机占用的资源、虚拟机的权限等级等。
[0061] 根据本发明的实施例,为了定位虚拟机的位置,虚拟机信息列表4004至少应当指示虚拟机是否驻留在相应的物理服务器上。因此,仅需检索虚拟机信息列表4004的索引VMID,即可知晓某个虚拟机是否在该物理服务器上。
[0062] 再次参见图4,传感器310还包括虚拟机信息获取单元4006。
[0063] 虚拟机信息获取单元4006与传感器310所连接的服务器300通信,从服务器300接收关于服务器300上的虚拟机304-306的信息。优选地,传感器310的虚拟机信息获取单元4006和服务器300无线通信。
[0064] 虚拟机信息获取单元4006可以被动地接收服务器300中的代理程序307发送的数据。可替换地,虚拟机信息获取单元4006可以主动地向服务器300请求虚拟机的相关信息。虚拟机信息获取单元4006还可以周期性地向服务器300发送请求,并把服务器300返回的虚拟机信息写入到虚拟机信息列表4004,从而虚拟机信息列表4004能够保持所有虚拟机的更新信息,包括新虚拟机的创建、老虚拟机的消除、迁移等。
[0065] 参见图4,传感器310还包括位置信息计算单元4007。位置信息计算单元4007用于计算并存储传感器310自身的位置,从而得到包含该传感器的服务器300的位置。
[0066] 常规的GPS定位技术并不适合用于计算传感器310的位置,这是因为本发明主要应用在大规模、高密度的数据中心。首先,GPS定位技术需要接收卫星信号,而数据中心被部署在建筑物内部,建筑物内部有些地方信号质量不理想会导致GPS定位失效。此外,GPS定位技术提供的精度不足以准确地计算传感器310的位置。在大规模数据中心内,单个机架上往往可以安装成百上千台服务器300,因此相邻服务器300之间的距离很小,需要能够提供更高精度的定位技术。
[0067] 位置信息计算单元4007可以采用各种方法来实现在建筑物内部的高精度定位。例如,定位方法的原理可以是三角测量法、单边测量法、或多边测量法。此外,根据是否有“锚点”,可以大致地把定位方法分为两类:无锚点算法和有锚点算法。无锚点算法中,无需预先设置的位置信息,仅根据局部距离值来定位。已公开的此类算法有例如AFL算法和ABC算法。有锚点算法依赖于某些已知座标位置的节点。这种定位算法需要预先定位多个锚点。
位置信息计算单元4007通过计算接收信号的强度、接收信号的到达时间差、或通过天线估计接收信号的到达角度等,来计算自身的位置信息。
[0068] 根据本发明的一个优选实施方式,在数据中心所在的建筑物内提供多个锚点(基准信号源),其位置固定并且座标已知。多个基准信号源能够覆盖整个建筑物内的传感器节点,从而每个传感器接收多个基准信号源的信号,并利用基准信号源的座标来计算自己的精确位置。在另一种替换实施方式中,基准信号源不必覆盖整个建筑物,从而降低对基准信号源的通信范围的要求。然后,计算基准信号源所覆盖部分的传感器的精确位置,再以此递推得到其它传感器的位置。
[0069] 基准信号源也可以由被固定位置且座标已知的传感器310来实现。
[0070] 应当指出,本发明并不局限于任何特定的方法来来定位传感器310的精确位置。例如,本发明可以采用无锚点的定位方法,即,不需要固定锚点。关于ad-hoc无线网络中的分布式定位方法的进一步信息可以参见Distributed localization in wireless sensor networks:a quantitativecomparison,Computer Networks 43(2003)499-518,Koen Langendoen,etc.
[0071] 尽管在图4所示的示例中,每个传感器310通过位置信息计算单元4007来计算自身位置信息的功能,即,传感器310的位置信息计算是分布式进行的,但是本发明不限于此,传感器310的位置信息可以在外部集中式进行计算,然后把计算结果发送给各个传感器310。
[0072] 在位置信息计算单元4007计算出传感器310的位置之后,位置信息计算单元4007把传感器310的位置信息保存在存储器4003中。存储器4003在位置信息存储单元4005中保存位置信息计算单元4007输入的位置信息。
[0073] 在服务器300频繁移动的情况下,位置信息计算单元4007可以周期性地计算位置信息,这样,即使传感器310随着服务器300移动,位置信息存储单元4005也能够保存传感器310和服务器300的更新位置信息。另一方面,如果服务器300不频繁移动,则位置信息计算单元可以仅在初始化时计算传感器310的位置信息,或者在接收到指令(例如Reset指令)时计算传感器310的位置信息。
[0074] 尽管在图4所示的示例中,位置信息存储单元4005和虚拟机信息列表4004分离地实现,在替换实施方式中,位置信息存储单元4005和虚拟机信息列表4004可以联合地实现,即把传感器310(即,服务器300)的位置信息与传感器存储的虚拟机信息记录在一起。例如,可以在图6所示的虚拟机信息列表4004中增加一列以保存位置信息计算单元4007计算的位置信息。
[0075] 参见图4,传感器310还包括电源4008。根据本发明的优选实施例,所述电源4008由电池实现,从而传感器310具有独立的电源,即使服务器300宕机,传感器也能正常工作。另一方面,传感器310也可以具有外接电源插口,以从外部获取电源。例如,某些安装服务器的机架上提供额外的电源接口,可以供传感器310使用。
[0076] 参见图4,传感器310还包括虚拟机信息搜索单元4002。虚拟机信息搜索单元4002与通信单元4001相连接,从通信单元4001接收对某个目标虚拟机(VMtarget)的查询。虚拟机信息搜索单元4002还与存储器4003相连接,并在虚拟机信息列表4004中搜索目标虚拟机VMtarget。如果在虚拟机信息列表4004中找到了目标虚拟机VMtarget,则把搜索命中的结果通知给通信单元4001。随后,通信单元4001通知发出搜索请求的传感器。
[0077] 图7示出根据本发明实施例的搜索虚拟机的方法的示例流程图700。
[0078] 如图1、图3、图5所示,虚拟机被部署在至少一个服务器上,每个服务器都附有一个传感器并与其通信,所述传感器相互通信以组成通信网络。图7所示的方法700包括如下步骤:
[0079] 步骤S705,传感器获取虚拟机信息。
[0080] 具体而言,每个传感器310获取并存储与该传感器连接的服务器300中的虚拟机的信息。参见图3-4可知,传感器310通过虚拟机信息获取单元4006与服务器300通信,以获取部署在服务器300上的虚拟机的相关信息。
[0081] 步骤S710,传感器获取位置信息。
[0082] 具体而言,每个传感器310计算并存储该传感器的位置信息。在图4的示例中,位置信息计算单元4007计算传感器310的位置信息,并存储在位置信息存储单元4005中。可替换地,位置信息不是在各个传感器310内计算,而是在外部集中地计算并发送到传感器310。
[0083] 根据本发明的一个实施例,物理服务器的位置不被移动,虚拟机不被动态创建、迁移等,则步骤S705、S710可以仅在初始化时执行。这种情况下,搜索方法从以下步骤S715开始。根据本发明的另一个实施例,物理服务器的位置被频繁移动,并且虚拟机被动态创建,则步骤S705和步骤S710周期地执行,以实时获取最新的信息。
[0084] 步骤S715,传感器接收搜索请求,其中搜索请求包含目标虚拟机的标识符(VMtarget)。
[0085] 根据本发明的优选实施例,提供了一种搜索装置(以下参见图8-9进一步描述)。搜索装置用于提供输入搜索请求的界面,所述搜索装置能够与至少一个传感器310通信,以把搜索请求发送给传感器310。所述搜索装置可以具有固定位置,也可以是便携式的。当搜索装置是便携式时,优选地,搜索装置能够计算并显示自己的当前位置。
[0086] 步骤S720,在所述多个传感器310组成的传感器网络500中传输所述搜索请求。
[0087] 可以采用多种方式来在传感器网络500中转发(或传播)搜索请求。例如,传感器网络500是ad-hoc无线网络时,每个传感器接收到搜索请求后,搜索自身的虚拟机列表信息,如果没有搜索到目标虚拟机的标识符,则以广播方式向相邻的传感器转发该搜索请求,从而保证搜索请求能够到达传感器网络中的每一个传感器。以广播方式转发消息(即搜索请求)比较简单,而且适应于传感器网络的拓扑结构频繁变化的情景,但是可能会导致网络流量过大而拥堵。可替换地,在传感器网络的拓扑结构比较稳定时,各个传感器可以维护通往相邻传感器的路由信息,根据路由表来向相邻传感器转发搜索请求。
[0088] 步骤S725,存储所述目标虚拟机的标识符的传感器返回自身的位置信息。
[0089] 具体而言,当传感器310接收到搜索请求后,在步骤S705得到的虚拟机信息中进行搜索,当搜索到目标虚拟机时,传感器310返回步骤S710计算得到的位置信息。
[0090] 所述位置信息可以返回给最先接收到搜索请求的传感器。所述位置信息还可以进一步返回到输入搜索请求的搜索装置。所述搜索装置具有显示器,用于显示所述位置信息。
[0091] 图8示出用于实现图7所示的方法流程的系统800。
[0092] 图8所示的系统800包括多个传感器801a、802a、803a、804a、805a、806a以及多个服务器801b、802b、803b、804b、805b、806b,每个服务器都有一个相应的传感器与其相连。图8的系统800还包括搜索装置810。
[0093] 图9显示根据本发明的优选实施例的搜索装置810的基本结构。
[0094] 搜索装置810包括:搜索请求输入装置9001、通信单元9002、位置信息计算单元9003、路径显示单元9004、地图存储单元9005。
[0095] 搜索请求输入装置9001用于接收用户(例如,管理员)的虚拟机位置搜索请求。所述虚拟机位置搜索请求包含目标虚拟机的标识符。
[0096] 通信单元9002用于与传感器通信。
[0097] 参见图7的步骤S715,搜索请求输入装置9001接收用户输入的虚拟机位置搜索请求后,通过通信单元9002转发给传感器。例如,参见图8,把虚拟机位置搜索请求传输给相邻的传感器804a。在图8所示的示例中,目标虚拟机例如为服务器806b上部署的虚拟机806c。
[0098] 参见图7的步骤S725,具有目标虚拟机的传感器806a的位置信息被返回到接收搜索请求的传感器804a,随后传感器804a把位置信息返回给搜索装置810的通信单元9002。
[0099] 所述搜索装置810的显示单元9004可以显示通信单元9002接收的位置信息。
[0100] 根据本发明的优选实施方式,所述搜索装置810还包括地图存储单元9005,用于存储整个数据中心的地图。这样,基于所述位置信息和地图信息,显示单元9004可以在整个数据中心的地图上显示目标虚拟机的位置。
[0101] 根据本发明的优选实施方式,所述搜索装置810还包括位置信息计算单元9004。当搜索装置810不具有固定位置,可以便携移动时,位置信息计算单元9004计算搜索装置
810的位置。基于搜索装置的位置信息、目标虚拟机的位置信息、地图存储单元9005存储的地图信息,显示单元9004计算并显示从当前位置到目标虚拟机的位置的路径。
[0102] 优选地,所述搜索装置810还包括提示单元(图9未示出),用于向返回所述目标虚拟机的位置信息的传感器806a发送消息,使得该传感器806a发出可听信号或可视信号。这是因为在高密度的数据中心,单个服务器机架上可以安装多达几百台服务器,即使获得了目标虚拟机的精确位置信息(即,服务器806b的位置信息),也难以从相邻放置的大量服务器中迅速找到哪个服务器是目标服务器。通过使所述传感器806a发出声音或其它可感知信号,便于管理人员迅速地找到该目标服务器806b。替换地,可以使目标服务器806b发出声音或其它可感知信号。
[0103] 根据本发明的替换实施例,所述搜索装置也可以由传感器310实现,即,在某个传感器310上增加输入装置以允许输入搜索请求、显示装置以显示位置信息。
[0104] 图10示出根据本发明实施例的管理数据计算系统中的虚拟机位置的方法的示例流程图1000,其中数据计算系统包括多个服务器,至少一个服务器上部署有虚拟机,以及每个服务器上安装有一个传感器,所述多个传感器组成传感器网络,所述方法包括:
[0105] 步骤S1005,传感器获取虚拟机信息。
[0106] 具体而言,每个传感器获取并存储与该传感器连接的服务器中的虚拟机的信息,例如,通过图4的虚拟机信息管理单元4006从服务器获取虚拟机信息。
[0107] 步骤S1010,传感器获取位置信息。
[0108] 具体而言,每个传感器计算并存储该传感器自己的位置信息。例如,通过图4的位置信息计算单元4007获取位置信息。
[0109] 步骤S1015,显示每个虚拟机的位置信息。
[0110] 具体而言,基于每个传感器的位置信息和每个传感器的虚拟机信息,显示每个虚拟机的位置信息。
[0111] 虚拟机的位置信息可以显示在图9所示的搜索装置810的显示单元9004上。当搜索装置810包括地图存储单元9005时,显示单元9004可以在整个数据中心的地图上显示所有虚拟机的位置。
[0112] 优选地,每个传感器存储的与该传感器连接的服务器中的虚拟机的信息还包括指示虚拟机的至少一个以下状态的信息:存活、终结、已迁移、不活跃等,如图6所示。这样,在搜索装置810上显示各个虚拟机的位置时,还可以显示各个虚拟机的各种状态信息。
[0113] 以上参照图1-10详细描述了在大规模计算中心中搜索以及显示虚拟机位置的方法、装置以及系统。
[0114] 应当指出,本发明的方法、装置及系统不仅限于搜索虚拟机位置,还可以用于搜索数据中心中的其它软件、硬件资源。例如,如果在服务器上部署了其它应用程序,可以利用传感器获取应用程序的相关信息,从而获取该应用程序的位置信息。因此,本发明说明书中的“虚拟机”应当被广义理解为物理服务器上部署的任何虚拟资源,例如在物理服务器上部署的web服务器、ftp服务器、email服务器、或其它提供服务或代理的应用程序。例如,传感器可以获取与之相连的物理服务器上部署的各种应用程序(例如web服务、ftp服务、email服务等)的标识符,其中数据中心的管理员为各个应用程序分配唯一的标识符。
[0115] 此外,本发明还可以用于搜索某个物理服务器的位置信息,或者用于搜索与某个服务器相连接的其它硬件设备(例如打印机)的位置信息。
[0116] 应当指出,可以许多方式来实现本发明的方法和系统及装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
[0117] 虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。