CPFS与OSS数据同步实践-阿里云开发者社区

开发者社区> 弘闻> 正文

CPFS与OSS数据同步实践

简介: 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实现数据的定制同步和安全特性,我们可以实现一套兼顾本地集群文件系统的高性能和公共云对象存储的低成本的高性价比混合云存储解决方案。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
jQuery中的cache : false到底有什么用?
jQuery中的cache : false到底有什么用?
4 0
使用ehcache缓存页面、ExpiresFilter添加Expires头,大幅提升网站性能
使用ehcache缓存页面、ExpiresFilter添加Expires头,大幅提升网站性能
6 0
动手开发第一个 Cypress 测试应用
动手开发第一个 Cypress 测试应用
5 0
DataTables的服务器端(SpringMVC)分页模式(2)
DataTables的服务器端(SpringMVC)分页模式
7 0
Ajax传递复杂参数到服务器端的方法
Ajax传递复杂参数到服务器端的方法
6 0
高效能程序员的修炼札记:安全基础,保护用户数据
高效能程序员的修炼札记:安全基础,保护用户数据
4 0
加强代码测试
加强代码测试
5 0
推荐,Java Emoji Converter(Emoji表情转换工具)
推荐,Java Emoji Converter(Emoji表情转换工具)
4 0
单页面 Web 应用(Single Page Application,SPA)的工作原理介绍
单页面 Web 应用(Single Page Application,SPA)的工作原理介绍
5 0
JEECG快速开发平台入坑报错解决第一波——pom.xml中jeecg的依赖jar包没导入成功
JEECG快速开发平台入坑报错解决第一波——pom.xml中jeecg的依赖jar包没导入成功
7 0
+关注
2
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载