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

容器附加存储(CAS)与软件定义存储(SDS),如何选择

时间:2023-03-20 19:24:30 科技观察

【.com快言】硬件抽象涉及创建一个编程层,允许计算机操作系统以通用方式与硬件设备交互而不是详细的层次。该层用于实现将硬件用于任何软件程序的逻辑代码。对于存储设备,抽象层为用户访问共享存储提供了统一的接口,实现了硬件设备对操作系统的隐藏功能。这允许在用户机器上运行的软件从存储设备中获得尽可能高的性能。此外,它允许独立于设备的程序,因为存储硬件抽象层使设备驱动程序能够直接访问每个存储设备。  Kubernetes本质上与基础架构无关,因为它依赖于插件和抽象卷来将存储硬件与应用程序和服务分离。另一方面,当用户终止容器时,数据会立即丢失。Kubernetes使用卷和持久卷将容器化应用程序创建和处理的数据保存在物理存储设备上。这些抽象是通过各种类型的硬件抽象层(HAL)实现的,以连接到存储硬件。Kubernetes集群使用两种常用的HAL存储来实现容器附加存储(CAS)和软件设计存储(SDS)。  本篇博文将深入探讨CAS与SDS的根本区别、各自的优势,以及最适合典型HAL存储实现的应用。  容器附加存储和软件定义存储  Kubernetes使用抽象存储实现可移植、高可用和分布式存储。KubernetesAPI支持通过CSI接口连接各种CAS和SDS存储方案。因此,让我们首先仔细看看抽象模型的功能以及每个模型在Kubernetes集群中解决存储问题的目的。  ContainerAttachedStorage  ContainerAttachedStorage(CAS)引入了一种在Kubernetes集群中为有状态工作负载持久化数据的新方法。借助CAS,存储控制器作为Kubernetes集群的一部分在容器中进行管理和运行。这允许存储可移植性,因为这些控制器可以在任何Kubernetes平台上运行,无论是在个人机器、本地数据中心还是公共云产品上。由于CAS采用微服务架构,存储解决方案与绑定到物理存储设备的应用程序保持紧密关联,从而减少I/O时间。  容器存储架构  CAS利用Kubernetes环境实现集群数据持久化。存储解决方案在容器中运行存储目标。这些目标是可以复制以进行独立扩展和管理的微服务。为了增强自主性和敏捷性,可以使用Kubernetes等平台来编排这些基于微服务的存储目标。  CAS集群使用控制平面层进行存储管理,而数据平面层用于运行存储目标/工作负载。控制平面中的存储控制器提供卷,启动存储目标的副本,并执行其他与管理相关的任务。数据平面组件执行来自控制平面元素的存储策略和指令。这些指令通常包括文件路径、存储和访问方法。数据平面还包括存储引擎,它负责实现文件存储的实际输入和输出路径。  容器附加存储的好处  容器附加存储为有状态的容器化应用程序提供敏捷存储。这是因为它遵循基于微服务的模式,允许无缝升级存储控制器和目标副本。存储软件的容器化意味着管理团队可以为每个卷动态分配和更新存储策略。对于CAS,低级存储资源是使用Kubernetes自定义资源表示定义的。这允许存储和云原生工具之间的无缝集成,以便于管理和监控。CAS还确保存储是供应商中立的,因为有状态的工作负载可以从一个Kubernetes部署转移到另一个而不会中断服务。  Container-attachedstorageapplication  CAS使用存储目标复制来保证高可用,避免传统分布式存储架构的爆炸半径限制。这使得CAS成为云原生应用程序的首选存储选择。CAS也适用于希望跨多个云协调存储的企业。这是因为CAS可以部署在任何Kubernetes平台上。ContainerAttachedStorage支持简单的存储备份和复制,非常适合需要横向扩展存储的应用程序。当然,它也非常适合希望改善持续集成和开发(CI/CD)管道的读写时间的开发团队。流行的KubernetesCAS解决方案提供商包括:  1)OpenEBS  2)StorageOS  3)Portworx  4)Longhorn  软件定义存储  软件定义存储架构依赖数据程序,以将正在运行的应用程序与存储硬件分开。通过将存储设备抽象为虚拟分区来简化存储设备的管理,然后通过承载命令和控制功能的数据管理接口(DMI)实现管理。    软件定义存储的特点  对于软件定义存储,数据/服务管理接口托管在主服务器上,主服务器控制由共享存储池组成的存储层。这使得存储的配置和分配变得简单和灵活。以下是软件定义存储的一些关键特性:  设备抽象——不管底层硬件如何,数据I/O服务应该统一交付给用户。借助SDS,存储库、文件共享、卷和逻辑单元号(LUN)等存储抽象被用于在数据存储的物理硬件和逻辑方面之间创建清晰的划分。  自动化-SDS解决方案实施工作流程和算法,减少管理员执行的手动工作量。为了实现高效的自动化,SDS存储系统可以适应不同的性能和数据需求,而几乎不需要人工干预。  分解池存储——物理存储设备是共享设施的一部分,软件可以从中为服务和应用程序分配存储空间。这使SDS能够在需要时有效地使用可用存储,从而实现资源的最佳利用。  软件定义存储的优势  使用SDS的一些好处包括:  增强的可扩展性-解耦硬件资源允许管理员根据工作负载动态分配物理存储。SDS支持的池化、分类存储允许物理卷的垂直和水平扩展,支持更大的容量和更高的性能。  改进的I/O性能-SDS支持输入-输出并行性,以动态处理跨多个CPU的主机请求。SDS还支持高达8TB的大缓存内存,具有自动数据分层功能。这允许更快的输入输出操作以实现更快的数据处理。  互操作性——SDS使用数据管理接口作为翻译器,允许运行在不同平台上的存储解决方案相互交互。它还将物理上隔离的存储硬件分组到逻辑池中,允许组织托管来自不同供应商的共享存储。  降低成本-SDS存储解决方案通常在现有商品硬件上运行,同时优化存储消耗。SDS还支持自动化,减少管理存储基础设施所需的管理员数量。这些因素导致管理工作负载的前期费用和运营费用较低。  何时使用软件定义存储  SDS为希望以更低的成本提高存储灵活性的团队提供了多项优势。SDS的一些常见用例包括:  数据中心基础设施现代化  为移动和具有挑战性的环境创建强大的系统  创建要在同一平台上管理的混合云实施  利用现有的远程和分支机构基础设施  容器附加存储与软件定义存储的对比  相似点:  CAS和SDS都支持物理存储硬件和运行的应用程序之间的隔离。在这样做的同时,这两种技术都从数据存储资源中抽象出数据管理。这两个HAL实现有几个共同的特征,包括:  VendorAgnostic  CAS和SDS架构都允许在单个主机上运行多个工作负载。这允许管理员利用存储设备和访问软件之间的分离。因此,无论谁开发或管理这些工具,组织都可以选择CAS或SDS来实施可在任何平台上运行的存储解决方案。  允许动态存储分配  SDS和CAS允许动态附加和分离存储设施,自动为高可用性应用程序提供数据备份和副本。SDS和CAS都允许自动部署存储基础设施,从而实现存储技术的多样性和异构性。  允许高效的基础架构扩展  CAS和SDS允许水平和垂直基础架构扩展以自动化数据工作流。这两种HAL方法可以创建可组合的分解基础设施,增强多功能分布式环境的创建。  CAS与SDS的区别  SDS支持分布式存储管理,减少硬件依赖,而CAS允许分散存储运行在任意容器编排平台上。因此,CAS和SDS之间存在各种差异,包括:  软件定义存储依赖于传统的共享软件,具有爆炸半径限制,而容器附加存储(CAS)允许存储软件的复制,允许独立管理和扩展。  CAS允许扩展/横向扩展存储和卷性能,而SDS允许扩展存储节点以增加存储容量。  SDS支持超融合基础设施(HCI),而CAS支持高度分解的存储基础设施。  容器附加存储和软件定义存储都允许集群管理员利用硬件抽象来为Kubernetes中的有状态应用程序持久化数据。CAS允许使用Kubernetes进行基于微服务的存储编排,从而实现存储控制器的灵活管理。另一方面,软件定义存储允许使用可编程数据控制平面抽象存储硬件。  CAS具有典型SDS提供的所有功能,虽然是为容器工作负载量身定制的,但仍然使用最新的软件和硬件构建。  原标题:ContainerAttachedStorage(CAS)vs.Software-DefinedStorage——选哪个?