本文来自微信公众号“twt企业IT社区(talkwithtrend.com)”,【作者】顾黄亮,金融企业云计算专家,畅销书《DevOps权威指南》和《技术赋能 数字化转型的基石》作者,工信部企业数字化转型IOMM委员会特聘专家、中国信通院可信云标准特聘专家、中国信通院低代码/无代码推进中心特聘专家、江苏银行业和保险业金融科技专家委员会候选专家,拥有丰富的企业级DevOps实战经验,专注企业IT数字化的转型和落地,致力于企业智慧运维体系的打造。
【摘要】存储资源部署与交付的重要性对于企业来说不言而喻,随着DevOps以及基础架构技术的不断发展,相关开源工具也具备辅助存储设施在部署和交付等场景中的能力,提升效率,降低成本,增加数据的安全性和可靠性。本文介绍了存储管理过程中的常见的应用场景和工具,重点分享了开源工具在存储管理过程中应用的典型案例。
一、前言
存储资源部署与交付的重要性对于企业来说不言而喻,可以为企业提供高效的数据存储和处理能力,帮助企业更好地管理数据,提高数据处理效率和准确性。同时,存储资源部署与交付的好坏直接影响到数据的安全性和可靠性,对于企业而言,有很大的挑战性。
随着DevOps以及基础架构技术的不断发展,相关开源工具也具备辅助存储设施在部署和交付等场景中的能力,提升效率,降低成本,增加数据的安全性和可靠性。
二、存储资源部署与交付的作用
首先,存储资源部署与交付可以为企业提供高效的数据存储和处理能力。随着企业业务的发展,数据量不断增加,对于存储资源的需求也不断增长。如果存储资源部署与交付不当,会导致数据存储效率低下,数据处理速度缓慢,影响企业的业务运作。因此,存储资源部署与交付需要高效、稳定和可靠,才能支持企业的高速发展。
其次,存储资源部署与交付还可以提高数据处理效率和准确性。在数据处理过程中,存储资源部署与交付的效率和准确性直接影响到数据处理的效率和质量。如果存储资源部署与交付不当,会导致数据处理速度缓慢,数据处理错误率高等问题。因此,存储资源部署与交付需要高效、稳定和准确,才能支持企业的数据处理工作。
最后,存储资源部署与交付还可以提高数据的安全性和可靠性。在数据存储和处理过程中,存储资源部署与交付的安全性和可靠性直接影响到数据的安全性和可靠性。如果存储资源部署与交付不当,会导致数据泄露、数据损坏等风险。因此,存储资源部署与交付需要安全、可靠,才能保护企业的数据安全。
三、存储管理过程中的常见的应用场景和工具
1.部署分布式存储系统
开源工具是分布式存储系统的核心,可以通过不同的开源工具来实现分布式存储系统。常见的开源工具有Ceph、Hadoop、Cassandra、MongoDB等。部署分布式存储系统时,需要考虑软件的特点、性能、可扩展性、可靠性等因素,选择合适的工具组合。常见有第三方产品部署、云存储服务部署、分布式存储协议部署三种部署方式。
第三方产品是分布式存储系统的另一种实现方式,常见的第三方产品有NetApp ONTAP、HPE存储系统、SANtricity等。云存储服务是新的分布式存储系统的实现方式,常见的云存储服务有Amazon S3、Azure Blob Storage、GoogleCloud Storage等。分布式存储协议是分布式存储系统的协议层,常见的分布式存储协议有HDFS、CephFS、Swift等。部署分布式存储系统时,需要考虑协议的特点、性能、可扩展性、可靠性等因素,选择合适的分布式存储协议。
2.实现数据备份和容灾
数据安全在企业中越来越被受到重视,数据的备份和容灾是最直接也是最可靠的一种方式,对于存储管理而言,数据的备份和容灾也是最直接的功能,保证数据的高可靠性和高可用性,目前也有部分的工具和软件支撑数据备份。
除了常见的光盘、磁带等介质进行数据备份外,云存储或分布式存储都有第三方工具或者开放式API支持多种数据备份方式,常见的有软件复制和云灾备方式。
复制软件可以将数据复制到多个位置,当主服务器出现故障时,可以从备份服务器中恢复数据。常用的复制软件有Symantec Backup Exec、Veritas Backup Exec等。云灾备服务可以将数据复制到多个云服务器中,当主服务器出现故障时,可以从备份服务器中恢复数据。常用的云灾备服务有Amazon S3、Azure Blob Storage、Google Cloud Storage等。
3.构建存储资源池
构建存储资源池是指将多个存储设备组成一个资源池,统一管理、分配和调度,以提高存储系统的性能和可靠性。通常,可以采取开源工具的方式构建存储资源池,大致有以下步骤。
选择核心开源软件来构建存储软件时,需要考虑这部分开源软件的网络安全风险,及应对策略,首先我们选择好适合自己需求的存储软件,如Ceph、OpenStack Cinder、OpenStack Swift等;根据所选存储软件的要求,安装和配置存储软件,包括安装存储硬件、配置网络、设置存储参数等;将多个存储设备部署到存储资源池中,并配置共享存储和存储网络,配置存储池的参数,如存储容量、访问模式、存储性能等;通过存储软件的管理界面或命令行接口,对存储资源池进行管理,包括添加、删除、修改存储设备,设置存储参数等。通过开源工具构建存储资源池,可以提高存储系统的性能和可靠性,为企业提供高性能、高可靠性的存储服务。
4.实现数据自动分层
当遇到数据量较大或出现性能瓶颈的情况时,数据分层是解决存储资源分配和性能调优的有效方法。通常,可以采取开源工具的方式实现数据自动分层,大致有以下步骤。
安装存储软件和配置共享存储和存储网络参考构建存储资源池方式。通常,在实际的工作中,可以通过存储软件的管理界面或命令行接口,设置数据自动分层规则,例如,将热点数据存储在性能较好的存储设备上,将冷数据存储在性能较差的存储设备上;通过存储软件的管理界面或命令行接口,对数据自动分层进行管理,包括添加、删除、修改存储设备,设置存储参数等;通过存储软件提供的监控和性能分析工具,实时监控存储系统的性能和负载情况,对存储资源进行优化和调整,以提高存储系统的性能和可靠性。
5.实现存储资源的动态分配
存储资源的动态分配可以提高存储系统的性能和可靠性,降低存储系统的维护成本,通常可以通过开源工具实现对存储资源的动态分配和管理,大致有以下步骤。
首先配置动态分配策略,通过存储软件的管理界面或命令行接口,设置存储资源的动态分配策略,例如,设置存储资源的基本分配模式、存储资源的优先级、存储资源的生命周期等;然后对动态分配的策略进行管理,通过存储软件的管理界面或命令行接口,对存储资源的动态分配进行管理,包括添加、删除、修改存储资源,设置存储参数等。最后进行过程的监控和优化,通过存储软件提供的监控和性能分析工具,实时监控存储系统的性能和负载情况,对存储资源进行优化和调整,以提高存储系统的性能和可靠性。
6.实现存储设备的统一管理
在很多企业,有多套不同型号的存储设备,也有多种存储集群的管理方式,在实际管理的过程中使用较为不方便,因此可选择开源工具的方式对存储设备进行集约化管理。通常情况下,存储设备的统一管理,并不是对存储设备的直接管理,而是对存储服务的管理,如数据备份恢复、数据加密、数据分类和数据监控,还包括存储设备的监控采集、告警的集约处理。
四、开源工具在存储管理过程中的常见案例
在存储的自动化管理场景中,主要考虑面向业务的存储服务交付。如虚拟机相关文件系统、NFS相关文件系统、数据库表空间相关文件系统、存储服务的自动化扩容、以及存储坏盘故障预测场景。
1.虚拟机存储的自动化配置
很多企业并没有采取容器,而是选择虚拟机的方式,因此需要解决虚拟机的批量部署问题。在虚拟机文件系统的自动化设计上,以OpenStack为例,选择Cinder模块接口、Shell脚本以及Ansible工具结合的方式,可以实现规模化、自动化的虚拟机文件系统的初始化,简要设计逻辑如图1所示。
图1 虚拟机文件系统自动化设计逻辑
第一步调用OpenStack Nova模块接口,创建计算资源;第二步调用OpenStack Cinder模块接口,创建存储资源;第三步调用批量自动化工具,在虚拟机上通过Shell脚本将硬盘初始化,创建卷组、逻辑卷到可用的文件系统。
2.NFS存储自动化配置
NFS文件系统用在多个用户之间共享公共文件系统,在业务规模较大时,同一个NFS需要挂载的节点多,既需要考虑访问安全性,又需要考虑管理的便捷性。同样以OpenStack为例,基于Manila模块接口、Shell脚本以及Ansible工具相结合,实现NFS文件系统挂载,简要设计逻辑如图2所示。
图2 NFS文件系统自动化设计逻辑
该方案同时支持新增NFS白名单及挂载功能,满足业务的纵向扩展。第一步调用OpenStack Manila接口,创建NFS目录创建;第二步调用OpenStack Manila接口,设置NFS白名单;第三步调用OpenStack Neutron接口,实现NFS网络访问开通;第四步调用批量自动化工具,在虚拟机上通过Shell脚本实现NFS目录挂载。
3.数据库表空间存储自动化配置
数据库高IO的特性,在选择存储时,不同于计算节点采用的NAS存储方案,一般选择IO性能更高的SAN、SSD或本地磁盘的存储方案。基于Kubernetes的数据库容器化设计与SAN、SSD或本地磁盘封装接口结合,具备极好的健壮性和可靠性,可以满足数据库的高可用及性能要求,简要设计逻辑如下。
在面对数以千计的数据库需求时,既能实现表空间的自动纵向扩容,还支持实例规格的自动纵向扩容。第一步调用Kubernetes接口,初始化数据库容器;第二步调用封装的磁盘接口,执行SAN、SSD或本地磁盘的存储分配;第三步调用批量自动化工具,通过Shell脚本实现容器的文件目录挂载及数据库初始化;第四步调用批量自动化工具,搭建数据库复制关系。
4.云平台存储容量自动化配置
在企业日益讲究成本及精细化运维管理的背景下,云平台存储的容量动态管理能力,是云平台存储必须具备的功能之一。通过云监控与云平台存储容量的整合,实现基于容量数据的存储全自动化扩容。以上提到的虚拟机存储、NFS存储、数据库表空间存储,均支持自动化扩容,简要设计逻辑如下。
云平台存储的容量管理,按照最小化存储资源交付,一方面实现了存储成本的节约,避免浪费;另一方面与监控及容量管理的结合,能够及时满足业务发展的需求。第一步云监控实时监控文件系统使用情况;第二步基于容量水位,自动推送云平台存储扩容策略;第三步基于自动化流程,实现存储服务的自动化扩容。
5.存储坏盘故障预测
传统的故障预测方法主要基于固定的阈值和经验判断,存在明显的限制:传统方法只能在故障已经发生或接近发生时才采取行动,无法预测性地防止故障;基于阈值的警报往往容易误报,因为某些参数可能因正常使用而产生波动;传统方法通常需要大量的人工干预,增加管理成本。
相比之下,智能算法的引入为存储坏盘故障预测带来诸多可能性,利用大数据和机器学习技术,其强大的学习和自适应能力可以更好地利用和分析这些多样化的数据,从海量的硬盘驱动器数据中提取有价值的信息,进而更加准确地进行故障预测。
模型所需数据为S.M.A.R.T.(Self-Monitoring Analysis and Reporting Technology,自我监测、分析及报告技术,即一种自动的硬盘状态检测与预警系统和规范)数据,主要指硬盘运行过程中的指标值。在数据预处理阶段,由于并非所有原始属性都是机器学习模型的可用特征,因此需要先去除冗余和不相关的特征并选择与预测结果相关的特征,然后对于空缺的数据进行向前补全。
同时,故障盘最后两周的样本均为潜在故障样本(预示着该硬盘可能随时会发生故障),即需要将最后两周的样本设置为故障盘样本标签。最后,二维数据类图构建则是将时间作为第二维度(SMART属性作为第一维度),使用滑动窗口的方式,构建出二维数据图。经过此阶段处理能够保持SMART数据的时间局部性,有利于磁盘故障预测。最后将得到的数据进行数据划分,分别组成训练集、验证集和测试集用于模型训练和评估,相关流程如图3所示。
图3 硬盘状态检测与预警流程
五、总结
随着业务发展,对于存储资源的需求不断增长,这些存储资源部署与交付的效率和可靠性显得尤为重要。同时,存储资源部署与交付的好坏直接影响到业务的顺利开展和稳定性,最终影响整个业务流程的效率和质量,因此需要选择合适的开源工具辅助我们在存储管理和存储服务提供的工程中进行降本增效和科学管理。