CN103580923A - 软件部署的方法和装置 - Google Patents

软件部署的方法和装置 Download PDF

Info

Publication number
CN103580923A
CN103580923A CN201310556317.9A CN201310556317A CN103580923A CN 103580923 A CN103580923 A CN 103580923A CN 201310556317 A CN201310556317 A CN 201310556317A CN 103580923 A CN103580923 A CN 103580923A
Authority
CN
China
Prior art keywords
main frame
cloud computing
computing system
frame set
hosts
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.)
Granted
Application number
CN201310556317.9A
Other languages
English (en)
Other versions
CN103580923B (zh
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.)
Sichuan Huakun Zhenyu Intelligent Technology Co ltd
Original Assignee
Huawei 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 Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310556317.9A priority Critical patent/CN103580923B/zh
Publication of CN103580923A publication Critical patent/CN103580923A/zh
Priority to PCT/CN2014/090021 priority patent/WO2015067144A1/zh
Application granted granted Critical
Publication of CN103580923B publication Critical patent/CN103580923B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/34Signalling channels for network management communication
    • H04L41/342Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/34Signalling channels for network management communication
    • H04L41/344Out-of-band transfers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种软件部署的方法和装置。该方法包括:获取云计算系统的通信拓扑信息;根据该通信拓扑信息,从第一主机集合中选择主机部署软件系统的虚拟机,其中,该第一主机集合为该云计算系统中待部署该软件系统的虚拟机的主机的集合。本发明实施例的软件部署的方法和装置,能够节约通信带宽,降低成本和功耗。

Description

