应用程序通常需要三层才能运行:网络,用于连接;存储,以保存信息;和计算。在这三者中,计算是过去二十年中变化的主要驱动因素,例如在从裸金属运行应用程序到虚拟化再到容器化的过程中,计算需求不断增长。
这种不断扩展的计算层增加了堆栈和负责管理它的人员的复杂性。
然而,计算的这种范式转变反过来影响了存储,特别是在容器化工作负载的存储领域。随着企业适应应用程序在混合和多云世界中的交付方式,存储加密和应用程序移动性尤其让DevOps团队头疼。
为了解决这一问题,戴尔创新新的方式,使其容器存储模块可以让开发人员和工程师轻松生活,包括发布两个新模块,重点解决加密和应用程序移动性的挑战。
存储挑战的演变
一开始是裸金属,应用程序是单体,直接在硬件上运行。事务性数据库使用存储。
然后是虚拟化——在本世纪初的鼎盛时期——增加了新的复杂性。戴尔Kubernetes和云原生数据保护高级首席产品经理Nivas Iyer指出,在这一时期,像VMware这样的公司加速了虚拟机的使用,并利用它们整合服务器和前端应用程序。
结果是,“服务器的占地面积减小,导致数据中心占地面积缩小。同样,计算也提高了一步。”
随着这一进展,情况变得更加复杂。Iyer表示,虚拟化“带来了一系列新的挑战,因为存储系统必须与虚拟化层对话,并通过虚拟化层与应用程序对话。”
随着支持应用程序的体系结构从传统到虚拟化再到容器化,存储需求变得越来越复杂。
当虚拟机本身需要存储时,VMware引入了虚拟机磁盘文件(VMDK),这是一种用于虚拟机的文件格式,现在是一种开放文件格式。微软推出了虚拟硬盘(VHD),以实现几乎相同的功能——尽管两者需要转换器软件兼容,因为它们是兼容的。
因此,“存储容量扩大了,辅助存储或数据保护方面也扩大了。”Iyer说,“随着这一扩展,出现了新的接口,这是由于存储系统需要与虚拟化层通信。所有这些新功能结合在一起后,围绕存储创建了一个真正的生态系统。”
这意味着:DevOps团队,特别是开发人员和存储管理员的责任范围和认知负荷增加。
更多人参与,更多需求
Iyer说,随着计算层变得越来越复杂,随之而来的存储需求也越来越大,需要更多的人来管理这一切,他们需要新的技能。
“所以现在更多的人参与。早些时候,这很简单:存储管理员、服务器管理员、网络管理员。”但虚拟机的出现需要引入虚拟管理员,他们了解虚拟化,包括虚拟化周围的工具生态系统及其集成方式。
同样,容器、Kubernetes(K8)的引入,以及围绕K8s而兴起的产品和服务的广阔前景,都需要新的技能和知识,用于探索高级API和接口。
随着对这些利基但深度技能集的需求日益突出,Dev和Ops之间的隔离和脱节变得比以往任何时候都更加明显。为了弥补技能和流程的不足,变通办法和“影子IT”文化的出现很快成为以完成任务为名的常态。
企业意识到了这可能导致业务的风险,并开始采用我们今天看到的常见DevOps实践。这些实践不仅简化了开发人员和运维团队协作的流程,还为管理员整合自动化以减少人工工作、技能差距和变通方法的需求奠定了基础。这种自动化对于开发人员和存储管理员来说尤其重要。
以Kubernetes运行系统为例,该系统具有容器化应用程序,其中存储是动态请求的。将高级存储功能(如复制和弹性)引入此环境需要与K8s容器存储接口(CSI)API进行通信。为了做到这一点,K8s需要一些插件,以及潜在的自动化,以提供这些功能,并使管理存储的员工的工作变得轻松。
这是戴尔试图通过其容器存储模块解决的特殊挑战。
容器存储模块如何发挥作用
2019年,现任戴尔技术专家、基础设施解决方案组副总裁Itzik Reich在该公司的用户大会上分享了将戴尔存储阵列与Kubernetes CSI API集成的计划。正如两年后Reich的一篇博客中所详述的那样,2019年的演讲结束后,与会者带着担忧与他联系:他们将如何跟踪存储阵列中发生的事情?
Reich写道,在那次活动之后,“我召集了一个产品经理团队,我们开始考虑即将到来的客户需求。我们作为世界上最大的存储公司,开始就客户即将到来的需求采访客户:K8s。”
这些对话取得了成果。2021年8月,戴尔发布了其第一个容器存储模块(CSM)。第一组CSM旨在处理授权、可观察性、复制、弹性和快照。这些CSM是:
——授权:使Kubernetes管理员能够应用基于角色的访问控制(RBAC)和配额规则,从而立即自动限制集群租户对存储资源的使用。
——可观察性:使用Grafana和Prometheus仪表板为Kubernetes/容器管理员提供单窗格管理体验。
——复制:为Kubernetes用户提供阵列复制功能,将数据保护和灾难恢复规划扩展到Kubernete工作负载。
——弹性:通过启用K8s节点故障切换来防止节点故障。此模块可跟踪持久卷运行状况,检测节点故障(电源故障)、K8s控制平面网络故障和阵列I/O网络故障,并将受保护的pod“优雅”地迁移到正常运行的硬件。
——快照:构建在基于CSI的快照之上,用于操作恢复和数据重新调整用途。除了时间点恢复,快照是可写的;它们可以安装用于测试、开发和分析用例,而不会影响生产卷。
这些存储模块建立在戴尔数十年的数据存储知识基础上,使开发人员能够利用自动化存储基础设施,从而提高整体开发效率。
这些模块可以部署在所有Dell主存储阵列上,包括Dell PowerFlex、Dell PowerStore、Dell PowerScale、Dell PowerMax和Dell Unity XT。
新的加密和应用程序移动工具
9月下旬,戴尔在其CSM产品组合中又增加了两个模块:应用程序移动性和加密,这两个模块目前都在技术预览中。与以前可用的CSM一样,新模块是开源的。
Dell CSM的当前阵容;应用程序移动性和加密正在技术预览中,而卷放置仍处于开发阶段。
应用程序移动模块为戴尔客户解决了一个特别紧迫的问题。
“我们生活在一个多云的世界。”Iyer说,“我们有可以在多个地方运行的应用程序,有时出于各种原因,可能需要移动这些应用程序。也许有一个测试开发环境,现在可以将其升级为生产环境。例如,如果需要将工作负载从一个云移动到另一个云,或者从边缘移动到数据中心,然后再移动到边缘,CSMAppMobility可以帮助实现这一点。”
“应用程序移动性方面基本上能够将整个应用程序作为一个整体,然后将其移动到另一个地方并在那里启动。”
新模块允许K8s管理员将其有状态的应用程序工作负载和应用程序数据克隆到其他集群,无论是在内部还是在云中。它使用Velero备份工具及其与数据移动器Restic的集成,将应用程序元数据和数据复制到对象存储中。它不仅支持Kubernetes容器编排器,还支持Red Hat OpenShift、RHEL和CentOS。
新的应用程序移动模块可以帮助备份和恢复应用程序、克隆应用程序或更改PV/PVC存储类别。
Iyer说:“数据的流动性以及应用程序的上下文都非常重要。我们只是在上面添加应用程序上下文,以允许应用程序随数据移动。”
Iyer表示,除了应用程序移动性之外,戴尔的存储产品“支持开箱即用的低加密”。但新的CSM加密模块在静态和动态时都对数据进行加密,在保持存储安全方面更进一步。
“安全是一个整。例如,我们有身份验证模块,确保正确的人员或正确的团队能够访问它。我们还有加密,使用HashiCorp的Vault等工具。我们可以存储密钥,加密数据,并基本上确保信息以所需的正确格式存储。”
安全模块支持的编排和操作系统包括Kubernetes容器编排器,也包括RHEL、SLES和Ubuntu。
开始和保持更新
Iyer表示,戴尔的一些客户正在转向容器化微服务,并处于新CSM采用的不同阶段。他建议那些希望尝试模块的组织慢慢开始,并有概念证明。
“我们每两周进行一次冲刺,而且还是开源的。因此,这是一个非常、非常快的创新过程,允许我们在采纳、接受和整合反馈时保持灵活。我们的目标是让戴尔为整个开发者社区创造出更好的东西。”