版本 更新
本文档记录 JuiceFS 云服务的版本发布历史,如果你想了解 JuiceFS 社区版的版本发布历史请查看 GitHub。
JuiceFS 客户端保持良好的向前、向后兼容性,但对于大版本刚刚发布之时(对于 JuiceFS 而言,5.1 → 5.2 就属于大版本更新),新版可能存在少量兼容性问题。如果需要回滚大版本,请参考 juicefs version
JuiceFS 5.2.11 (2025/8/21)
- 改进
- warmup: 开启 debug 日志时周期性打印进度信息
- Java SDK: 自动续期 Kerberos TGT
JuiceFS 5.2.10 (2025/8/13)
- 改进
- 优化预读策略,使其在并发读情况下能更好地均衡内存使用
- Bug 修复
- 修复旧版本客户端访问分布式缓存的兼容性问题
- Windows: 修复在后台运行时,整型参数可能未正确应用的问题
JuiceFS 5.2.9 (2025/8/7)
- 改进
- 在读写混合场景下更好地均衡内存使用,避免读放大
JuiceFS 5.2.8 (2025/8/1)
- 改进
- 支持可写镜像集群的客户端更新 atime
- Bug 修复
- Windows: 修复在列出 UID/GID 时,客户端可能崩溃的问题
JuiceFS 5.2.7 (2025/7/28)
- 改进
- 优化
fstatfs
的性能,避免其被频繁调用时占用大量 CPU - Windows: 支持将文件系统挂载到非盘符的路径
- 优化
- Bug 修复
- sync: 修复同步后文件的 mtime 被错误修改成当前时间的问题
JuiceFS 5.2.6 (2025/7/25)
- Bug 修复
- 修复解析 fstab 中缓存类型为
memory
的条目时,缓存路径错误的问题 - 修复
cache load duration
指标未正确统计的问题
- 修复解析 fstab 中缓存类型为
JuiceFS 5.2.5 (2025/7/9)
- 改进
- 在数据缓存文件中记录文件名称,加强一致性校验
- SDK: 根据元数据缓存量来自动调节清理速度,避免高压情况下内存占用过多
- SDK: 改进寻找默认配置文件的实现,使其能兼容更多平台
- Windows: 支持同一个文件系统在节点上被多次挂载
- Bug 修复
- CSI: 修复创建目录时可能因并发竞争导致误报错的问题
- gateway: 修复元数据服务使用可写镜像集群时,创建用户失败的问题
JuiceFS 5.2.4 (2025/6/24)
- 改进
- 增大通过
lookup
和getattr
请求建立元数据缓存的阈值 - object/oss: 支持通过环境变量来解析
regionId
- Windows: 支持访问回收站
- 增大通过
- Bug 修复
- objbench: 修复测试方法的耗时计算策略
JuiceFS 5.2.3 (2025/6/19)
- 改进
- 不再让客户端去自动预热子分区的根目录
- debug: 改进对指定路径是否是 JuiceFS 挂载点的判断,避免误判或长时间挂起
- debug: 在收集其他会话的诊断信息时允许等待更久的时间,避免超时错误
- restore: 恢复文件遇到冲突时自动为其添加数字后缀
- Bug 修复
- gateway: 修复网关运行过程中被调整成只读后请求可能陷入死循环的问题
JuiceFS 5.2.2 (2025/6/12)
- 新功能
- gateway: 支持只读模式
- 改进
- gc: 批量获取删除请求的 QoS 额度以减小锁竞争
- gc: 改进进度条显示
- gc: 禁用数据块缓存和后台任务
- gc: 忽略子分区的临时硬链接 和临时待删除文件
- gc: 在镜像文件系统执行时只检查镜像端的对象存储
- debug: 收集其他会话的诊断信息时也支持传递命令参数
- 将长期运行任务的
GOMAXPROCS
限制从 16 提升到 32
- Bug 修复
- 修复读取大目录时如果该目录中有文件变动可能导致数组索引越界的问题
- 修复在使用共享块设备时,客户端重连后块设备可能未正确连接的问题
- debug: 修复因误判进程是否在后台运行而导致访问日志未收集的问题
- sync: 修复集群模式下工作节点实际运行的二进制可能不正确问题
- Windows: 修复文件属性缓存等多个缓存问题
- Hadoop SDK: 修复因进程中创建多个客户端实例导致缓存不一致的问题
JuiceFS 5.2.1 (2025/5/27)
- Bug 修复
- 修复客户端与某些旧版本 meta 不兼容的问题
JuiceFS 5.2.0 (2025/5/24)
- 新功能
- Windows 客户端 (beta)
- 完善共享块存储特性,新支持多个客户端节点通过网络共享访问同一个块存储
- 新支持通过控制台主动推送指定客户端进行版本升级和配置更新
- 支持
all_squash
功能,用来将访问用户都映射成同一个用户 (beta) - 支持通过
O_TMPFILE
标记来创建不可见的临时文件 - 新增
--no-bgjob
选项让客户端主动禁用后台任务 - 新增
--schedule-priority
选项来设置系统调度的优先级 - 新增
--cache-items
选项来限制缓存块的总数 - import: 新增
--files-from
选项来允许用户直接给出需要导入的文件列表 - clone: 新增
--max-batch-size
选项来调整每次内部请求可克隆的最大文件个数 - rmr: 新增
--batch-limit
选项来调整每次内部请求可删除的最大文件个数 - debug: 新增
--session
选项来收集远程客户端的 debug 信息 - sync: 新增
--check-change
选项检查拷贝的文件是否变化 - sync: 新增
--start-time
和--end-time
选项来根据 mtime 筛选需要同步的文件
- 改进
- 完善 Python SDK 的兼容性,改进性能
- 应用多路复用、零拷贝和 directIO 等技术,改进分布式缓存的网络性能
- 通过改进排序来提升读取目录的性能
- 限制只读打开的文件个数到 10000,避免业务泄漏导致性能问题
- 限制读请求使用的内存总量,避免特定情况下的 OOM
- 改善读取特定规模文件,以及 4MiB 随机读等场景下的读放大问题
- 对预取请求去重,避免读放大问题
- 只在启用
--cache-large-write
时才会缓存大文件写入的数据 - 支持使用不同大小的缓存盘
- 默认关闭分布式缓存的压缩
- 合并申请请求,降低维护 QoS 对元数据服务的压力
- 允许通过配置文件来统一调整客户端是否启用 ACL 的行为
- 对 5.12+ 内核自动设置 low watermark 来提升网络读的性能
- 自动调整系统的透明大页模式为
defer
,降低在大内存机器上卡住的概率 - 允许内核缓存目录项查找不到的信息
- 启用内核的软链接缓存
- 镜像文件系统配置了双桶时,将写请求优先发往异地源端
- 为已使用的块设备添加自定义 header,用来检查其是否被 JFS 使用
- 添加了更多监控指标来更好地记录 FUSE 请求,分布式缓存请求,对象存储请求等的计数与耗时
- gateway: 支持为对象添加元数据信息
- auth: 默认开启 access key 和 secret key 的加密,且不再允许显式解密
- import: 自动创建中间目录时需要尊重
umask
配置 - load: 允许直接加载加密的元数据备份文件
- gc: 记录删除失败的对象个数和大小
- clone: 新增进度条显示功能
- 支持删除数据的全局限速
- Bug 修复
- 修复特定场景下可能读到旧数据的问题
- 修复
copy_file_range
大段内容时可能导致长度溢出问题 - 修复分布式缓存加减节点时可能导致节点丢失的问题
- 修复分布式缓存可能出现重复发送写请求的问题
- 修复文件名包含换行符导致
accesslog
解析失败的问题 - 修复
fstab
文件中使用逗号分隔缓存目录导致的歧义问题 - 修复启用数据复制时对象存储不可用导致数据块可能有泄漏的问题
- 修复被拆分目录的 ACL 可能异常的问题
- 修复
bench
/objbench
命令的带宽计算错误问题 - 修复
import
使用完整 bucket 名从同一个 bucket 导入后数据块不能缓存的问题 - 修复
clone
的路径不在同一个文件系统中时可能未被正确检测到的问题 - 修复
clone -d
删除 clone 时偶尔误失败的问题 - 修复 quantile 中 map 未正确加锁导致可能 crash 的问题
- 修复 p90 值更新慢和可能溢出的问题
- 修复 SDK 在写入过程中 mtime 可能不更新的问题
- 修复 SDK 中 open 的统计计数没更新的问题
JuiceFS 5.1.20 (2025/5/19)
- 改进
- 在操作系统上没有
fusermount3
的时候能自动回退使用fusermount
- 在操作系统上没有
- Bug 修复
- gc: 修复不支持
List
接口的对象存储没有正确回退到ListAll
接口的问题
- gc: 修复不支持
JuiceFS 5.1.19 (2025/5/13)
- 新增
- gateway: 新增
--hide-dir-object
选项来隐藏通过PUT
创建的目录对象
- gateway: 新增
- 改进
- Java SDK: 当
cache-dir
未配置时不要启用writeback
- Java SDK: 当
- Bug 修复
- 修复解析指向相对路径的软链接时可能不准确的问题
JuiceFS 5.1.18 (2025/4/16)
- 新增
- 新增
restore
命令来辅助从回收站中恢复文件,并支持使用多个关键字来过滤文件
- 新增
- 改进
- 即使设置了
--no-sync
也需要启用后台同步 - gc: list 对象存储失败时自动重试几次
- 即使设置了
- Bug 修复
- 修复
statfs
回收站目录结果不正确的问题 - 修复删除空目录可能误失败的问 题
- sync: 修复两边都是 JFS 时可能因共享 openfiles 导致 inode 错乱的问题
- 修复
JuiceFS 5.1.17 (2025/4/1)
- 改进
- 给 BOS 增加数据完整性校验
- 在对象存储间复制数据时也遵循后台任务的限速
- 给 mount 命令增加
--no-sync
来关闭对象存储间的定期同步 - sync: 清理
--files-from
参数指定的列表里行尾的空白字符
- Bug 修复
- sync: 修复使用 jfs 协议头在两个文件系统间拷贝数据时跟踪打开的文件时可能错误的问题
- 修复访问回收站中的文件时会报错的问题
- 修复访问拆分中的目录导致返回文件不存在的问题
- 修复往合并的目录 rename 可能失败的问题
JuiceFS 5.1.16 (2025/3/20)
- 改进
- 支持 virtual host 方式访问新创建的 BOS 桶
- Bug 修复
- 修复 flock 加锁失败后却把其他进程的锁关闭的问题
JuiceFS 5.1.15 (2025/3/17)
- 改进
- 给
rmr --skip-trash
增加--yes
参数来避免交互式确认
- 给