马志鑫
摘要:针对分布式存储技术在私有云平台中的应用策略进行研究,旨在推动我国私有云平台发展水平,在充分发挥分布式存储技术优势基础上,为私有云平台用户提供更为强大的数据存储服务。在对分布式存储技术、私有云平台概念加以分析后,探讨私有云平台中应用分部式存储的意义,并分别针对基于vSAN、开源Kubernetes+Gluster的分布式存储方案进行研究,且对两种方案进行对比。期望此成果可为我国私有云平台应用企业提供技术借鉴价值,为企业应用性能提升以及经济效益的获取起到推动作用。
关键词:分布式存储;私有云平台;K8s;vSAN;Cluster
一、前言
云计算视角下,分布式存储技术相比传统存储形式具有诸多显著优势。首先,分布式存储具有较强的灵活性和可扩展性,能轻松调整存储容量,按需分配且自由扩展,以有效满足云计算应用企业不断变化的业务需求。其次,分布式存储形式有助于优化读写效能,通过在多个节点并行读写,可显著提升系统的性能,并且相比传统集中式存储,分布式存储更倾向于使用一般的标准硬件,在维护成本、扩容投资上都更具成本效益。因此,分布式存储将是未来云平台数据存储的主要发展方向,亦是进一步推动云平台服务效率提升的重点研究领域。
二、分布式存储技术与私有云平台概述
(一)分布式存储技术
分布式存储技术是通过网络将数据分散存储在不同的物理位置上的技术。相比传统集中存储,在数据分布方面,分布式存储技术以“分而治之”思想,将大量数据划分为若干小块,并将这些数据块分散存储在不同服务器或存储设备上。这一分散存储方式,有利于通过并行化提高读写速度,并可有效地处理大规模数据。冗余备份方面,在分布式存储系统中,为防止单点故障导致数据丢失,引入了数据备份机制,即在多个节点上保存数据的副本。当某一节点失败时,可以通过其余节点上的副本恢复数据,从而确保数据的高可用性以及系统的容错性。一致性机制下,因数据被分布存储在多个节点上,分布式存储系统会基于一致性算法,保证所有节点上的数据状态一致,以实现整个系统的数据一致性。
(二)私有云平台
私有云平台是一种云计算部署模式,其核心理念是为企业、单个组织构建专有、专用云计算环境。作为一种虚拟化计算环境,私有云平台旨在通过将硬件资源如存储、网络及计算资源虚拟化,提供按需分配的动态服务。
一方面,从资源管理层面分析,私有云平台利用虚拟化技术,会将物理资源如服务器、存储、网络抽象化,形成一个资源池,用户可以业务需要为依据按需请求使用,实现资源的最优化分配,该模式为企业计算环境的即时性、弹性提供了可能。另一方面,在安全与数据管理方面,私有云平台所有计算资源都由企业自行开展管理与控制,私有云平台则能够提供高级别的数据安全和隐私保护。在数据处理、存储和迁移过程中,企业可以自行设定、执行特有安全政策,有效避免数据被泄露、篡改与丢失等风险。
三、分布式存储在私有云平台中的应用意义
分布式存储在私有云平台中的应用,其意义可体现在服务高效性、存储弹性与可扩展性、存储可靠性与安全性三个维度。
首先,服务高效性视角下,分布式存储支持对数据的并行处理,数据存取操作不会受制于单一存储设备性能。例如,针对大规模数据的读取,传统单点存储需要消耗大量时间成本。但是,分布式存储可将这些数据分散于一个节点上,以并行读取形式提高数据访问速度。这一特性下,私有云平台的一些海量数据操作,如大数据分析、深度学习等场景都能得到性能上的满足。
其次,存储弹性与可扩展性视角下,将分布式存储应用于私有云平台,能够以业务需求为依据动态增加、减少存储阶段,灵活调整存储空间大小,且上述操作无须停机,不会影响私有云平台相关业务运行。例如,某企业数据量骤增背景下,私有云平台可快速增加存储资源应对数据变化,用户无须关心物理存储设备的容量。因此,私有云平台中应用分布式存储可良好应对数据处理的临时高峰。
最后,存储可靠性与安全性视角下,分布式存储将数据分布于多个存储节点,即便某一阶段处于故障,其他节点依旧可基于副本提供服务,可大幅度提升业务连续性。同时,分布式存储分散性的特征,也可确保数据不会被不法分子全盘盗取,数据安全性显著提升[1]。
四、私有云平台中分布式存储的应用策略
(一)基于vSAN的私有云平台分布式存储
1.vSAN介绍
vSAN又称虚拟存储区域网络,是VMware公司推出的一种分布式存储架构。vSAN集成在VMware的vSphere中,形成了一个软件定义的存储解决方案,具有灵活性、可扩展性及性能出色的特点。该技术原理是利用直接连接到各服务器节点的本地存储设备,如硬盘驱动器、固态硬盘等,形成分布式共享数据存储层。这种架构可最大限度地利用存储硬件性能,避免了传统存储网络单点的瓶颈。
2.节点故障容错设计
在利用vSAN部署私有云平台分布式部署阶段,为避免出现单节点故障造成风险,vSAN设计需重点考量故障域提出的要求,计算一个集群内vSAN的故障域数量(D),可参考式(1)。
D=2×N+1 (1)
式(1)中,N代表最多容忍vSAN节点故障的数量。vSAN部署期间,至少要设置三个故障域才可容忍集群内同时最多一个阶段出现故障时,系统仍处于正常运行状态。倘若希望集群内可同时容忍2个阶段出现故障,则需要设置至少五个故障域[2]。
(二)基于开源系统的私有云平台分布式存储搭建
相比vSAN此类专属于vSANMware的私有协议,目前还存在其他开源且被广泛应用的分布式存储技术,如HDFS-Hadoop分布式文件存储、Ceph、Gluster、Kubernetes(K8s)容器集群管理系统等,不同技术有着各自的优势。Kubernetes(K8s)作为开源容器集群管理系统,具备强大自动化功能,可实现自动化部署、扩容缩容、网络设定,可大幅度降低运维难度。
1.面向K8s虚拟技术的私有云平台
基于Kubernetes(K8s)技术实现私有云平台的部署,主要目的在于充分运用其集群资源调度能力,以便在之后的步骤中将Gluster分布式存储系统的资源有效利用至容器中。
关于Kubernetes(K8s)技术,其实是Google基于Borg系统研发的开源容器编排平台,负责面向云平台提供一个实现自动化部署、弹性扩缩和无缝更新机制。目前,K8s已广泛应用于企业私有云平台部署中,不仅提升了开发和运维效率,也提供了有效的资源管理和访问控制,已成为业界主流的应用部署方式之一。
一方面,Kubernetes技术采用虚拟化技术,可以将一台或多台服务器硬件资源汇聚为一体,实现资源统一调度UI分配,避免资源闲置或资源不足现象,运行阶段,K8s会将每个服务器虚拟化为一个“节点”,各节点可运行多个隔离环境的“容器”,容器内部则包含运行应用所需的各类环境与配置,让应用能运行于任意Kubernetes节点,全面提升应用部署灵活性。
另一方面,在私有云平台部署中,Kubernetes可实现对应用的细粒度管理,会为每个应用分配特定命名空间,让用户能够在调度应用阶段更方便地管理、控制隶属同一业务线的应用程序。同时,Kubernetes提供的服务发现、负载均衡机制,可保证应用始终具备高可用性,其对外提供的接口调整为集群级别,内部调度转发到对应的容器进一步保证了应用在运行阶段的对外访问能力。
2.Gluster集群应用
Gluster集群是目前市场中高度流行的开源分布式文件系统,其提供的存储解决方案,目前已被广泛应用于私有云平台中。
一方面,技术原理视角下,Gluster集群利用计算机网络技术,将网络中的多个磁盘设备或者存储设备集合起来,形成统一存储池,为上层应用提供统一访问接口。在此基础上,每个存储节点均为对等关系,不会出现单点故障问题。数据运行期间,Gluster会在各节点之间进行条带化存储,让应用实现面向大量数据的可靠、高效存储。
另一方面,Gluster集群中的每个节点均可实现独立运行,不依赖于中心节点或是元数据服务器。这一架构让Gluster集群具备良好的可伸缩性与容错性,即便某一节点出现故障,其他节点仍旧能够继续工作而不影响数据的访问[3]。
3.部署过程
以下是基于K8s技术结合Gluster的私有云平台分布式存储部署策略。
步骤1:确定主节点与工作节点。Kubernetes整个集群管理与控制均需由主节点负责,如跨主机的容器编排、服务发现与负载均衡、错误恢复工作等。剩余的服务器资源,会被设定为工作节点,运行实际的容器应用。
步骤2:进行网络配置。对于Kubernetes而言,其CNI(Container Network Interface)容器网络插件的运用至关重要。其CNI主要负责Kubernetes集群中各Pod之间的网络通信。尽管Kubernetes支持多种网络插件,如Flannel、Calico或是Cilium等,但仍旧需要以具体网络环境、业务需求为依据选择最为合理的插件。
步骤3:配备管理工具。部署Kubernetes需要配备管理工具,Kubectl能够帮助用户与Kubernetes实现高效交互,对集群进行有效管理。Helm同样为有效管理Kubernetes应用的工具,在集群运行阶段,Helm负责简化部署与配置的过程。此外,为实时监控Kubernetes集群的状态,还需配备Prometheus、Grafana此类系统与工具。
步骤4:持久化存储应用。部署私有云平台分布式存储阶段,Kubernetes提供了PV (持久卷) 和PVC (持久卷申领) 两种存储方式,它们能够帮助用户描述管理存储资源。应用部署阶段,需要在StatafulSet内进行volumeClaimTemplates配置,从而生成Pod、PV以及PVC。图1为Pod、PV以及PVC生成情况查看示意图。
在部署Gluster集群后,会有三个节点已经利用LVM创建3个1G的存储逻辑卷轴,且会实现自动挂载。节点数量由vvolumetype内复制卷的数量而决定。图2为volumeClaimTemplates配置示意图。
步骤5:资源分配与隔离。对于大规模的集群,资源分配、隔离尤为重要。此刻,Kubernetes提供的Namespace和Quota可实现资源的有效分配与隔离。Namespace能够为一组资源提供一种逻辑隔离方式,以便于集群对资源进行分类管理。Quota则负责限制每个Namespace在存储、CPU、内存等各维度的资源使用率,确保各 Namespace 中,资源使用始终处于均衡状态。
步骤 6:Gluster环境配置。对于每个参与Gluster集群的节点,设置hostname,于/etc/hosts文件中添加所有参与节点的IP地址以及其同hostname的映射关系。随后,在每个节点安装Gluster-server,通过默认包管理工具进行安装。操作阶段,可在Ubuntu环境中,使用apt命令:sudo apt-get install -y glusterfs-server。
步骤7:启动GLusterfu服务。于每个节点上启动GlusterFS服务,以确保服务在开机时实现自动启动,具体命令为:systemctl enable glusterd & systemctl start glusterd。
步骤8:构建集群。任选一节点,通过下列命令将其他节点加入集群内:gluster peer probe <节点hostname>。利用gluster peer status命令,可查询集群状态。随后,于任一个节点执行gluster volume create命令,创建Gluster卷。
步骤9:配置K8s下StorageClass。创建一个StorageClass,面向GlusterFS作为存储。在StorageClass定义文件内,type设置为glusterfs,parameters中将resturl设置为Heketi服务API地址。部署Heketi,用于管理GlusterFS集群的RESTful管理接口,其负责为集群提供用于创建、查询、删除和修改GlusterFS卷,最后创建K8s的PV与PVC。
(三)技术对比
在私有云平台中,vSAN和Kubernetes+Gluster隶属两种较为常见的分布式存储解决方案。本文从架构与兼容性、功能与易用性两个维度进行对比。
架构与兼容性方面,vSAN是VMware发布的分布式存储解决方案。该方案深度整合于VMWare虚拟化平台vSphere中,适合基于VMWare虚拟化技术的私有云环境。vSAN分布式存储拥有较好的性能与一致性。对比之下,Kubernetes+Gluster是一种应用更为广泛的解决方案,同时支持物理机、虚拟化以及容器环境,具有更广泛适用性。GlusterFS以及其他现代软件定义存储解决方案期间,通常都设计为同底层硬件独立的形式,因此,该方案可运行在任何Linux分发版上,且Kubernetes+Gluster架构更为灵活,无扩展性限制。
功能与易用性方面,vSAN在功能上更为丰富,如磁盘和网络故障重新配置等,同时通过vSphere Client进行管理,对于VMware用户而言,易用性、可视化和集成度都非常高。Kubernetes+Gluster的管理复杂性相比vSAN更高,操作阶段需要通过命令行工具或是API进行操作。然而,该方案结构简单,功能强大,相比vSAN具有更为灵活的配置,可满足各种私有云平台应用需求[4]。
五、结语
综合上分析,针对面向私有云平台的分布式存储应用策略进行研究,对基于vSAN的分布式存储方案、开源Kubernetes+Gluster分布式存储方案进行了详细研究。研究表明,Kubernetes+Gluster方案相比vSAN方案具有更强的灵活性、适用性,但作为成熟的分布式存储策略,两种方案各有优势,使用者还需根据私有云平台情况、实际应用需求合理选择,以便在满足企业私有云平台应用需求的同时节约经济成本。
参考文献
[1]邹文仲,邓力源,张高峰,等.基于调度云平台通用分布式架构实践[J].南方电网技术,2023,17(09):20-28.
[2]张利,刘洛川,李光.一种基于边缘计算的分布式高精度定位方法[J].长江信息通信,2022,35(02):34-42.
[3]桂晶,基于云端融合的三维计算机辅助设计系统研发[R].广东省,云浮清软海芯科技有限公司,2021-12-22.
[4]宋伟.基于OPENSTACK私有云平台上的HADOOP完全分布式环境应用研究[J].电脑知识与技术,2020,16(11):234-236.
作者单位:中国石油吐哈油田公司数智技术公司
■ 责任编辑:张津平、尚丹