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

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

Info

Publication number
CN103580923B
CN103580923B CN201310556317.9A CN201310556317A CN103580923B CN 103580923 B CN103580923 B CN 103580923B CN 201310556317 A CN201310556317 A CN 201310556317A CN 103580923 B CN103580923 B CN 103580923B
Authority
CN
China
Prior art keywords
main frame
cloud computing
computing system
host complexes
host
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.)
Active
Application number
CN201310556317.9A
Other languages
English (en)
Other versions
CN103580923A (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

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。以此类推,每个主机都能知道自己与云计算***中的其他主机之间的通信路径的跳数。
每个主机向软件部署的装置发送每个主机与云计算***中的其他主机之间的通信路径的跳数,这样,软件部署的装置可以根据每个主机与云计算***中的其他主机之间的通信路径的跳数确定云计算***中的主机之间的通信路径的跳数。在本实施方式中,每个主机可以通过云计算***中现有的管理通道向软件部署的装置发送每个主机与云计算***中的其他主机之间的通信路径的跳数。
每个主机可以周期性的向云计算***的其他主机发送链路跟踪消息,以自动探测网络的变化,并将探测得到的结果通过管理通道发送到软件部署的装置,以使软件部署的装置刷新记录的结果。
在本发明实施例中,可选地,获取云计算***的通信拓扑信息,包括:
接收该云计算***中的每个主机或网络设备发送的相邻节点信息,其中,该每个主机或网络设备发送的相邻节点信息由该每个主机或网络设备通过链路层发现协议(LinkLayer 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:RandomAccess Memory),也可能还包括非不稳定的存储器(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-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (26)

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

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103580923B (zh) * 2013-11-08 2017-02-15 华为技术有限公司 软件部署的方法和装置
US9965261B2 (en) * 2015-08-18 2018-05-08 International Business Machines Corporation Dependency-based container deployment
WO2017071780A1 (en) * 2015-10-30 2017-05-04 Huawei Technologies Co., Ltd. Methods and systems of mapping virtual machine communication paths
CN108073426B (zh) * 2017-03-29 2021-07-06 北京青云科技股份有限公司 一种基于云计算的软件管理方法、装置及***
CN108900362B (zh) * 2018-08-13 2021-07-30 郑州云海信息技术有限公司 一种云网络接入层物理链路拓扑生成方法和装置
CN110597664A (zh) * 2019-09-17 2019-12-20 深信服科技股份有限公司 一种高可用集群资源部署方法、装置及相关组件

Citations (4)

* 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 惠普发展公司,有限责任合伙企业 用于多部件计算机环境的自动化部署的***和方法

Family Cites Families (5)

* 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
US9110728B2 (en) * 2012-01-31 2015-08-18 Vmware, Inc. Elastic allocation of computing resources to software applications
CN103580923B (zh) * 2013-11-08 2017-02-15 华为技术有限公司 软件部署的方法和装置

Patent Citations (4)

* 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 ***通信集团公司 一种虚拟机部署方法、装置及***
CN103176849A (zh) * 2013-03-12 2013-06-26 浙江大学 一种基于资源分类的虚拟机集群的部署方法

Also Published As

Publication number Publication date
WO2015067144A1 (zh) 2015-05-14
CN103580923A (zh) 2014-02-12

Similar Documents

Publication Publication Date Title
CN103580923B (zh) 软件部署的方法和装置
CN103414535B (zh) 数据发送方法和数据接收方法及相关装置
CN106656801A (zh) 业务流的转发路径的重定向方法、装置和业务流转发***
CN103812949B (zh) 一种面向实时云平台的任务调度与资源分配方法及***
CN113810205B (zh) 服务算力信息的上报、接收方法、服务器及数据中心网关
EP2975515A1 (en) System and method for managing excessive distribution of memory
CN104270416A (zh) 负载均衡控制方法及管理节点
CN103067277B (zh) 建立控制通道的方法、转发设备和控制设备
CN103560967A (zh) 一种业务需求感知的虚拟数据中心映射方法
CN104243196A (zh) 一种sdn架构下的虚拟网络映射保护方法及***
CN103414626A (zh) 基于网络虚拟化的报文处理方法及装置
CN104951357A (zh) 并行用户态协议栈的管理方法和协议栈***
CN108337179A (zh) 链路流量控制方法及装置
CN103856337A (zh) 资源占用率获取方法、提供方法、***及服务器
CN106020926A (zh) 一种用于虚拟交换机技术中数据传输的方法及装置
CN102769670A (zh) 虚拟机迁移方法、装置及***
CN107729514A (zh) 一种基于hadoop的副本放置节点确定方法及装置
CN107864094A (zh) 一种流量选路方法、装置和机器可读存储介质
CN108132827A (zh) 一种网络切片资源映射方法、相关设备及***
CN104850394A (zh) 分布式应用程序的管理方法和分布式***
CN106571945A (zh) 控制面、业务面分离的方法和***、服务器、云计算平台
CN106385330A (zh) 一种网络功能虚拟化编排器的实现方法及装置
CN108683528A (zh) 一种数据传输方法、中心服务器、服务器及数据传输***
Ma et al. Cost-aware multi-domain virtual data center embedding
CN107656847A (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

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.

TR01 Transfer of patent right