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

容器附加存储与软件定义存储:选择哪一个?

时间:2023-03-15 09:36:52 科技观察

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