大型企业的存储管理员可以借鉴全球主要超大规模云计算提供商的基础设施设计原则,优化自己的存储系统和运营。为超大规模云平台提供动力的数据中心和IT系统代表了IT基础设施设计和实施的巅峰之作。它们提供超出企业需求的可扩展性、可靠性和吞吐量水平。也就是说,包括存储管理员在内的企业IT团队可以从谷歌、AWS和其他主要的全球公共云提供商那里学到很多东西。通过采用特定的超大规模数据中心设计原则,存储管理员可以致力于实现更具可扩展性、弹性和自动化的IT存储系统。主要异同超大规模云提供商和企业IT运营商都在努力适应数据的爆炸式增长。在消费方面,他们也有相似之处。这些支出对于云计算运营商和在线服务提供商在构建服务器和存储系统时非常重要,而在一个IT系统中有数以万计的设备,看似很小的成本可以加起来。虽然一些企业不太关心此类成本,并愿意为来自受信任的云计算供应商的产品支付更多费用,但没有IT组织愿意浪费金钱。为了最大限度地降低运营成本(IT成本优化的一个关键方面),超大规模云提供商不需要将人工监督的每项任务自动化。任务自动化的关键是软件,在云计算基础架构的背景下,软件需要用可在标准服务器上运行的可扩展软件替换功能特定的硬件。超大规模云计算运营商的这些和其他要求正在以多种方式重塑服务器、网络和存储行业,包括:分布式冗余和可扩展性的新技术;专注于由商品组件构建的灵活硬件;伴随着从专用设备到在易于更换的标准服务器上运行的软件定义服务的转变。一旦IT组织和工程师采用云计算方式进行处理,它就把所有的IT服务,无论是计算资源还是存储池,都转化为软件处理。超大规模数据中心设计和存储的影响虽然传统企业和公共云基础设施之间存在相似之处,但类比并不合适。例如,传统架构通常涉及IT团队必须手动管理和修改的高成本基础设施。这些体系结构也往往具有少量固定数量的组件。然而,这种传统的固定基础设施对于采用按使用付费模式的公共云没有意义;如果公司减少其基础设施足迹,则可以降低成本。公共云资源也可以自动扩展。因此,云服务的按需属性不适用于私有基础设施。尽管如此,IT团队可以应用以下超大规模数据中心设计原则来优化企业存储:(1)采用软件抽象层服务器是第一个虚拟化基础架构层,在物理硬件和逻辑资源层之间具有软件抽象。虚拟机(VM)已成为企业应用程序的标准运行时环境。在过去十年中,随着虚拟机演化为容器,软件虚拟化已遍及整个数据中心。软件定义网络催生了软件定义广域网、网络功能虚拟化和虚拟网络覆盖。软件定义存储(SDS)已将数据存储设备与信息管理和数据放置控制平台分离。最初的软件定义存储(SDS)平台是为特定目的而设计的,例如为虚拟机实例和数据库提供块卷。最近的产品已经变得与格式和协议无关,能够跨多个节点分片数据并将其呈现为逻辑卷、网络文件共享或对象存储。为了提供硬件灵活性,软件定义存储(SDS)还可以与带有集成JBODSSD、HDD和NVMe设备的标准服务器搭配使用。(2)构建服务而不是基础设施通过将资源与物理硬件隔离,软件抽象层提供了混合和匹配硬件的灵活性,允许团队将资源打包为服务而不是原始基础设施。企业正在从超大规模云供应商那里汲取灵感,使用软件定义存储(SDS)来交付对象、文件或卷服务,这些服务不仅包括容量,还包括备份、长期归档、版本控制和质量保证(QoS)级别,其中包括有价值的辅助功能。交付服务而不是基础设施还提供了基础设施设计和相关服务打包的灵活性。它可以在不改变交付和计费模型的情况下实现功能和性能升级。通过存储即服务,管理员还可以使用具有不同性能和成本特征的服务器和驱动器来提供不同的服务层级,以及跨多个数据中心和区域分布数据以获得更高的可用性。(3)自动化设计用软件定义的数据和信息管理服务取代原始存储也有利于任务自动化。这反过来又降低了运营费用,减少了配置时间,并提高了可靠性。软件定义存储(SDS)支持编程控制,因为它公开了大量用于存储配置、部署、软件更新和用户配置的API。如果您想像超大规模云提供商一样提供存储,您可以在自动化和基础架构即代码平台(例如Terraform、Ansible、SaltStack或VMwarevRealizeAutomation)中使用软件定义存储(SDS)产品公开的API,因为这样会减少体力劳动。流程被转换为可编程脚本。(4)计划失败服务器和存储设备经常宕机。对于拥有数十万台服务器和数百万个驱动器的云计算提供商来说,故障并不少见。针对故障进行设计应确保停机的驱动器或服务器不会损坏存储卷或对象blob。一种标准技术涉及将文件、blob或卷分成多个块,这些块被复制并分布在多个驱动器、节点和数据中心,使用纠删码、散列或类似算法来保证数据完整性。一些故障不涉及数据损坏,而是损坏或性能损失。云运营商可以持续监控此类事件,并使用自动通知系统和脚本来修复或减轻损害,而无需人工干预——希望在用户注意到之前。监控还可以确定任何损坏或中断的程度,并将传入的存储请求路由到完整副本和未受影响的数据中心。(5)强调可扩展性IT团队一直在努力满足存储容量需求。但如今,加速的数据增长已经在许多企业中造成了危机。要构建类似于超大规模云平台的存储,您需要针对摩尔定律类型的增长进行设计。管理员应该能够添加存储节点和JBOD阵列,以无中断地扩展横向扩展系统。软件定义存储(SDS)对于此类设计至关重要,因为它将控制平面(卷、文件和节点管理和配置)与数据平面(存储节点和阵列)分开。因此,向分布式系统添加容量不需要删除和迁移卷。相反,IT人员可以添加节点并使系统能够在新的可用容量之间自动重新分配数据。与传统的基于SAN的企业存储设计不同,超大规模云平台不会扩展和整合——它们会扩展和分布。他们还使用监控遥测和预测机器学习算法来确定容量增加的扩展配置文件,目标是拥有足够的容量而不会浪费太多的过度配置。(6)记住机器是可更换的与传统存储系统相比,运行软件定义存储(SDS)堆栈的标准服务器可以节省资金。企业可以用便宜的商品服务器替换昂贵的专有存储硬件。但是,这些服务器是可更换的,并且由于每个文件或数据块都在多个节点上的驱动器之间进行复制,因此一个或两个系统的故障不会影响整个数据量。机器可互换性和数据冗余还允许IT人员在方便的时候批量执行维修或更换。企业IT组织必须能够证明扩展分布式设计所需的系统数量是合理的。