软件部署的方法和装置
技术领域
本发明涉及信息技术领域,并且更具体地,涉及软件部署的方法和装置。
背景技术
在当前的云计算系统中,软件自动化部署是云计算的最大亮点之一。所谓软件自动化部署,就是指系统能够自动地选择硬件主机,并根据应用软件的需求,自动地在被选择的主机上配置和启动虚拟机,然后在虚拟机上自动地安装应用软件,整个过程无需人工干预。系统也能够在系统负荷升高后,自动地重复上述过程,使更多的虚拟机和应用软件处理业务;或者在系统负荷降低时,自动地进行上述过程的反过程,减少处理业务的虚拟机和应用软件数量,使部分物理主机能释放以进入节能状态,或者释放资源给其他的应用软件使用。
在云上运行的应用软件,一般是分布式的应用软件,即有多个软件模块同时提供服务,同一个应用软件的处理模块之间必然有通信流量。当前云计算管理系统在部署软件时,主要依靠配置足够的硬件,保证网络带宽。比如在主机1到主机10上部署应用软件A和应用软件B时,云管理系统只按照既定规则,比如所有主机负荷平均或者集成部署到少数主机的策略,把应用软件A和应用软件B的分布式处理模块部署在主机1到主机10上。
现有的软件部署方法可能会形成离散部署结果,导致同一个应用软件分布式模块间的大部分通信流量都经过多台以太网交换机转发,造成网络设备过度配置,不利于节约成本和降低能耗,也会带来更大的时延。当系统超过一定规模的时候,核心交换机的流量有可能超过现有技术能达到的最大传输带宽。
发明内容
本发明实施例提供了一种软件部署的方法和装置,能够节约通信带宽,降低功耗。
第一方面,提供了一种软件部署的方法,包括:获取云计算系统的通信拓扑信息;根据该通信拓扑信息,从第一主机集合中选择主机部署软件系统的虚拟机,其中,该第一主机集合为该云计算系统中待部署该软件系统的虚拟机的主机的集合。
在第一种可能的实现方式中,根据该通信拓扑信息,从第一主机集合中选择主机部署软件系统的虚拟机,包括:
在该云计算系统中有已部署该软件系统的虚拟机的主机时,根据该通信拓扑信息,确定该第一主机集合中的主机与第二主机集合中的所有主机的亲和性,其中,该第二主机集合为该云计算系统中已部署该软件系统的虚拟机的主机的集合;
从该第一主机集合中选择该亲和性高的主机部署该软件系统的虚拟机。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,该通信拓扑信息包括该云计算系统中的主机之间的通信路径的跳数;
根据该通信拓扑信息,确定该第一主机集合中的主机与第二主机集合中的所有主机的亲和性,包括:
根据该第一主机集合中的主机与该第二主机集合中的所有主机之间的通信路径的跳数,确定该亲和性。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,该亲和性的高低同该第一主机集合中的主机与该第二主机集合中的所有主机之间的通信路径的跳数的平均值或者总和的大小成反比。
结合第一方面的第二或三种可能的实现方式,在第四种可能的实现方式中,获取云计算系统的通信拓扑信息,包括:
接收该云计算系统中的每个主机发送的该每个主机与该云计算系统中的其他主机之间的通信路径的跳数,其中,该每个主机与该云计算系统中的其他主机之间的通信路径的跳数由该每个主机通过链路跟踪方式获得;
根据该每个主机与该云计算系统中的其他主机之间的通信路径的跳数确定该云计算系统中的主机之间的通信路径的跳数。
结合第一方面的第二或三种可能的实现方式,在第五种可能的实现方式中,获取云计算系统的通信拓扑信息,包括:
接收该云计算系统中的每个主机或网络设备发送的相邻节点信息,其中,该每个主机或网络设备发送的相邻节点信息由该每个主机或网络设备通过链路层发现协议LLDP或思科发现协议CDP方式获得;
根据该云计算系统中的所有主机和网络设备发送的相邻节点信息确定该云计算系统中的主机之间的通信路径的跳数。
结合第一方面的第一种可能的实现方式,在第六种可能的实现方式中,该通信拓扑信息包括该云计算系统中的主机之间的连接数量;
根据该通信拓扑信息,确定该第一主机集合中的主机与第二主机集合中的所有主机的亲和性,包括:
根据该第一主机集合中的主机与该第二主机集合中的所有主机之间的连接数量,确定该亲和性。
结合第一方面的第六种可能的实现方式,在第七种可能的实现方式中,该亲和性的高低同该第一主机集合中的主机与该第二主机集合中的所有主机之间的连接数量的平均值或者总和的大小成反比。
结合第一方面的第六或七种可能的实现方式,在第八种可能的实现方式中,获取云计算系统的通信拓扑信息,包括:
接收该云计算系统中的每个主机或网络设备发送的相邻节点信息,其中,该每个主机或网络设备发送的相邻节点信息由该每个主机或网络设备通过LLDP或CDP方式获得;
根据该云计算系统中的所有主机和网络设备发送的相邻节点信息确定该云计算系统中的主机之间的连接数量。
结合第一方面的第六或七种可能的实现方式,在第九种可能的实现方式中,获取云计算系统的通信拓扑信息,包括:
根据预配置的该云计算系统中的所有主机和网络设备的连接关系确定该云计算系统中的主机之间的连接数量。
结合第一方面的第一种可能的实现方式,在第十种可能的实现方式中,该通信拓扑信息包括该云计算系统中的主机的网络域信息;
根据该通信拓扑信息,确定该第一主机集合中的主机与第二主机集合中的所有主机的亲和性,包括:
根据该第一主机集合中的主机的网络域信息和该第二主机集合中的所有主机的网络域信息,确定该亲和性。
结合第一方面的第十种可能的实现方式,在第十一种可能的实现方式中,该亲和性的高低同该第一主机集合中的主机所处的网络域与该第二主机集合中的所有主机所处的网络域的差别的大小成反比。
结合第一方面的第十或十一种可能的实现方式,在第十二种可能的实现方式中,获取云计算系统的通信拓扑信息,包括:
获取预配置的该云计算系统中的主机的网络域信息。
结合第一方面或第一方面的第一至十二种可能的实现方式中的任一种可能的实现方式,在第十三种可能的实现方式中,根据该通信拓扑信息,从第一主机集合中选择主机部署软件系统的虚拟机,包括:
在该云计算系统中没有已部署该软件系统的虚拟机的主机时,根据该通信拓扑信息,确定该第一主机集合中的主机与第三主机集合中的所有主机的亲和性,其中,该第三主机集合为该云计算系统中已部署其他软件系统的虚拟机的主机的集合;
从该第一主机集合中选择与该第三主机集合中的所有主机的亲和性低的主机部署该软件系统的虚拟机。
第二方面,提供了一种软件部署的装置,包括:获取模块,用于获取云计算系统的通信拓扑信息;部署模块,用于根据该通信拓扑信息,从第一主机集合中选择主机部署软件系统的虚拟机,其中,该第一主机集合为该云计算系统中待部署该软件系统的虚拟机的主机的集合。
在第一种可能的实现方式中,该部署模块包括:
第一确定单元,用于在该云计算系统中有已部署该软件系统的虚拟机的主机时,根据该通信拓扑信息,确定该第一主机集合中的主机与第二主机集合中的所有主机的亲和性,其中,该第二主机集合为该云计算系统中已部署该软件系统的虚拟机的主机的集合;
第一部署单元,用于从该第一主机集合中选择该亲和性高的主机部署该软件系统的虚拟机。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,该通信拓扑信息包括该云计算系统中的主机之间的通信路径的跳数;
该第一确定单元具体用于根据该第一主机集合中的主机与该第二主机集合中的所有主机之间的通信路径的跳数,确定该亲和性。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,该亲和性的高低同该第一主机集合中的主机与该第二主机集合中的所有主机之间的通信路径的跳数的平均值或者总和的大小成反比。
结合第二方面的第二或三种可能的实现方式,在第四种可能的实现方式中,该获取模块具体用于,接收该云计算系统中的每个主机发送的该每个主机与该云计算系统中的其他主机之间的通信路径的跳数,其中,该每个主机与该云计算系统中的其他主机之间的通信路径的跳数由该每个主机通过链路跟踪方式获得,根据该每个主机与该云计算系统中的其他主机之间的通信路径的跳数确定该云计算系统中的主机之间的通信路径的跳数。
结合第二方面的第二或三种可能的实现方式,在第五种可能的实现方式中,该获取模块具体用于,接收该云计算系统中的每个主机或网络设备发送的相邻节点信息,其中,该每个主机或网络设备发送的相邻节点信息由该每个主机或网络设备通过链路层发现协议LLDP或思科发现协议CDP方式获得,根据该云计算系统中的所有主机和网络设备发送的相邻节点信息确定该云计算系统中的主机之间的通信路径的跳数。
结合第二方面的第一种可能的实现方式,在第六种可能的实现方式中,该通信拓扑信息包括该云计算系统中的主机之间的连接数量;
该第一确定单元具体用于根据该第一主机集合中的主机与该第二主机集合中的所有主机之间的连接数量,确定该亲和性。
结合第二方面的第六种可能的实现方式,在第七种可能的实现方式中,该亲和性的高低同该第一主机集合中的主机与该第二主机集合中的所有主机之间的连接数量的平均值或者总和的大小成反比。
结合第二方面的第六或七种可能的实现方式,在第八种可能的实现方式中,该获取模块具体用于,接收该云计算系统中的每个主机或网络设备发送的相邻节点信息,其中,该每个主机或网络设备发送的相邻节点信息由该每个主机或网络设备通过LLDP或CDP方式获得,根据该云计算系统中的所有主机和网络设备发送的相邻节点信息确定该云计算系统中的主机之间的连接数量。
结合第二方面的第六或七种可能的实现方式,在第九种可能的实现方式中,该获取模块具体用于,根据预配置的该云计算系统中的所有主机和网络设备的连接关系确定该云计算系统中的主机之间的连接数量。
结合第二方面的第一种可能的实现方式,在第十种可能的实现方式中,该通信拓扑信息包括该云计算系统中的主机的网络域信息;
该第一确定单元具体用于根据该第一主机集合中的主机的网络域信息和该第二主机集合中的所有主机的网络域信息,确定该亲和性。
结合第二方面的第十种可能的实现方式,在第十一种可能的实现方式中,该亲和性的高低同该第一主机集合中的主机所处的网络域与该第二主机集合中的所有主机所处的网络域的差别的大小成反比。
结合第二方面的第十或十一种可能的实现方式,在第十二种可能的实现方式中,该获取模块具体用于获取预配置的该云计算系统中的主机的网络域信息。
结合第二方面或第二方面的第一至十二种可能的实现方式中的任一种可能的实现方式,在第十三种可能的实现方式中,该部署模块包括:
第二确定单元,用于在该云计算系统中没有已部署该软件系统的虚拟机的主机时,根据该通信拓扑信息,确定该第一主机集合中的主机与第三主机集合中的所有主机的亲和性,其中,该第三主机集合为该云计算系统中已部署其他软件系统的虚拟机的主机的集合;
第二部署单元,用于从该第一主机集合中选择与该第三主机集合中的所有主机的亲和性低的主机部署该软件系统的虚拟机。
基于上述技术方案,本发明实施例的软件部署的方法和装置,通过根据云计算系统的通信拓扑信息选择主机部署软件系统的虚拟机,可以将同一软件系统的虚拟机集中部署,从而能够节约通信带宽,降低成本和功耗。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明一个实施例的软件部署的方法的示意性流程图。
图2是根据本发明另一实施例的软件部署的方法的示意性流程图。
图3是根据本发明一个实施例的云计算系统的示意图。
图4是根据本发明另一实施例的云计算系统的示意图。
图5是根据本发明又一实施例的云计算系统的示意图。
图6是根据本发明一个实施例的软件部署结果的示意图。
图7是根据本发明一个实施例的软件部署的装置的示意性框图。
图8是根据本发明一个实施例的部署模块的示意性框图。
图9是根据本发明另一实施例的部署模块的示意性框图。
图10是根据本发明另一实施例的软件部署的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
图1示出了根据本发明实施例的软件部署的方法100的示意性流程图。如图1所示,该方法100包括:
S110,获取云计算系统的通信拓扑信息;
S120,根据该通信拓扑信息,从第一主机集合中选择主机部署软件系统的虚拟机,其中,该第一主机集合为云计算系统中待部署该软件系统的虚拟机的主机的集合。
在本发明实施例中,方法100的执行主体为软件部署的装置。该装置可以为云计算管理系统中的装置,也可以为云计算管理系统本身,本发明实施例对此并不限定。
应理解,在本发明实施例中,软件系统也可以表述为软件。在云计算系统中部署软件系统时,需要在云计算系统中选择主机部署该软件系统的虚拟机,再在虚拟机上安装该软件系统。
在部署软件系统时,软件部署的装置首先获取云计算系统的通信拓扑信息,再根据该通信拓扑信息,从第一主机集合中选择主机部署该软件系统的虚拟机。在本发明实施例中,第一主机集合为云计算系统中待部署该软件系统的虚拟机的主机的集合。应理解,本发明实施例采用术语第一主机集合只是为了描述方便,不对本发明实施例作任何限定。在本发明实施例中,软件部署的装置根据云计算系统的通信拓扑信息选择主机部署软件系统的虚拟机,这样,部署的结果就会与云计算系统的通信拓扑相关,便于将同一软件系统的虚拟机集中部署。也就是说,同一软件系统的虚拟机可以部署在与同一个或较少交换机连接的主机上,因此同一软件系统的通信流量可以经过较少交换机转发,从而能够节约通信带宽,降低成本和功耗。
因此,本发明实施例的软件部署的方法,通过根据云计算系统的通信拓扑信息选择主机部署软件系统的虚拟机,可以将同一软件系统的虚拟机集中部署,从而能够节约通信带宽,降低成本和功耗。
在本发明实施例中,可选地,如图2所示,根据该通信拓扑信息,从第一主机集合中选择主机部署软件系统的虚拟机,包括:
S121,在该云计算系统中有已部署该软件系统的虚拟机的主机时,根据该通信拓扑信息,确定该第一主机集合中的主机与第二主机集合中的所有主机的亲和性,其中,该第二主机集合为该云计算系统中已部署该软件系统的虚拟机的主机的集合;
S122,从该第一主机集合中选择该亲和性高的主机部署该软件系统的虚拟机。
在本发明实施例中,第二主机集合为云计算系统中已部署该软件系统的虚拟机的主机的集合。应理解,本发明实施例采用术语第二主机集合也只是为了描述方便,不对本发明实施例作任何限定。
在根据通信拓扑信息部署软件系统的虚拟机时,若云计算系统中有已部署该软件系统的虚拟机的主机,即第二主机集合不为空,软件部署的装置先根据该通信拓扑信息,确定第一主机集合中的主机与第二主机集合中的所有主机的亲和性,再根据该亲和性,从该第一主机集合中选择主机部署该软件系统的虚拟机。具体地,软件部署的装置从第一主机集合中选择亲和性高的主机部署该软件系统的虚拟机。例如,从第一主机集合中选择亲和性最高的主机部署该软件系统的虚拟机,或者,在亲和性最高的主机不能部署该软件系统的虚拟机时,选择剩余主机中亲和性最高的主机部署该软件系统的虚拟机。
在本发明实施例中,亲和性表示一个主机与一个主机集合内的所有主机的远近关系。亲和性可以根据通信拓扑信息确定。对应不同的通信拓扑信息的内容,确定亲和性的方式也有多种,以下分别进行描述。
在本发明实施例中,可选地,该通信拓扑信息包括该云计算系统中的主机之间的通信路径的跳数。
在这种情况下,根据该通信拓扑信息,确定该第一主机集合中的主机与第二主机集合中的所有主机的亲和性,包括:
根据该第一主机集合中的主机与该第二主机集合中的所有主机之间的通信路径的跳数,确定该亲和性。
具体而言,在本实施例中,通信拓扑信息为云计算系统中的主机之间的通信路径的跳数。例如,在如图3所示的云计算系统中,主机1-1与主机1-2之间的通信路径的跳数为2;主机1-1与主机2-1之间的通信路径的跳数为4。在这种情况下,第一主机集合中的主机与第二主机集合中的所有主机的亲和性可以根据第一主机集合中的主机与第二主机集合中的所有主机之间的通信路径的跳数确定。
可选地,该亲和性的高低同该第一主机集合中的主机与该第二主机集合中的所有主机之间的通信路径的跳数的平均值或者总和的大小成反比。
以图3所示的云计算系统为例,假如第二主机集合包括主机1-1和主机1-2,第一主机集合包括主机1-3,主机2-1,主机2-2和主机2-3,即主机1-1和主机1-2已部署了软件系统的虚拟机,主机1-3,主机2-1,主机2-2和主机2-3待部署该软件系统的虚拟机,在从第一主机集合中选择主机部署该软件系统的虚拟机时,需要确定第一主机集合中的每个主机与第二主机集合中的所有主机之间的通信路径的跳数,进而确定第一主机集合中的每个主机与第二主机集合中的所有主机的亲和性。
主机1-3与主机1-1之间的通信路径的跳数为2,与主机1-2之间的通信路径的跳数为2,平均值为2,总和为4;
主机2-1与主机1-1之间的通信路径的跳数为4,与主机1-2之间的通信路径的跳数为4,平均值为4,总和为8;
主机2-2与主机1-1之间的通信路径的跳数为4,与主机1-2之间的通信路径的跳数为4,平均值为4,总和为8;
主机2-3与主机1-1之间的通信路径的跳数为4,与主机1-2之间的通信路径的跳数为4,平均值为4,总和为8。
亲和性的高低同第一主机集合中的主机与第二主机集合中的所有主机之间的通信路径的跳数的平均值或者总和的大小成反比。因此,第一主机集合中主机1-3的亲和性最高,主机1-3被选择出来部署该软件系统的虚拟机。这样,同一软件系统的虚拟机部署在主机1-1,主机1-2和主机1-3上,该软件系统内的流量只经过以太网交换机L2-1,因此能够节约通信带宽,降低网络设备的使用成本和功耗。
在通信拓扑信息为云计算系统中的主机之间的通信路径的跳数时,通信拓扑信息的获取方式也有多种。
在本发明实施例中,可选地,获取云计算系统的通信拓扑信息,包括:
接收该云计算系统中的每个主机发送的该每个主机与该云计算系统中的其他主机之间的通信路径的跳数,其中,该每个主机与该云计算系统中的其他主机之间的通信路径的跳数由该每个主机通过链路跟踪方式获得;
根据该每个主机与该云计算系统中的其他主机之间的通信路径的跳数确定该云计算系统中的主机之间的通信路径的跳数。
具体而言,每个主机通过链路跟踪方式获得每个主机与该云计算系统中的其他主机之间的通信路径的跳数。例如,在如图3所示的云计算系统中,主机1-1向所有其他的主机发送链路跟踪消息,其中给主机1-2的链路跟踪消息只经过以太网交换机L2-1,主机1-1在这条路径上会收到来自以太网交换机L2-1和主机1-2的2条链路跟踪响应消息,因此主机1-1能够获知其与主机1-2之间的通信路径的跳数为2;而给主机2-1的链路跟踪消息会经过以太网交换机L2-1、以太网交换机L1-1、以太网交换机L2-2,所以在这条路径上会收到来自以太网交换机L2-1、以太网交换机L1-1、以太网交换机L2-2和主机2-1的4条链路跟踪响应消息,因此主机1-1能够获知其与主机2-1之间的通信路径的跳数为4。以此类推,每个主机都能知道自己与云计算系统中的其他主机之间的通信路径的跳数。
每个主机向软件部署的装置发送每个主机与云计算系统中的其他主机之间的通信路径的跳数,这样,软件部署的装置可以根据每个主机与云计算系统中的其他主机之间的通信路径的跳数确定云计算系统中的主机之间的通信路径的跳数。在本实施方式中,每个主机可以通过云计算系统中现有的管理通道向软件部署的装置发送每个主机与云计算系统中的其他主机之间的通信路径的跳数。
每个主机可以周期性的向云计算系统的其他主机发送链路跟踪消息,以自动探测网络的变化,并将探测得到的结果通过管理通道发送到软件部署的装置,以使软件部署的装置刷新记录的结果。
在本发明实施例中,可选地,获取云计算系统的通信拓扑信息,包括:
接收该云计算系统中的每个主机或网络设备发送的相邻节点信息,其中,该每个主机或网络设备发送的相邻节点信息由该每个主机或网络设备通过链路层发现协议(Link Layer Discovery Protocol,LLDP)或思科发现协议(Cisco Discovery Protocol,CDP)方式获得;
根据该云计算系统中的所有主机和网络设备发送的相邻节点信息确定该云计算系统中的主机之间的通信路径的跳数。
具体而言,每个主机或网络设备通过LLDP或CDP方式获得相邻节点信息,并将相邻节点信息发送给软件部署的装置,软件部署的装置根据相邻节点信息确定云计算系统中的主机之间的通信路径的跳数。例如,在如图4所示的云计算系统中,每个主机上的虚拟交换机和以太网交换机通过LLDP或CDP方式获得相邻节点信息,然后,各主机以及以太网交换机通过管理通道将各自的相邻节点信息发送给软件部署的装置。在本实施方式中,软件部署的装置需要与以太网交换机建立管理通道,以太网交换机通过建立的管理通道向软件部署的装置发送相邻节点信息。
在本发明实施例中,可选地,该通信拓扑信息包括该云计算系统中的主机之间的连接数量。
在这种情况下,根据该通信拓扑信息,确定该第一主机集合中的主机与第二主机集合中的所有主机的亲和性,包括:
根据该第一主机集合中的主机与该第二主机集合中的所有主机之间的连接数量,确定该亲和性。
具体而言,在本实施例中,通信拓扑信息为云计算系统中的主机之间的连接数量。例如,在如图4所示的云计算系统中,主机1-1与主机1-2之间的连接数量为2;主机1-1与主机2-1之间的连接数量为4。在这种情况下,第一主机集合中的主机与第二主机集合中的所有主机的亲和性可以根据第一主机集合中的主机与第二主机集合中的所有主机之间的连接数量确定。
可选地,该亲和性的高低同该第一主机集合中的主机与该第二主机集合中的所有主机之间的连接数量的平均值或者总和的大小成反比。
以图4所示的云计算系统为例,假如第二主机集合包括主机1-1和主机1-2,第一主机集合包括主机1-3,主机2-1,主机2-2和主机2-3。
主机1-3与主机1-1之间的连接数量为2,与主机1-2之间的连接数量为2,平均值为2,总和为4;
主机2-1与主机1-1之间的连接数量为4,与主机1-2之间的连接数量为4,平均值为4,总和为8;
主机2-2与主机1-1之间的连接数量为4,与主机1-2之间的连接数量为4,平均值为4,总和为8;
主机2-3与主机1-1之间的连接数量为4,与主机1-2之间的连接数量为4,平均值为4,总和为8。
亲和性的高低同第一主机集合中的主机与第二主机集合中的所有主机之间的连接数量的平均值或者总和的大小成反比。因此,第一主机集合中主机1-3的亲和性最高,主机1-3被选择出来部署该软件系统的虚拟机。这样,同一软件系统的虚拟机部署在主机1-1,主机1-2和主机1-3上,该软件系统内的流量只经过以太网交换机L2-1,因此能够节约通信带宽,降低网络设备的使用成本和功耗。
在通信拓扑信息为云计算系统中的主机之间的连接数量时,通信拓扑信息的获取方式也有多种。
在本发明实施例中,可选地,获取云计算系统的通信拓扑信息,包括:
接收该云计算系统中的每个主机或网络设备发送的相邻节点信息,其中,该每个主机或网络设备发送的相邻节点信息由该每个主机或网络设备通过LLDP或CDP方式获得;
根据该云计算系统中的所有主机和网络设备发送的相邻节点信息确定该云计算系统中的主机之间的连接数量。
在本实施方式中,软件部署的装置根据相邻节点信息,确定主机之间的连接数量。
在本发明实施例中,可选地,获取云计算系统的通信拓扑信息,包括:
根据预配置的该云计算系统中的所有主机和网络设备的连接关系确定该云计算系统中的主机之间的连接数量。
在本实施方式中,预配置云计算系统中各个节点的连接关系。也就是说,将云计算系统中各个主机和网络设备的连接关系预先配置到软件部署的装置,这样,软件部署的装置可以根据预配置的连接关系得到主机之间的连接数量。
在本发明实施例中,可选地,通信拓扑信息包括该云计算系统中的主机的网络域信息。
在这种情况下,根据该通信拓扑信息,确定该第一主机集合中的主机与第二主机集合中的所有主机的亲和性,包括:
根据该第一主机集合中的主机的网络域信息和该第二主机集合中的所有主机的网络域信息,确定该亲和性。
具体而言,在本实施例中,通信拓扑信息为云计算系统中的主机的网络域信息。如图5所示,云计算系统被分为多个网络域。例如,网络域L2-1包含主机1-1、1-2、1-3,网络域L2-2包含主机2-1、2-2、2-3,网络域L2-3包含主机3-1、3-2、3-3,网络域L2-4包含主机4-1、4-2、4-3。网络域还可以递归嵌套,例如,网络域L1-1包含网络域L2-1、L2-2,网络域L1-2包含网络域L2-3、L2-4。根据主机的网络域信息,可以确定亲和性。若主机与第二集合中的主机处于同一网络域,则亲和性高;若处于不同的网络域,则亲和性低。
可选地,该亲和性的高低同该第一主机集合中的主机所处的网络域与该第二主机集合中的所有主机所处的网络域的差别的大小成反比。
例如,图5中,假如第二主机集合包括主机1-1和主机1-2,其他主机构成第一主机集合。在从其他主机中选择主机部署软件系统的虚拟机时,由于主机1-3与主机1-1和主机1-2处于同一网络域,网络域的差别最小,因此选择主机1-3部署该软件系统的虚拟机。这样,同一软件系统的虚拟机部署在主机1-1,主机1-2和主机1-3上,该软件系统内的流量只经过以太网交换机L2-1,因此能够节约通信带宽,降低网络设备的使用成本和功耗。
可选地,获取云计算系统的通信拓扑信息,包括:
获取预配置的该云计算系统中的主机的网络域信息。
也就是说,云计算系统中各主机的网络域信息可以预配置到软件部署的装置,这样,软件部署的装置可以得到预配置的网络域信息。
本发明实施例的软件部署的方法,通过根据亲和性选择主机部署软件系统的虚拟机,可以将同一软件系统的虚拟机集中部署,从而能够节约通信带宽,降低成本和功耗。
以上描述了在云计算系统中有已部署该软件系统的虚拟机的主机时,选择主机部署该软件系统的虚拟机的方法,下面描述在云计算系统中没有已部署该软件系统的虚拟机的主机时,选择主机部署该软件系统的虚拟机的方法。
在本发明实施例中,可选地,根据该通信拓扑信息,从第一主机集合中选择主机部署软件系统的虚拟机,包括:
在该云计算系统中没有已部署该软件系统的虚拟机的主机时,根据该通信拓扑信息,确定该第一主机集合中的主机与第三主机集合中的所有主机的亲和性,其中,该第三主机集合为该云计算系统中已部署其他软件系统的虚拟机的主机的集合;
从该第一主机集合中选择与该第三主机集合中的所有主机的亲和性低的主机部署该软件系统的虚拟机。
在本发明实施例中,第三主机集合为已部署其他软件系统的虚拟机的主机的集合,也就是说已部署了不同于待部署的软件系统的软件系统的虚拟机的主机的集合。应理解,本发明实施例采用术语第三主机集合也只是为了描述方便,不对本发明实施例作任何限定。
在云计算系统中没有已部署该软件系统的虚拟机的主机时,也就是说,第一次选择主机部署该软件系统的虚拟机的主机时,软件部署的装置根据第一主机集合中的主机与第三主机集合中的所有主机的亲和性,选择主机部署该软件系统的虚拟机。具体地,软件部署的装置从第一主机集合中选择与第三主机集合中的所有主机的亲和性低的主机部署该软件系统的虚拟机。
应理解,在本发明实施例中,第一主机集合中的主机与第三主机集合中的所有主机的亲和性的确定方式,与第一主机集合中的主机与第二主机集合中的所有主机的亲和性的确定方式类似,为了简洁,再次不再赘述。
采用本发明实施例的软件部署的方法,可以将同一软件系统的虚拟机集中部署。如图6所示,软件系统A的虚拟机部署在主机1~5,软件系统B的虚拟机部署在主机5~10。软件系统A内的流量主要在以太网交换机2和3内完成交换,少量流量经过以太网交换机1;软件系统B内的流量主要在以太网交换机3和4内完成交换,少量流量经过以太网交换机1。这样的部署结果既能够节省网络设备的使用成本和功耗,又能够规避网络瓶颈。如图6所示,由于减少了经过以太网交换机1的流量,因此能够避免以太网交换机1与其他以太网交换机间的传输路径带宽成为瓶颈。
应理解,在本发明实施例中,软件部署的装置也可以直接根据通信拓扑信息选择主机部署软件系统的虚拟机。例如,选择与第二主机集合中的所有主机之间的通信路径的跳数的平均值或者总和最小的主机,或者选择与第二主机集合中的所有主机之间的连接数量的平均值或者总和最小的主机,或者选择所处的网络域与第二主机集合中的所有主机所处的网络域的差别最小的主机部署该软件系统的虚拟机。这些实施方式也应落入本发明的保护范围之内。
本发明实施例的软件部署的方法,通过根据云计算系统的通信拓扑信息选择主机部署软件系统的虚拟机,可以将同一软件系统的虚拟机集中部署,从而能够节约通信带宽,降低成本和功耗。
应注意,本发明实施例中的例子只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
上文中结合图1至图6,详细描述了根据本发明实施例的软件部署的方法,下面将结合图7至图10,描述根据本发明实施例的软件部署的装置。
图7示出了根据本发明实施例的软件部署的装置700的示意性框图。如图7所示,该装置700包括:
获取模块710,用于获取云计算系统的通信拓扑信息;
部署模块720,用于根据该通信拓扑信息,从第一主机集合中选择主机部署软件系统的虚拟机,其中,该第一主机集合为该云计算系统中待部署该软件系统的虚拟机的主机的集合。
在本发明实施例中,软件部署的装置根据云计算系统的通信拓扑信息选择主机部署软件系统的虚拟机,这样,部署的结果就会与云计算系统的通信拓扑相关,便于将同一软件系统的虚拟机集中部署。也就是说,同一软件系统的虚拟机可以部署在与同一个或较少交换机连接的主机上,因此同一软件系统的通信流量可以经过较少交换机转发,从而能够节约通信带宽,降低成本和功耗。
因此,本发明实施例的软件部署的装置,通过根据云计算系统的通信拓扑信息选择主机部署软件系统的虚拟机,可以将同一软件系统的虚拟机集中部署,从而能够节约通信带宽,降低成本和功耗。
在本发明实施例中,可选地,如图8所示,该部署模块720包括:
第一确定单元721,用于在该云计算系统中有已部署该软件系统的虚拟机的主机时,根据该通信拓扑信息,确定该第一主机集合中的主机与第二主机集合中的所有主机的亲和性,其中,该第二主机集合为该云计算系统中已部署该软件系统的虚拟机的主机的集合;
第一部署单元722,用于从该第一主机集合中选择该亲和性高的主机部署该软件系统的虚拟机。
在本发明实施例中,可选地,该通信拓扑信息包括该云计算系统中的主机之间的通信路径的跳数。
该第一确定单元721具体用于根据该第一主机集合中的主机与该第二主机集合中的所有主机之间的通信路径的跳数,确定该亲和性。
在本发明实施例中,可选地,该亲和性的高低同该第一主机集合中的主机与该第二主机集合中的所有主机之间的通信路径的跳数的平均值或者总和的大小成反比。
在本发明实施例中,可选地,该获取模块710具体用于,接收该云计算系统中的每个主机发送的该每个主机与该云计算系统中的其他主机之间的通信路径的跳数,其中,该每个主机与该云计算系统中的其他主机之间的通信路径的跳数由该每个主机通过链路跟踪方式获得,根据该每个主机与该云计算系统中的其他主机之间的通信路径的跳数确定该云计算系统中的主机之间的通信路径的跳数。
在本发明实施例中,可选地,该获取模块710具体用于,接收该云计算系统中的每个主机或网络设备发送的相邻节点信息,其中,该每个主机或网络设备发送的相邻节点信息由该每个主机或网络设备通过链路层发现协议LLDP或思科发现协议CDP方式获得,根据该云计算系统中的所有主机和网络设备发送的相邻节点信息确定该云计算系统中的主机之间的通信路径的跳数。
在本发明实施例中,可选地,该通信拓扑信息包括该云计算系统中的主机之间的连接数量。
该第一确定单元721具体用于根据该第一主机集合中的主机与该第二主机集合中的所有主机之间的连接数量,确定该亲和性。
在本发明实施例中,可选地,该亲和性的高低同该第一主机集合中的主机与该第二主机集合中的所有主机之间的连接数量的平均值或者总和的大小成反比。
在本发明实施例中,可选地,该获取模块710具体用于,接收该云计算系统中的每个主机或网络设备发送的相邻节点信息,其中,该每个主机或网络设备发送的相邻节点信息由该每个主机或网络设备通过LLDP或CDP方式获得,根据该云计算系统中的所有主机和网络设备发送的相邻节点信息确定该云计算系统中的主机之间的连接数量。
在本发明实施例中,可选地,该获取模块710具体用于,根据预配置的该云计算系统中的所有主机和网络设备的连接关系确定该云计算系统中的主机之间的连接数量。
在本发明实施例中,可选地,该通信拓扑信息包括该云计算系统中的主机的网络域信息。
该第一确定单元721具体用于根据该第一主机集合中的主机的网络域信息和该第二主机集合中的所有主机的网络域信息,确定该亲和性。
在本发明实施例中,可选地,该亲和性的高低同该第一主机集合中的主机所处的网络域与该第二主机集合中的所有主机所处的网络域的差别的大小成反比。
在本发明实施例中,可选地,该获取模块710具体用于获取预配置的该云计算系统中的主机的网络域信息。
在本发明实施例中,如图9所示,可选地,该部署模块720包括:
第二确定单元723,用于在该云计算系统中没有已部署该软件系统的虚拟机的主机时,根据该通信拓扑信息,确定该第一主机集合中的主机与第三主机集合中的所有主机的亲和性,其中,该第三主机集合为该云计算系统中已部署其他软件系统的虚拟机的主机的集合;
第二部署单元724,用于从该第一主机集合中选择与该第三主机集合中的所有主机的亲和性低的主机部署该软件系统的虚拟机。
本发明实施例的软件部署的方法,通过根据亲和性选择主机部署软件系统的虚拟机,可以将同一软件系统的虚拟机集中部署,从而能够节约通信带宽,降低成本和功耗。
根据本发明实施例的软件部署的装置700可对应于根据本发明实施例的软件部署的方法中的执行主体,并且装置700中的各个模块的上述和其它操作和/或功能分别为了实现图1至图6中的各个方法的相应流程,为了简洁,在此不再赘述。
图10示出了本发明又一实施例提供的软件部署的装置的结构,包括至少一个处理器1002(例如CPU),至少一个网络接口1005或者其他通信接口,存储器1006,和至少一个通信总线1003,用于实现这些器件之间的连接通信。处理器1002用于执行存储器1006中存储的可执行模块,例如计算机程序。存储器1006可能包含高速随机存取存储器(RAM:Random AccessMemory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口1005(可以是有线或者无线)实现与至少一个其他网元之间的通信连接。
在一些实施方式中,存储器1006存储了程序10061,处理器1002执行程序10061,用于执行以下操作:
获取云计算系统的通信拓扑信息;
根据该通信拓扑信息,从第一主机集合中选择主机部署软件系统的虚拟机,其中,该第一主机集合为该云计算系统中待部署该软件系统的虚拟机的主机的集合。
可选地,处理器1002具体用于,在该云计算系统中有已部署该软件系统的虚拟机的主机时,根据该通信拓扑信息,确定该第一主机集合中的主机与第二主机集合中的所有主机的亲和性,其中,该第二主机集合为该云计算系统中已部署该软件系统的虚拟机的主机的集合;从该第一主机集合中选择该亲和性高的主机部署该软件系统的虚拟机。
可选地,该通信拓扑信息包括该云计算系统中的主机之间的通信路径的跳数;处理器1002具体用于根据该第一主机集合中的主机与该第二主机集合中的所有主机之间的通信路径的跳数,确定该亲和性。
可选地,该亲和性的高低同该第一主机集合中的主机与该第二主机集合中的所有主机之间的通信路径的跳数的平均值或者总和的大小成反比。
可选地,处理器1002具体用于通过网络接口1005接收该云计算系统中的每个主机发送的该每个主机与该云计算系统中的其他主机之间的通信路径的跳数,其中,该每个主机与该云计算系统中的其他主机之间的通信路径的跳数由该每个主机通过链路跟踪方式获得;根据该每个主机与该云计算系统中的其他主机之间的通信路径的跳数确定该云计算系统中的主机之间的通信路径的跳数。
可选地,处理器1002具体用于通过网络接口1005接收该云计算系统中的每个主机或网络设备发送的相邻节点信息,其中,该每个主机或网络设备发送的相邻节点信息由该每个主机或网络设备通过链路层发现协议LLDP或思科发现协议CDP方式获得;根据该云计算系统中的所有主机和网络设备发送的相邻节点信息确定该云计算系统中的主机之间的通信路径的跳数。
可选地,该通信拓扑信息包括该云计算系统中的主机之间的连接数量;处理器1002具体用于根据该第一主机集合中的主机与该第二主机集合中的所有主机之间的连接数量,确定该亲和性。
可选地,该亲和性的高低同该第一主机集合中的主机与该第二主机集合中的所有主机之间的连接数量的平均值或者总和的大小成反比。
可选地,处理器1002具体用于通过网络接口1005接收该云计算系统中的每个主机或网络设备发送的相邻节点信息,其中,该每个主机或网络设备发送的相邻节点信息由该每个主机或网络设备通过LLDP或CDP方式获得;根据该云计算系统中的所有主机和网络设备发送的相邻节点信息确定该云计算系统中的主机之间的连接数量。
可选地,处理器1002具体用于根据预配置的该云计算系统中的所有主机和网络设备的连接关系确定该云计算系统中的主机之间的连接数量。
可选地,该通信拓扑信息包括该云计算系统中的主机的网络域信息;处理器1002具体用于根据该第一主机集合中的主机的网络域信息和该第二主机集合中的所有主机的网络域信息,确定该亲和性。
可选地,该亲和性的高低同该第一主机集合中的主机所处的网络域与该第二主机集合中的所有主机所处的网络域的差别的大小成反比。
可选地,处理器1002具体用于获取预配置的该云计算系统中的主机的网络域信息。
可选地,处理器1002具体用于在该云计算系统中没有已部署该软件系统的虚拟机的主机时,根据该通信拓扑信息,确定该第一主机集合中的主机与第三主机集合中的所有主机的亲和性,其中,该第三主机集合为该云计算系统中已部署其他软件系统的虚拟机的主机的集合;从该第一主机集合中选择与该第三主机集合中的所有主机的亲和性低的主机部署该软件系统的虚拟机。
从本发明实施例提供的以上技术方案可以看出,本发明实施例通过根据云计算系统的通信拓扑信息选择主机部署软件系统的虚拟机,可以将同一软件系统的虚拟机集中部署,从而能够节约通信带宽,降低成本和功耗。
应理解,在本发明实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (28)

1.一种软件部署的方法,其特征在于,包括:
获取云计算系统的通信拓扑信息;
根据所述通信拓扑信息,从第一主机集合中选择主机部署软件系统的虚拟机,其中,所述第一主机集合为所述云计算系统中待部署所述软件系统的虚拟机的主机的集合。
2.根据权利要求1所述的方法,其特征在于,所述根据所述通信拓扑信息,从第一主机集合中选择主机部署软件系统的虚拟机,包括:
在所述云计算系统中有已部署所述软件系统的虚拟机的主机时,根据所述通信拓扑信息,确定所述第一主机集合中的主机与第二主机集合中的所有主机的亲和性,其中,所述第二主机集合为所述云计算系统中已部署所述软件系统的虚拟机的主机的集合;
从所述第一主机集合中选择所述亲和性高的主机部署所述软件系统的虚拟机。
3.根据权利要求2所述的方法,其特征在于,所述通信拓扑信息包括所述云计算系统中的主机之间的通信路径的跳数;
所述根据所述通信拓扑信息,确定所述第一主机集合中的主机与第二主机集合中的所有主机的亲和性,包括:
根据所述第一主机集合中的主机与所述第二主机集合中的所有主机之间的通信路径的跳数,确定所述亲和性。
4.根据权利要求3所述的方法,其特征在于,所述亲和性的高低同所述第一主机集合中的主机与所述第二主机集合中的所有主机之间的通信路径的跳数的平均值或者总和的大小成反比。
5.根据权利要求3或4所述的方法,其特征在于,所述获取云计算系统的通信拓扑信息,包括:
接收所述云计算系统中的每个主机发送的所述每个主机与所述云计算系统中的其他主机之间的通信路径的跳数,其中,所述每个主机与所述云计算系统中的其他主机之间的通信路径的跳数由所述每个主机通过链路跟踪方式获得;
根据所述每个主机与所述云计算系统中的其他主机之间的通信路径的跳数确定所述云计算系统中的主机之间的通信路径的跳数。
6.根据权利要求3或4所述的方法,其特征在于,所述获取云计算系统的通信拓扑信息,包括:
接收所述云计算系统中的每个主机或网络设备发送的相邻节点信息,其中,所述每个主机或网络设备发送的相邻节点信息由所述每个主机或网络设备通过链路层发现协议LLDP或思科发现协议CDP方式获得;
根据所述云计算系统中的所有主机和网络设备发送的相邻节点信息确定所述云计算系统中的主机之间的通信路径的跳数。
7.根据权利要求2所述的方法,其特征在于,所述通信拓扑信息包括所述云计算系统中的主机之间的连接数量;
所述根据所述通信拓扑信息,确定所述第一主机集合中的主机与第二主机集合中的所有主机的亲和性,包括:
根据所述第一主机集合中的主机与所述第二主机集合中的所有主机之间的连接数量,确定所述亲和性。
8.根据权利要求7所述的方法,其特征在于,所述亲和性的高低同所述第一主机集合中的主机与所述第二主机集合中的所有主机之间的连接数量的平均值或者总和的大小成反比。
9.根据权利要求7或8所述的方法,其特征在于,所述获取云计算系统的通信拓扑信息,包括:
接收所述云计算系统中的每个主机或网络设备发送的相邻节点信息,其中,所述每个主机或网络设备发送的相邻节点信息由所述每个主机或网络设备通过LLDP或CDP方式获得;
根据所述云计算系统中的所有主机和网络设备发送的相邻节点信息确定所述云计算系统中的主机之间的连接数量。
10.根据权利要求7或8所述的方法,其特征在于,所述获取云计算系统的通信拓扑信息,包括:
根据预配置的所述云计算系统中的所有主机和网络设备的连接关系确定所述云计算系统中的主机之间的连接数量。
11.根据权利要求2所述的方法,其特征在于,所述通信拓扑信息包括所述云计算系统中的主机的网络域信息;
所述根据所述通信拓扑信息,确定所述第一主机集合中的主机与第二主机集合中的所有主机的亲和性,包括:
根据所述第一主机集合中的主机的网络域信息和所述第二主机集合中的所有主机的网络域信息,确定所述亲和性。
12.根据权利要求11所述的方法,其特征在于,所述亲和性的高低同所述第一主机集合中的主机所处的网络域与所述第二主机集合中的所有主机所处的网络域的差别的大小成反比。
13.根据权利要求11或12所述的方法,其特征在于,所述获取云计算系统的通信拓扑信息,包括:
获取预配置的所述云计算系统中的主机的网络域信息。
14.根据权利要求1至13中任一项所述的方法,其特征在于,所述根据所述通信拓扑信息,从第一主机集合中选择主机部署软件系统的虚拟机,包括:
在所述云计算系统中没有已部署所述软件系统的虚拟机的主机时,根据所述通信拓扑信息,确定所述第一主机集合中的主机与第三主机集合中的所有主机的亲和性,其中,所述第三主机集合为所述云计算系统中已部署其他软件系统的虚拟机的主机的集合;
从所述第一主机集合中选择与所述第三主机集合中的所有主机的亲和性低的主机部署所述软件系统的虚拟机。
15.一种软件部署的装置,其特征在于,包括:
获取模块,用于获取云计算系统的通信拓扑信息;
部署模块,用于根据所述通信拓扑信息,从第一主机集合中选择主机部署软件系统的虚拟机,其中,所述第一主机集合为所述云计算系统中待部署所述软件系统的虚拟机的主机的集合。
16.根据权利要求15所述的装置,其特征在于,所述部署模块包括:
第一确定单元,用于在所述云计算系统中有已部署所述软件系统的虚拟机的主机时,根据所述通信拓扑信息,确定所述第一主机集合中的主机与第二主机集合中的所有主机的亲和性,其中,所述第二主机集合为所述云计算系统中已部署所述软件系统的虚拟机的主机的集合;
第一部署单元,用于从所述第一主机集合中选择所述亲和性高的主机部署所述软件系统的虚拟机。
17.根据权利要求16所述的装置,其特征在于,所述通信拓扑信息包括所述云计算系统中的主机之间的通信路径的跳数;
所述第一确定单元具体用于根据所述第一主机集合中的主机与所述第二主机集合中的所有主机之间的通信路径的跳数,确定所述亲和性。
18.根据权利要求17所述的装置,其特征在于,所述亲和性的高低同所述第一主机集合中的主机与所述第二主机集合中的所有主机之间的通信路径的跳数的平均值或者总和的大小成反比。
19.根据权利要求17或18所述的装置,其特征在于,所述获取模块具体用于,接收所述云计算系统中的每个主机发送的所述每个主机与所述云计算系统中的其他主机之间的通信路径的跳数,其中,所述每个主机与所述云计算系统中的其他主机之间的通信路径的跳数由所述每个主机通过链路跟踪方式获得,根据所述每个主机与所述云计算系统中的其他主机之间的通信路径的跳数确定所述云计算系统中的主机之间的通信路径的跳数。
20.根据权利要求17或18所述的装置,其特征在于,所述获取模块具体用于,接收所述云计算系统中的每个主机或网络设备发送的相邻节点信息,其中,所述每个主机或网络设备发送的相邻节点信息由所述每个主机或网络设备通过链路层发现协议LLDP或思科发现协议CDP方式获得,根据所述云计算系统中的所有主机和网络设备发送的相邻节点信息确定所述云计算系统中的主机之间的通信路径的跳数。
21.根据权利要求16所述的装置,其特征在于,所述通信拓扑信息包括所述云计算系统中的主机之间的连接数量;
所述第一确定单元具体用于根据所述第一主机集合中的主机与所述第二主机集合中的所有主机之间的连接数量,确定所述亲和性。
22.根据权利要求21所述的装置,其特征在于,所述亲和性的高低同所述第一主机集合中的主机与所述第二主机集合中的所有主机之间的连接数量的平均值或者总和的大小成反比。
23.根据权利要求21或22所述的装置,其特征在于,所述获取模块具体用于,接收所述云计算系统中的每个主机或网络设备发送的相邻节点信息,其中,所述每个主机或网络设备发送的相邻节点信息由所述每个主机或网络设备通过LLDP或CDP方式获得,根据所述云计算系统中的所有主机和网络设备发送的相邻节点信息确定所述云计算系统中的主机之间的连接数量。
24.根据权利要求21或22所述的装置,其特征在于,所述获取模块具体用于,根据预配置的所述云计算系统中的所有主机和网络设备的连接关系确定所述云计算系统中的主机之间的连接数量。
25.根据权利要求16所述的装置,其特征在于,所述通信拓扑信息包括所述云计算系统中的主机的网络域信息;
所述第一确定单元具体用于根据所述第一主机集合中的主机的网络域信息和所述第二主机集合中的所有主机的网络域信息,确定所述亲和性。
26.根据权利要求25所述的装置,其特征在于,所述亲和性的高低同所述第一主机集合中的主机所处的网络域与所述第二主机集合中的所有主机所处的网络域的差别的大小成反比。
27.根据权利要求25或26所述的装置,其特征在于,所述获取模块具体用于获取预配置的所述云计算系统中的主机的网络域信息。
28.根据权利要求15至27中任一项所述的装置,其特征在于,所述部署模块包括:
第二确定单元,用于在所述云计算系统中没有已部署所述软件系统的虚拟机的主机时,根据所述通信拓扑信息,确定所述第一主机集合中的主机与第三主机集合中的所有主机的亲和性,其中,所述第三主机集合为所述云计算系统中已部署其他软件系统的虚拟机的主机的集合;
第二部署单元,用于从所述第一主机集合中选择与所述第三主机集合中的所有主机的亲和性低的主机部署所述软件系统的虚拟机。
CN201310556317.9A 2013-11-08 2013-11-08 软件部署的方法和装置 Active CN103580923B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310556317.9A CN103580923B (zh) 2013-11-08 2013-11-08 软件部署的方法和装置
PCT/CN2014/090021 WO2015067144A1 (zh) 2013-11-08 2014-10-31 软件部署的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310556317.9A CN103580923B (zh) 2013-11-08 2013-11-08 软件部署的方法和装置

Publications (2)

Publication Number Publication Date
CN103580923A true CN103580923A (zh) 2014-02-12
CN103580923B CN103580923B (zh) 2017-02-15

Family

ID=50051904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310556317.9A Active CN103580923B (zh) 2013-11-08 2013-11-08 软件部署的方法和装置

Country Status (2)

Country Link
CN (1) CN103580923B (zh)
WO (1) WO2015067144A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015067144A1 (zh) * 2013-11-08 2015-05-14 华为技术有限公司 软件部署的方法和装置
CN107924323A (zh) * 2015-08-18 2018-04-17 国际商业机器公司 基于依赖的容器部署
CN108073426A (zh) * 2017-03-29 2018-05-25 上海云首信息科技有限公司 一种基于云计算的软件管理方法、装置及系统
CN108351795A (zh) * 2015-10-30 2018-07-31 华为技术有限公司 用于映射虚拟机通信路径的方法和系统
CN108900362A (zh) * 2018-08-13 2018-11-27 郑州云海信息技术有限公司 一种云网络接入层物理链路拓扑生成方法和装置
CN110597664A (zh) * 2019-09-17 2019-12-20 深信服科技股份有限公司 一种高可用集群资源部署方法、装置及相关组件

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102426543A (zh) * 2010-10-20 2012-04-25 微软公司 使用硬和软限制将对象放置在主机上
CN102646052A (zh) * 2011-02-16 2012-08-22 中国移动通信集团公司 一种虚拟机部署方法、装置及系统
CN103176849A (zh) * 2013-03-12 2013-06-26 浙江大学 一种基于资源分类的虚拟机集群的部署方法
CN103189839A (zh) * 2010-09-07 2013-07-03 惠普发展公司,有限责任合伙企业 用于多部件计算机环境的自动化部署的系统和方法
US20130198319A1 (en) * 2012-01-31 2013-08-01 Vmware, Inc. Elastic allocation of computing resources to software applications

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8250213B2 (en) * 2009-11-16 2012-08-21 At&T Intellectual Property I, L.P. Methods and apparatus to allocate resources associated with a distributive computing network
US9298713B2 (en) * 2011-09-30 2016-03-29 Oracle International Corporation Executor for software configuration automation
US9038065B2 (en) * 2012-01-30 2015-05-19 International Business Machines Corporation Integrated virtual infrastructure system
CN103580923B (zh) * 2013-11-08 2017-02-15 华为技术有限公司 软件部署的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103189839A (zh) * 2010-09-07 2013-07-03 惠普发展公司,有限责任合伙企业 用于多部件计算机环境的自动化部署的系统和方法
CN102426543A (zh) * 2010-10-20 2012-04-25 微软公司 使用硬和软限制将对象放置在主机上
CN102646052A (zh) * 2011-02-16 2012-08-22 中国移动通信集团公司 一种虚拟机部署方法、装置及系统
US20130198319A1 (en) * 2012-01-31 2013-08-01 Vmware, Inc. Elastic allocation of computing resources to software applications
CN103176849A (zh) * 2013-03-12 2013-06-26 浙江大学 一种基于资源分类的虚拟机集群的部署方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015067144A1 (zh) * 2013-11-08 2015-05-14 华为技术有限公司 软件部署的方法和装置
CN107924323A (zh) * 2015-08-18 2018-04-17 国际商业机器公司 基于依赖的容器部署
CN107924323B (zh) * 2015-08-18 2022-03-01 国际商业机器公司 基于依赖的容器部署
CN108351795A (zh) * 2015-10-30 2018-07-31 华为技术有限公司 用于映射虚拟机通信路径的方法和系统
CN108073426A (zh) * 2017-03-29 2018-05-25 上海云首信息科技有限公司 一种基于云计算的软件管理方法、装置及系统
CN108073426B (zh) * 2017-03-29 2021-07-06 北京青云科技股份有限公司 一种基于云计算的软件管理方法、装置及系统
CN108900362A (zh) * 2018-08-13 2018-11-27 郑州云海信息技术有限公司 一种云网络接入层物理链路拓扑生成方法和装置
CN108900362B (zh) * 2018-08-13 2021-07-30 郑州云海信息技术有限公司 一种云网络接入层物理链路拓扑生成方法和装置
CN110597664A (zh) * 2019-09-17 2019-12-20 深信服科技股份有限公司 一种高可用集群资源部署方法、装置及相关组件

Also Published As

Publication number Publication date
CN103580923B (zh) 2017-02-15
WO2015067144A1 (zh) 2015-05-14

Similar Documents

Publication Publication Date Title
CN103580923A (zh) 软件部署的方法和装置
CN103210379B (zh) 服务器系统、管理方法及设备
CN103109271B (zh) 一种平台间迁移应用的实现方法及系统
CN104038540A (zh) 一种应用代理服务器自动选择方法及系统
US8966038B2 (en) Virtual server system and physical server selection method
CN102681895B (zh) 一种动态自迁移云服务方法
CN104170323A (zh) 基于网络功能虚拟化的故障处理方法及装置、系统
CN102739798A (zh) 具有网络感知功能的云平台资源调度方法
CN103856512A (zh) 云计算的管理服务器、工作和闲置主机以及资源调度方法
CN105528330A (zh) 负载均衡的方法、装置、丛集和众核处理器
CN102111337A (zh) 任务调度方法和系统
CN105653630A (zh) 分布式数据库的数据迁移方法与装置
CN102426544A (zh) 任务分配方法和系统
CN103399781A (zh) 云服务器及其虚拟机管理方法
CN103414626A (zh) 基于网络虚拟化的报文处理方法及装置
CN103841564A (zh) 一种频谱共享方法和网络中心控制实体
CN103067277A (zh) 建立控制通道的方法、转发设备和控制设备
CN105516347A (zh) 一种流媒体服务器的负载均衡调配的方法及装置
CN104539708A (zh) 一种云平台资源的缩容方法、装置与系统
CN103746934A (zh) 一种cdn带宽平衡的方法、cdn控制中心及系统
CN106657191A (zh) 一种负载均衡方法及相关装置、系统
CN103856337A (zh) 资源占用率获取方法、提供方法、系统及服务器
CN103218416A (zh) 一种数据库加载方法、装置及系统
AU2018303662B2 (en) Scalable statistics and analytics mechanisms in cloud networking
CN104333879A (zh) 一种负荷分担方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231122

Address after: Room 1-9, 24th Floor, Unit 2, Building 1, No. 28, North Section of Tianfu Avenue, High tech Zone, Chengdu City, Sichuan Province, 610095

Patentee after: Sichuan Huakun Zhenyu Intelligent Technology Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.