CPFS与OSS数据同步实践

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: CPFS作为高性能集群文件系统,主要满足有高带宽、高IOPS存储要求的业务需要,其单位容量成本相对较高。如何提供一个兼顾性能和价格优势的方案是CPFS方案关注的重点,本篇文章通过CPFS HPT-AFM功能介绍和实践演示CPFS与阿里OSS数据同步,结合OSS的价格优势、CPFS的高性能和数据的冷热特性实现一个高性价比的存储实践方案。

1,说明
CPFS同步到OSS是使用其AFM(Active File Management)机制,AFM可以实现2个数据源之间的数据共享,其数据共享有如下四种模式:

image.png
CPFS与AliOSS默认使用的是Single Writer模式,其中OSS作为Home端,CPFS作为Cache端,在Single Writer模式下,Cache端数据会自动同步给Home,但是不会从Home上检查更新。
2,实践环境
为验证该功能实现,本次实践基于一套支持OSS数据同步功能的CPFS线下环境,其中2台存储节点能访问公网,公网总带宽为20Mbps,目前在公共云上的CPFS暂时还不支持同OSS的数据同步,具体发布时间依赖负责公共云CPFS产品团队官宣。
3,实践命令&结果
3.1 配置
在配置CPFS与OSS之间的数据同步之前,首先需要完成本节操作,具体如下:
设置CPFS gateway节点,用于CPFS同OSS的数据传输,可设置多个用于并行传输:
mmchnode –gateway -N cnode1,cnode2
设置OSS的AK:
mmafmcoskeys $oss_bucketname set $oss_accesskey_id $oss_accesskey_secret
验证AK正确性:
mmafmcoskeys $oss_bucketname get
设置CPFS同OSS的连接配置:

