键虚拟机104的可用性。在一个实施例中,优化模块208使用虚拟 机模块302以执行优化动作,即,预测虚拟机的最佳放置。
[0072] 在具体实施例中,虚拟机模块302根据联网计算环境的多个设备的实时交互试探 (heuristic),确定虚拟机104的最佳放置。在具体实施例中,虚拟机模块302基于映射模 块202所生成的设备的实时映射,确定虚拟机104的最佳放置,以最大化联网计算环境的可 用性。例如,虚拟机模块302可以基于在给定时间在多个设备之间的工作负荷分布来确定 虚拟机104的最佳放置,以最大化联网计算环境的可用性和效率。此外,虚拟机模块302可 考虑一个或多个要执行的潜在活动的所计算的影响,以便确定在特定时间虚拟机104的最 佳放置。
[0073] 在另一实施例中,网络规划装置110包括工作负荷模块304,被配置为根据潜在动 作的所计算的影响,优化与多个设备中的一个或多个设备相关联的工作负荷调度。如这里 所使用的,工作负荷指设备在给定时间段内进行和处理工作的能力。因此,工作负荷模块 304可以基于潜在动作的所计算的影响,规划和分布与多个设备相关联的计算工作负荷,以 便维持高可用性的联网计算环境。例如,如果规划服务器102在特定时间关闭,则工作负荷 模块304可以基于关闭服务器102的影响,规划在其他设备之间如何分布工作负荷。在一 个实施例中,优化模块208使用工作负荷模块304来执行优化动作,即,优化多个设备之间 的工作负荷的调度。
[0074] 在具体实施例中,工作负荷模块304根据联网计算环境的多个设备的实时交互试 探,确定最佳工作负荷调度。例如,工作负荷模块304可以基于设备之间的实时交互,规划 如何在给定时间在多个设备之间划分工作负荷。因此,如果预期服务器102在与调度式关 闭同时处理高工作负荷,则工作负荷模块304可以在与服务器102具有实时交互的设备之 间分布服务器102的工作负荷,这可以基于映射模块202所创建的实时映射。
[0075] 在一个实施例中,网络规划装置110包括可用性模块306,被配置为根据潜在动作 的所计算的影响,预测多个设备中的设备的可用性。在另一实施例中,可用性模块306基于 映射模块202所创建的映射,预测作为对主设备执行动作的结果,哪个设备(如果有的话) 可能变得不可用。例如,响应于在虚拟机104上更新软件应用,可用性模块306可预测虚拟 机104 (具体地,在虚拟机104上运行的软件应用)、和/或可连接到虚拟机104的其他设备 的可用性。在类似示例中,可用性模块306可基于关闭网络106内的交换机,预测一个或多 个服务器102和虚拟机104的可用性。
[0076] 在一个实施例中,可用性模块306生成与可能对联网计算环境中的特定设备的可 用性有影响的潜在动作相关联的动作计划。在具体实施例中,可以基于虚拟机模块302所 确定的虚拟机的最佳布置,实例化一个或多个虚拟机104以补偿一个或多个设备的不可用 性。在一个实施例中,优化模块208使用可用性模块306来执行优化动作,即,预测设备的 可用性。
[0077] 在另一实施例中,网络规划装置110包括成本模块308,被配置为确定潜在动作的 所计算的影响的货币成本。货币成本可定义由设备关闭、设备升级、软件升级、固件升级等 所导致的宕机时间(downtime)的成本。在具体实施例中,响应于所计算的影响具有预定阈 值以下的货币成本,执行潜在动作。在一个实施例中,成本模块308确定最佳成本阈值,从 而仅当动作的成本最小时才执行动作。例如,成本模块308可以确定可导致服务器102关闭 的动作在常规营业时间期间比在午夜具有更高成本。在具体实施例中,成本模块308基于 动作的最小成本,创建执行动作的最佳时间的推荐和预测。可以由网络管理员定制如成本 模块308所定义的最佳成本阈值,从而网络管理员可以指定执行动作所需要的成本阈值。 在一个实施例中,优化模块208使用成本模块308来执行优化动作,即,确定潜在动作的货 币成本。
[0078] 在另一实施例中,网络规划装置110包括动作调度模块310,被配置为根据潜在动 作的所计算的影响,确定执行潜在动作的最佳时间,从而潜在动作对多个设备的影响最小。 例如,动作调度模块310可确定调度对服务器102的关闭动作的最佳时间是午夜的某个时 间,而不是在常规营业时间期间,这是因为关闭服务器102可能导致一个或多个设备(例 如,虚拟机104)不可用。网络管理员可以使用此信息来调度在最佳时间执行动作,从而动 作对多个设备的可用性的影响最小。
[0079] 在一些实施例中,动作调度模块310基于动作对实时交互的影响,使用映射模块 202所创建的实时交互的映射来确定执行动作的最佳时间。因此,在一些实施例中,如果动 作调度模块310确定在常规营业时间期间的动作的影响对多个设备之间的交互有最小的 影响,则在此时间执行动作可能是执行动作的最佳时间。在一个实施例中,优化模块208使 用动作调度模块310来执行优化动作,即,确定执行潜在动作的最佳时间。
[0080] 在具体实施例中,网络规划装置110包括关键设备模块312,被配置为维持关键设 备的可用性。在具体实施例中,关键设备模块312通过计算与设备相关联的关键因子确定 关键设备,所述关键因子定义设备对于联网计算环境的操作的重要性。在一些实施例中,关 键设备模块312将具有预定阈值以上的关键因子的设备标记为关键设备。因此,例如,基于 服务器102对于联网计算环境的重要性,运行多个虚拟机104、数据库和网络服务器的主服 务器102可被关键设备模块312标记为关键设备。可以使用诸如设备类型、连接到设备的 用户的数目、与其他设备的关系的数目、在设备上运行的服务类型、设备的不可用性的影响 等的因子,计算如关键设备模块312所确定的关键因子。
[0081] 以此方式,关键设备模块312向网络管理员传达对于联网计算环境的功能运行关 键的设备。此信息可用于相应地规划执行动作,以便维持联网计算环境的可用性。例如,网 络管理员可以确保不执行可能同时对多于一个关键设备有影响的动作。因此,如果动作将 要影响如关键设备模块312所确定的关键设备的可用性,则网络管理员可以规划在设备的 可用性最不必要时执行所述动作。替代地,网络管理员可以改变工作负荷调度,实例化虚拟 机104等,以补偿关键设备的宕机时间。在一个实施例中,优化模块208使用关键设备模块 312来执行优化动作,即,确定联网计算环境内的关键设备。
[0082] 在一个实施例中,网络规划装置110包括监控模块314,被配置为监控一个或多个 仿真动作。在一个实施例中,监控仿真动作包括收集与仿真动作相关联的数据,如动作的所 计算的影响、执行动作的时间、所执行的动作的类型、执行动作的设备等。在另一实施例中, 监控模块314分析一个或多个仿真动作的所计算的影响,以便提供与维持联网计算环境的 可用性相关联的智能推荐。例如,监控模块314可以连续监控之前仿真的动作,并收集与那 些动作的所计算的影响相关联的数据。监控模块314还可以分析所收集的数据,以便提供 智能推荐,诸如执行动作的最佳时间、执行多个动作的最佳顺序等,使得一个或多个动作对 于联网计算环境的影响最小。
[0083] 在一些实施例中,网络规划装置110包括呈现模块316,被配置为将潜在动作的所 计算的影响呈现给用户。在具体实施例中,呈现模块316在包括联网计算环境的多个设备 的视觉地图上显示所计算的影响。例如,呈现模块316可在映射模块202所创建的映射的视 觉表示(representation)上呈现潜在动作的所计算的影响。因此,视觉地图可包括潜在动 作的所计算的影响的不同视觉提示,从而网络管理员可以容易并迅速地得到潜在动作的影 响的概览。例如,呈现模块316可以突出显示已经被关键设备模块312标记为关键设备的 设备、在视觉上突出显示可能受潜在动作影响的所有设备、与每个设备相关联的影响级别、 与设备相关联的描述设备和主设备之间的关系的关系级别等。此外,呈现模块316可以显 示受在特定时间执行动作影响的用户的数目的估计。
[0084] 在另一实施例中,呈现模块316呈现如由优化模块208所确定的一个或多个优化 结果。例如,呈现模块316可以显示执行动作的最佳时间、在特定时间段虚拟机104的最佳 放置、在特定时间工作负荷的最佳调度、可用性预测、与动作相关联的货币成本等。以此方 式,网络管理员或类似用户可以基于在特定时间对主设备执行的动作的仿真而查看结果, 并可以对于执行实际动作对主设备的影响做好准备。此外,网络管理员可以基于监控模块 314所收集的数据以及优化模块208所确定的结果来准备优化计划,以在执行一个或多个 动作的同时将联网计算环境的可用性维持在高级别。
[0085] 在具体实施例中,网络规划装置110包括排序模块318,被配置为根据与设备相关 联的影响级别对设备排序。在一个实施例中,计算模块206计算对于多个设备中的每个设 备的影响级别。在一些实施例中,影响级别定义潜在动作对设备的所计算的影响的大小。 在一个实施例中,排序模块318将一设备的影响级别与不同设备的影响级别进行比较,以 便对所述设备进行排序。例如,比网络交换机具有更高影响级别的服务器102将被排序得 比网络交换机更高。在具体实施例中,根据排序所分类的设备的列表通过呈现模块316呈 现给用户。以此方式,诸如网络管理员的用户可以快速查看通过执行动作哪些设备最受影 响并且可以相应规划。呈现模块316还可以在视觉地图上紧接设备的呈现而显示设备的排 序。
[0086] 图4示出了联网计算环境的映射400的一个实施例。在一个实施例中,映射400 包括包含多个虚拟机404a-c的服务器'A' 402。在另一实施例中,映射400包括下面更详 细描述的网络交换机406、服务器'B' 408a、服务器'C' 408b和多个用户410。
[0087] 在具体实施例中,映射400由呈现模块316在视觉上呈现给用户(例如,网络管理 员),从而用户可以得到联网计算环境和对设备执行的动作可能对其他设备的影响的概览。 在一个实施例中,映射400是联网计算环境在特定时间的快照。在所示出的实施例中,服务 器'A' 402是主设备,意味着服务器'A' 402已经被选择为执行潜在动作412的目标设备。 在另一实施例中,服务器'A' 402包括多个虚拟机404a-c,每个虚拟机404a-c具有一个或多 个连接的用户410。在另一实施例中,服务器'A'402连接到网络交换机406。交换机406 还可以连接到服务器'B' 408a和服务器'C' 408b,每个服务器408a-b也具有一个或多个连 接的用户410。
[0088] 在具体实施例中,映射400描述联网计算环境中的例如服务器'A'402的主设备和 其他设备之间的关系。动作412可以是表示可对联网计算环境执行的实际动作的潜在动作 412。可以在服务器'A' 402上仿真潜在动作412,以便计算所述动作对与服务器'A' 402具 有关系的多个设备的影响。例如,动作4