跨区域复制(Bucket Cross-Region Replication) 是跨不一样区域的Bucket自动、异步复制Object,它会将对源Bucket中的对象的改动(除删除操做)同步到目标Bucket。跨区域复制功能可以很好的知足用户数据复制或者提供Bucket跨区域容灾的需求。目标Bucket中的对象是源Bucket中对象的精确副本,它们具备相同的对象名、元数据以及内容。c++
当您有如下须要时,设置跨区域复制可能对您有所帮助:git
Demo演示示意图:github
在华北-北京
对象存储新建源Bucket(空间)- asource,在华东-宿迁对象存储新建目标Bucket;
curl
在对象存储源Bucket上开启跨区域复制
的功能,目标Bucket选择华东-宿迁
的Bucket,其余选项根据本身须要选择;异步
跨区域复制
成功开启后以下图所示:测试
在华北-北京
新建一台云主机,使用S3fs将源Bucket挂载到云主机上,而后用dd命令
生成100个小文件到源Bucket里;url
3.1 云主机配置spa
地域 | 操做系统 | 配置 | 带宽 | 云主机命名 |
---|---|---|---|---|
华北-北京 | CentOS 7.4 64位 | 2核4G | 2Mbps | pocenv-hcc-hb-test |
3.2 挂载Bucket操作系统
A. 安装依赖包3d
[root@pocenv-hcc-hb-test ~]# yum install automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-devel make openssl-devel -y
B. 安装以及编译
[root@pocenv-hcc-hb-test ~]# git clone https://github.com/s3fs-fuse/s3fs-fuse.git [root@pocenv-hcc-hb-test ~]# cd s3fs-fuse [root@pocenv-hcc-hb-test s3fs-fuse]# ./autogen.sh [root@pocenv-hcc-hb-test s3fs-fuse]# ./configure [root@pocenv-hcc-hb-test s3fs-fuse]# make && make install
C. 建立密码文件
[root@pocenv-hcc-hb-test s3fs-fuse]# echo Access_Key_ID:Access_Key_Secret > ~/.passwd-s3fs [root@pocenv-hcc-hb-test s3fs-fuse]# chmod 600 ~/.passwd-s3fs
Access_Key_ID:Access_Key_Secret获取方式:https://uc.jdcloud.com/account/accessKey
D. 挂载对象存储到本地目录/hcc(目录名称自定义)
[root@pocenv-hcc-hb-test s3fs-fuse]# cd [root@pocenv-hcc-hb-test ~]# mkdir /hcc [root@pocenv-hcc-hb-test ~]# s3fs asource /hcc -o passwd_file=~/.passwd-s3fs -o url="https://s3.cn-north-1.jcloudcs.com"
mkdir:建立hcc文件夹做为本地挂载目录 s3fs:手动挂载命令,其中bucketname为bucket名称、/hcc是本地挂载路径、passwd_file为密码文件位置、url为京东云对象存储兼容S3域名(请输入空间的Bucket域名)
E. 查看挂载结果
[root@pocenv-hcc-hb-test ~]# df -Th
3.3 生成测试文件
经过dd命令在所挂载的对象存储里生成文件(咱们这里生成小文件
)
[root@pocenv-hcc-hb-test /]# cd /hcc [root@pocenv-hcc-hb-test hcc]# ll total 0 [root@pocenv-hcc-hb-test hcc]# for ((i=1;i<=100;i++));do dd if=/dev/zero of=block_$i.file bs=1k count=1024;done
这个命令是在所挂载的对象存储Bucket里生成100个大小为1M的小文件。
生成测试文件过程的部分截图以下:
在源Bucket-asource查看文件生成结果:
在目标Bucket-btarget查看异地复制结果:
如上,测试完成。