跨区数据复制

JuiceFS 支持跨云跨区的数据复制,可以通过异步方式将数据复制到另一个区域或者其他云服务的对象存储。

为叙述方便,我们下面将创建文件系统时指定的服务器区域称作“主要区域”。启用数据复制需要为文件系统再指定一个目标区域,可以与主要区域是同一个云服务商,也可以不同。

工作原理

以主要区域写入,目标区域读取为例,数据复制的工作方式如下图所示:

_images/replication.png

从两个区域访问时都会访问同一个元数据服务,都可读可写。

在数据写入时,数据会优先写入到当前区域的对象存储,成功后则认为数据写入完成,再异步复制到远端的对象存储。

读数据时,都会优先从当前区域的对象存储,如果不存在(还未同步完成),则会从远端区域的对象存储读取(大多数情况下需要跨公网,性能会受到影响)。

目标区域写入,主要区域读取的数据流向如下图所示:

_images/replication-flip.png

受网络条件影响,主要区域内访问速度一般会更快,目标区域相比之下会慢一点(可以通过 --metacache 来启用元数据缓存提高读数据的性能)。

配置方法

在文件系统的设置页面可以启用数据复制,选择一个目标云服务和区域,保存设置之后,通过客户端重新挂载文件系统即可生效。

挂载说明

在主要区域使用时,请使用默认的配置挂载,在目标区域挂载时则需要加上 --flip 参数,表示优先写入目标区域的对象存储,再异步复制到主要区域的对象存储。

数据一致性

因为两个区都是使用同一个元数据服务,看到的会是完全一样的状态。对象存储中的数据使用唯一的 key,所以不用担心数据的一致性问题。

计费方式

跨区数据复制功能目前向所有用户免费提供。启用之后不产生额外的元数据, JuiceFS 收取的费用与启用之前相同。