mmafmcosconfig $cpfs-devicename $oss_bucketname --map-endpoints http://oss-cn-beijing.aliyuncs.com --cleanup --vhb
该操作包括了在CPFS上建立一个对应OSS bucketname的fileset及配置AFM参数等过程,--map-endpoints参数后接OSS的外网endpoint。
3.2 从OSS上下载数据
在默认SW模式下,OSS作为Home端,CPFS作为Cache端,CPFS端数据会自动同步给OSS,但是不会从OSS上检查更新,如果需要从OSS上拉取数据,需要执行如下命令:
下载对应bucket的所有数据到cpfs目录:
mmafmcosctl $cpfs-devicename $oss_bucketname $cpfs_path download --all
如果需要限定下载的object,可以通过--object-list来指定object下载,操作如下:
mmafmcosctl $cpfs-devicename $oss_bucketname $cpfs_path download --object-list $object_filename
指定要拉的object,采用如下方式:
cat ./file2
test2
test2/node.cfg
mmafmcosctl cpfs hpttest1 /cpfs/hptest1/ download --object-list ./file2
注意:对已经download过,但是在文件系统上删除的,再执行download操作时,这些文件不会被二次拉取。
3.3 从CPFS往OSS同步数据
默认情况下,在执行mmafmconsconfig命令后,在设置的fileset目录下创建和修改的数据会自动同步到OSS对应bucket中。如果需要控制同步到OSS的文件,可以通过设置policy来限定,具体操作如下:
编写policy文件,如下示例policy文件的规则功能更描述:hpt-rule1:将后缀为.txt的文件留在cpfs本地,不上传到OSS中;hpt-rule2:将目录test1下的文件留在本地,不上传到OSS中;
cat /home/test.policy
RULE 'hpt-rule1' set pool 'system' FOR fileset
('hpttest1') OPTS('local') where name like '%.txt'
RULE 'hpt-rule2' set pool 'system' FOR fileset
('hpttest1') OPTS('local') where name like 'test1'
RULE default set pool ‘system’
如下命令实现应用policy规则到CPFS文件系统:
mmchpolicy cpfs /home/test.policy
验证CPFS到OSS的同步效果:
验证文件的结果:
.txt后缀的文件没有被上传到OSS,.json后缀的可以被上传到OSS上。
image.png
验证目录的结果:
test1目录下新建的文件没有被上传到OSS,test3目录由于没有规则约束,可以被上传到OSS上。
image.png
验证并行传输的效果:
dd if=/dev/zero of=/home/test1G bs=1M count=1024;
拷贝1G数据到cpfs对应目录,查看文件上传到OSS花费时间407s,平均带宽2.516MB/s,基本可以占满20Mbps的公网带宽:
image.png
3.4 CPFS 与OSS数据互通
部分情况下,需要实现CPFS与OSS之间的数据自动互通,这时可以在执行mmafmcosconfig时配置mode为iw,这时,OSS作为Home端,CPFS作为Cache端,两端都支持读写,Cache端既可推数据给Home端,也可以从Home上获取更新,在Cache上获取的是Home端的元数据。
配置方式如下:
mmafmcosconfig cpfs hwodpstest --map-endpoints http://oss-cn-beijing.aliyuncs.com --cleanup –vhb --object-fs --mode iw
在CPFS上对应bucket的fileset目录下ls时即触发download metadata动作,执行du可查看到文件实际大小为0,只有在做类似cat操作时,才显示实际大小。
示例如下:
OSS上数据其元数据自动同步到CPFS,在cat后显示实际内容,CPFS数据也能自动同步到OSS;
image.png
4,结论
通过以上实践,我们验证了本地高性能文件系统CPFS与公共云对象存储OSS的线下线上数据互通,结合CPFS的policy实现数据的定制同步和安全特性,我们可以实现一套兼顾本地集群文件系统的高性能和公共云对象存储的低成本的高性价比混合云存储解决方案。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
2月前
|
分布式计算 DataWorks 调度
oss数据同步maxcompute报错
在使用阿里云DataWorks同步OSS数据至MaxCompute时,遇到“Input is not in the .gz format”的报错。问题源于目标目录中存在一个空文件,导致同步时识别错误。
|
4月前
|
分布式计算 关系型数据库 数据处理
美柚与MaxCompute的数据同步架构设计与实践
数据处理与分析 一旦数据同步到MaxCompute后,就可以使用MaxCompute SQL或者MapReduce进行复杂的数据处理和分析。
|
4月前
|
分布式计算 关系型数据库 MySQL
MySQL超时参数优化与DataX高效数据同步实践
通过合理设置MySQL的超时参数,可以有效地提升数据库的稳定性和性能。而DataX作为一种高效的数据同步工具,可以帮助企业轻松实现不同数据源之间的数据迁移。无论是优化MySQL参数还是使用DataX进行数据同步,都需要根据具体的应用场景来进行细致的配置和测试,以达到最佳效果。
|
6月前
|
存储 数据管理 Java
基于OSS、NFS构建高性能可扩展的遥感智能解译系统实践之路
该文探讨了构建高性能、可扩展的遥感智能解译系统的架构演进过程。作者强调架构应根据业务场景而定,而非追求单一的“最佳”架构。文章分为五个部分,介绍了从初步的业务场景分析到逐步优化的架构设计。 1. 业务场景描述了服务于地理信息行业的遥感数据管理平台,包括数据湖和遥感智能解译系统的功能和架构设计。 2. 初代系统解决了数据管理和智能解译的基本需求,但存在数据同步效率低下的问题。 3. 自动化阶段通过消息推送和数据接收模块减少了人工干预,将处理时间减半,但仍存在效率和稳定性问题。 4. 高性能阶段引入数据订阅/推送和数据接收Agent,实现了稳定、高速的数据传输,性能提升了6倍。
48819 2
|
6月前
|
存储 分布式计算 Kubernetes
PVC、Ceph、HDFS、CPFS、NFS和OSS
PVC、Ceph、HDFS、CPFS、NFS和OSS都是分布式存储系统,下面是它们的详细介绍: 1. PVC(Persistent Volume Claim):PVC是Kubernetes中的一个资源请求,用于声明在集群中存储持久化数据的需求。PVC可以被用于存储应用程序的数据,例如数据库、日志文件等。PVC由Kubernetes集群管理员创建,并在Kubernetes集群中进行分配。
587 0
|
存储 运维 监控
OSS生命周期管理与访问行为分析实践
认证考试:OSS生命周期管理与访问行为分析实践
|
前端开发 API 开发工具
阿里云oss开发实践:大文件分片、断点续传、实时进度 React+Node+Socket.IO
阿里云oss开发实践:大文件分片、断点续传、实时进度 React+Node+Socket.IO
1558 2
|
SQL 存储 运维
使用CloudLens for OSS构建Bucket资产可观测性实践
本文介绍通过CloudLens for OSS计量日志的自定义查询分析,来构建不同Bucket之间资产趋势可观测性对比分析。
193 0
|
存储 SQL JSON
使用SLS统计分析三方CDN回源OSS月95带宽实践
本文介绍通过使用阿里云日志服务SLS,对存储在SLS中的三方CDN回源阿里云OSS的监控日志数据,进行自定义查询分析之后得到按照不同运营商、不同业务类型(CND)纬度下,回源OSS的带宽月95量级数据,用于业务统计分析。
469 0
|
小程序 JavaScript 前端开发
微信小程序:阿里云OSS直传实践-PHP实现服务端签名
微信小程序:阿里云OSS直传实践-PHP实现服务端签名
931 0
微信小程序:阿里云OSS直传实践-PHP实现服务端签名