Skip to main content

常见问题

JuiceFS 可以用于生产环境吗?

当然!JuiceFS 自 2017年发布正式商用版,已经运行在多家互联网和高科技企业的生产环境中。同时,JuiceFS 的每个版本在发布前都需要经过大量测试。

JuiceFS 是按照高可用的服务设计的,会自动在多个机器甚至可用区间复制,标准版承诺每月 99.95% 的可使用时间。JuiceFS 的可用性同时依赖于所使用的对象存储的可用性,具体的服务 SLA 请参考各个公有云的文档。

此外,JuiceFS 还支持自动复制数据到另外一个不同云或者区的对象存储,以达到更高的可用性和可靠性。

JuiceFS 支持哪些公有云和服务区?

已经支持 AWS、Google Cloud、微软 Azure、阿里云、腾讯云、UCloud、青云、七牛云、百度云、金山云、网易云、京东云、DigitalOcean 的所有服务区。

JuiceFS 可以支持任何有 Linux 虚拟机和对象存储的云,如果您要使用公有云或服务区还没支持,请联系我们开通。

JuiceFS 也支持在企业自己公有云 VPC 和机房中独立部署,请与我们联系。

JuiceFS 可以在哪些操作系统中使用?

JuiceFS 是通过 FUSE 实现的,可以在 Linux、*BSD、macOS 和 Windows 上使用。大多数 Linux 和 BSD 发行版已经内置了 FUSE 模块,详见「系统要求」

JuiceFS 的性能如何?

JuiceFS 是一个分布式文件系统,元数据和数据分离。元数据访问延时取决于挂载点到 metadata server 之间的延时,在同一个可用区下通常 1-3ms,数据访问延时取决于对象存储的延时,通常 20-100ms。

JuiceFS 内置多级缓存(主动失效),一旦缓存预热好,访问的延时和吞吐量非常接近单机文件系统的性能(FUSE 会带来少量的开销)。

详细性能数据请见「性能」下方系列文档。

JuiceFS 支持随机读写吗?

支持,包括通过 mmap 等进行的随机读写。目前 JuiceFS 主要是对顺序读写进行了大量优化,随机读写的性能也在持续优化当中。

数据更新什么时候会对其他客户端可见?

详见「元数据一致性」「数据一致性」

怎么快速地拷贝大量小文件到 JuiceFS?

考虑在挂载时临时启用 --writeback 选项,它会先把数据写入本机的缓存,然后再异步上传到对象存储,会比直接上传到对象存储快很多倍。使用 --writeback 带来一些注意事项,详见「客户端写缓存」

另外,我们推荐用 Juicesync 这款工具来与 JuiceFS 进行数据交换。

可以用 root 以外的用户挂载吗?

可以, JuiceFS 可以由任何用户挂载。JuiceFS 会根据情况调整配置,比如 root 用户挂载时,缓存目录默认为 /var/jfsCache/VOL_NAME,但若以非 root 用户挂载,则变为 ~/.juicefs/cache

存储容量是怎么计算的?

JuiceFS 使用量是文件系统中所有对象的大小之和,每个文件和目录有一个 4KB 最小计费单位(类似 Azure Data Lake Store 的计费方法),推荐尽量使用大文件来存储数据以节省成本,同时也能提高访问性能。

JuiceFS 会实时更新文件系统和目录的大小,可以在我们的 Web 控制台或者命令行中查看。无论用何种方法查看用量,目录大小都已经包含了其中所有文件(同样按照最小 4KB 计算)。因此如果是命令行查看,注意不能使用类似 du 的工具进行统计,如果运行 du,得出的将是一个经过重复统计的错误值。

如何在低带宽场景下使用 JuiceFS?

客户端需要通过网络 I/O 与对象存储交换数据,如果 JuiceFS 客户端处于低带宽节点,势必无法获得良好的使用体验。如果你必须要在网速慢的机器上使用 JuiceFS,这里是一些优化选择以及注意事项:

  • 挂载时启用 --writeback 实现将文件异步写入对象存储,但相应地也带来特定情况下丢数据的风险,详见「客户端写缓存」

  • 为该节点禁用后台任务——每个 JuiceFS 客户端默认都启用后台任务,后台任务中会执行碎片合并(Compaction),而如果节点网络状况太差,则会降低系统整体性能。更糟的是如果该节点还启用了 --writeback,则容易出现碎片合并后上传缓慢,导致其他节点无法读取该文件的危险情况。

    为特定客户端禁用后台任务,需要在控制台“访问控制”页面,创建新的“客户端访问令牌”,并取消勾选“允许后台任务”,最后用新生成的 Token 来执行客户端挂载。