当前位置: 首页 > 科技观察

关于现代数据中心的容量管理

时间:2023-03-17 15:49:56 科技观察

容量管理作为一门操作规程,自从基于服务器的计算出现以来已经存在多年,甚至可以追溯到大型机时代。鉴于每一代服务器平台都有其独特的要求,支持这一学科的相关商业工具也已经存在了30多年。随着数据中心从大型机到中端计算,从客户端服务器到虚拟化的发展,数据中心行业对容量管理工具的需求也在逐渐发展。虚拟化技术的广泛采用尤其引发了智能工作负载管理(IWM)的问题,使得容量管理不再是确保应用程序性能的适当解决方案。尤其是传统的容量管理解决方案应用于现代数据中心时,将面临以下一系列根本性缺陷:传统平台不足以应对现代数据中心的实时运行。中央索引分析迫使传统的容量管理解决方案需要批量执行,使得这些解决方案无法适应不断变化的应用需求。传统的容量管理解决方案完全依赖于历史数据,因此无法应对不可预测的应用程序需求模式。这些传统容量管理解决方案提出的生产建议通常在实施之前就已过时。这些传统的容量管理解决方案依赖于历史数据,不适合云原生应用程序工作负载。传统平台只关注基础架构,同时也忽略了应用程序性能这些传统的容量管理解决方案使用不合适的分析算法,这些算法只关注基础架构利用率而不考虑应用程序性能。传统的容量管理解决方案不具备将工作负载需求与基础设施配置相关联以确保应用程序性能的语义。确保现代数据中心的应用程序性能需要一个实时控制系统来解决智能工作负载管理问题。但是随着虚拟化兴起而出现的软件定义数据中心的设计中并不包括这个系统。数据中心容量管理的定义市场研究公司Gartner对容量管理工具的定义如下:“IT基础设施-容量管理工具可以生成与基础设施-容量相关的报告,并可以进行历史数据分析和容量关联分析,具有能力IT和业务场景规划。这些工具的特点是能够与来自各种特定领域的工具(例如实时性能监控工具)的数据完全集成;为各种基础设施组件提供预测、咨询和自动化;能够深入分析影响基础架构性能的潜在因素;以及它们对假设场景的支持以及与联机分析处理(OLAP)业务报告工具的集成。容量管理工具的目标是回答以下问题:我的组织在我的数据中心是否有足够的基础设施容量来支持我当前和未来的工作负载?如果没有,我什么时候必须获得额外的能力?什么类型的容量?更改组织数据中心基础设施的容量或配置会产生什么影响?在各种操作环境之间迁移工作负载的最佳方式是什么?容量管理简史回想一下,容量管理工具最初是为支持IBM的大型机而开发的。当时,主要驱动因素是大型机硬件过于昂贵,因此花费了大量精力试图弄清楚究竟需要多少硬件。随着中端服务器的出现,容量管理问题不再被业界所重视。虽然确定究竟要购买多少硬件的问题仍然非常重要,但有两种趋势正在使其不再是行业的优先事项。首先,硬件成本变得更低,企业客户不再需要确切了解他们需要购买多少容量。其次,虽然大型机在一台服务器上运行多个应用程序,但中端系统通常在每台服务器上只运行一个应用程序。这简化了规划过程,同时也减少了对复杂工具的需求。接下来,从中端UNIX系统到基于Wintel平台的客户端-服务器系统的转变再次改变了格局。服务器价格开始下降,大多数服务器仍然是单体应用。这继续降低容量管理工具的价值。随着虚拟化的出现,容量管理问题开始看起来更像是大型机问题。借助虚拟化技术,企业客户在同一台??服务器上运行多个应用再次成为常态。此外,虽然每台服务器的成本持续下降,但服务器数量却急剧增加。根据Gartner2014年的市场调查,只有不到5%的企业在使用IT基础架构容量管理工具。他们进一步估计,到2018年,只有30%的企业将采用这些工具——年复合增长率仅为5%。鉴于该工具类别的成熟度,一个明显的问题是:“为什么该工具在数据中心行业的采用率如此之低?”行业采用率如此之低,为什么增长如此缓慢?”虚拟化的出现带来了容量管理和工作负载管理,虽然多个应用程序可以在单个服务器上同时运行,但这些应用程序并不是在单个操作系统上执行的实例。管理程序处理资源共享而不是操作系统。这将问题的范围扩大到计算资源之外,包括存储和网络资源。此外,确保应用程序性能所需的智能工作负载管理功能被排除在管理程序层之外。虽然容量管理仍然是一项有用的规划工作,但它不足以确保性能的管理程序。确保现代数据中心的应用程序性能任何数据中心运营团队的主要目标都是确保其应用程序的性能,同时最大限度地利用所需的基础设施资源。现代数据中心运营中执行的每一项活动,包括供应、监控、容量管理和自动化,都是为了支持这一主要目标而设计的。虽然有人声称智能工作负载管理可以通过自动补充容量管理来解决,但事实并非如此。事实上,容量管理对于确定未来的容量需求和规划迁移非常有用,但事后添加自动化并不能提供确保应用程序性能的适当平台。它并没有填补虚拟机管理程序层之外的智能工作负载管理方面的空白。采用这种方法的解决方案会带来以下不足:1.这些解决方案使用了不合适的分析算法,只关注基础设施的利用率,而没有考虑应用程序的性能。2.这些解决方案完全依赖于历史数据,因此无法处理遇到不可预测的需求模式的应用程序。3.这些解决方案的强力分析迫使他们分批执行分析并定期自动化,从而阻止这些解决方案响应不断变化的需求。4.这些解决方案提出的建议往往在实施之前就被淘汰了。5.这些解决方案依赖于历史数据,因此不适合云原生应用程序工作负载。最近,一些容量管理工具增加了根据其分析生成建议的能力,在某些情况下可以通过脚本处理或与外部业务流程系统集成。然而,在所有情况下,此类容量管理工具使用的分析都侧重于提高基础设施利用率,而不是确保应用程序性能。这是非常有问题的,因为在不考虑性能的情况下重新配置基础设施以提高效率可能会导致严重的应用程序性能问题。当谈到虚拟机的放置时,容量管理解决方案依赖于一种装箱算法,在该算法中,利用率峰值与峰值和谷值相匹配,以优化相关基础设施的密度。这种简单的方法存在几个基本问??题。1.不能实时执行在计算理论中,装箱算法被归类为组合的NP-hard(非确定性多项式)问题。这意味着寻找问题的解决方案需要大量计算,因此依赖装箱算法的分析必须以批处理方式连续实时运行。因此,由分析产生的自动化操作是定期执行的,而不是连续执行的。这类似于在写入优化被构建到文件系统本身之前发生的磁盘碎片整理。这种方法的核心问题是它根本无法确保应用程序性能,因为只有实时自动化才能通过持续供应基础架构资源来满足当前应用程序需求,从而处理不断变化的应用程序需求。2.无法应对不可预知的需求由于分析是周期性的批量运行,仅基于历史数据,所以未来的需求只有紧密反映历史需求才是准确的。虽然这种方法对于常规容量管理可能已经足够,但它完全不适合实时应用程序的性能控制。许多现代应用程序具有不可预测的需求模式,因此仅依靠历史数据分析是不够的。例如,虚拟桌面工作负载没有一致的历史数据。即使是传统的事务处理应用程序也会遇到不可预测的需求高峰,而正是这些情况对业务流程产生了负面影响。对于确保应用程序性能的分析引擎,它必须考虑历史和当前的实时工作负载要求。此外,由于放置决策等自动化操作只能定期执行,无法解决不可预测的需求,因此它们必须依靠空间分配来提供足够的备用容量来处理意外的需求高峰。这种净空分配实际上降低了底层基础设施的有效使用,并且不是应对波动需求的充分解决方案。使用余量方法,企业数据中心必须选择留出足够的未使用容量来处理任何预期的需求高峰或有风险的性能问题。适当的解决方案可以实时响应波动的需求,消除过度配置和潜在性能风险之间的艰难选择。3.无法规模扩展和缩放由于bin-packing算法是NP-hard,增加了多个维度,所以不容易实现大规模扩展和缩放。事实上,在基础设施领域,执行分析所需的时间和资源呈指数级增长,因为算法扩展到不仅考虑计算,而且考虑存储、网络和应用程序。因此,该算法不仅无法大规模扩展,也无法实时转化为执行,从而无法保证应用程序性能。最后,跨多个领域进行扩展非常困难——不仅是计算领域,还有网络、存储和应用程序。4.自动化是事后才想到的。传统的容量管理工具早于软件定义的数据中心,因此最初没有考虑自动化。因此,运营计划的执行分析、制定和执行是独立的执行阶段。通常,自动化是通过脚本或第三方业务流程实现的,这使得解决方案的部署、配置和维护变得非常复杂。此外,由于自动化只能在分析完成后发生,因此无法实时执行。5.不可靠的操作执行计划容量管理工具生成的操作执行计划存在一些致命问题——它们可能而且通常是不可用的。由于分析是根据历史数据分批运行的,因此根据该数据生成的所有操作执行计划都基于以下假设:执行操作时,环境与捕获数据进行分析时的状态相同。因此,如果在捕获数据和执行操作之间环境发生了任何变化,则这些操作将无效。此外,由于所有操作都是相互依赖的,因此单个更改(例如迁移的虚拟机)可能会使整个操作计划失效。在执行分析时,甚至在执行行动计划本身时,可能会发生此更改(由于算法的计算强度,通常需要数小时)。事实上,如果在尝试实施行动计划之前无法确定是否发生了任何无效更改,这种情况会进一步恶化。因此,任何在动态变化的基础设施中执行操作行动计划的尝试都是不可靠的。6.不适用于云原生工作负载***,基于历史分析的批量容量管理根本不适用于云原生工作负载。越来越多的应用程序通过使用部署在容器中的微服务来横向扩展。这些基于容器的微服务器将根据应用程序的需要实时不断地创建和销毁。因此,历史数据不足以进行批量容量分??析。传统的大容量管理解决方案根本不适合云原生工作负载,这意味着它们将在不久的将来面临淘汰。事实上,云原生工作负载只能由实时控制系统管理。结论正如我们所见,容量管理工具不适合确保应用程序的性能,因为它们无法实时执行,无法处理不可预测的需求,无法大规模扩展,生成根本不可靠的操作执行计划,并且不在都适用于云原生工作负载。确保现代数据中心应用程序性能所需的是一个实时控制系统,该系统可以解决随着虚拟化的出现而被排除在软件定义的数据中心设计之外的智能工作负载的管理。