元数据版本更新
JuiceFS 5.3.6 (2026/4/1)
- 新增
MIN_TRASH_TIME参数来调整回收站文件的最短保留时间 - 镜像集群支持指定源集群的多个 IP
- 禁止元数据服务复用端口,改为自动清理占用着端口的旧子进程
- 只在没有旧日志被加载时才会跳过大的日志文件
- 拒绝客户端连接时返回
EBADSESSIONID错误码 - 提升在有很多 exports 规则时重新加载配置文件的性能
- 优化 proxy 功能在发生 leader 切换时的稳定性
- captool: 修复对压缩目录的解析错误问题
- 多分区
- fsck 时流式处理每个分区的 refs,降低内存使用
- 加速对 moved inodes 的清理
- 修复
rebalance命令无法正确迁移子分区目录的问题 - 修复虚拟目录下的 ref 未被正确解析导致打印错误告警日志的问题
JuiceFS 5.3.5 (2026/3/19)
- 为 pyjfs 接口增加 sustained 文件数量和大小的统计
- 支持使用虚拟连接来降低元数据服务的连接数量
- 支持命令行直接校验 LICENSE 的合法性
- 将 debug 代理端口写入到特定文件中
- 优化 list sessions 的性能
- 在删除快照时跳过对虚拟子目录的 sticky bit 权限检查
- 修复了退出时可能报 EBADF 错误的问题
- 修复了遇到空的或损坏的事务日志时反复下载日志的问题
- 修复了刚建立的连接第一条消息可能被丢弃的问题
- captool: 修复多个消息解析错误
- 多分区
- 子分区没有 exports 文件时不再打印错误日志
JuiceFS 5.3.4 (2026/3/10)
- 降低客户端注册消息的优先级
- 提升检索 exports 规则的速度
- 多分区
- 只记录目录的 OID
JuiceFS 5.3.3 (2026/3/2)
- 修复控制台 API 中 FIFO 文件类型字符错误的问题(
q改成p) - 为 pyjfs 新增设置卷名称的能力
- 支持从快照文件中加载虚拟子目录
- 提高触发事务日志清理的阈值
- 备份未使用的事务日志
- 优化事务日志扫描与同步流程,减少不必要的日志记录
- 修复 inode 复用延迟问题
- 修复压缩的事务日志截断问题
- 修复重放日志时解析 inode 范围可能导致 panic 的问题
- 修复 metalogger 中下载日志失败的问题
- 修复 metalogger 中压缩事务日志文件的命名与元数据 rotate 问题
- captool: 适配近期协议变更
- 多分区
- rename 后在 readdir cache 中记录 OID
- rename 请求中返回 OID
- 确保 OID 是有效的
- 同路径场景优先使用主分区的 quota
- 目录跨分区 rename 场景下优先将空目录迁回到源分区
- 访问镜像场景下 moved inode 时也需要更新 atime
- 修复 heatmap 命令中返回额外空路径的问题
JuiceFS 5.3.2 (2016/2/2)
- 修复缺乏部分日志导致早期的文件泄漏的问题
- 提升加载日志的性能
- 避免同步中断时重复发送日志或者心跳
- 减少重复的日志发送
- 磁盘空间占用达到 95% 时才清理日志
- 修复并发写快照导致冲突的问题
- 修复合并的虚拟子目录的 inode 没有被持久化的问题
- 延迟复用 inode(180 天)
- 合并记录克隆使用的 inode
- 修复覆盖已有事务日志的问题
- 将不同 term 的日志写入不同文件
- 解决写入审计日志不够快导致线程数暴增的问题
- 改进从旧版本升级的流程
- 修复重放日志失败后退出码不为 1 的问题
- 多分区
- 修复根目录的不对的问题
- 解决目录迁移后导致的
ESTALE错误 - 解决配额不足导致迁移失败的问题
- 修复重放旧版本的
REPLACELINK日志可能导致脑裂的问题
JuiceFS 5.3.1 (2016/1/14)
- 改进 Raft 算法实现,确保镜像不会因拿到未提交的日志而导致脑裂。
- 在更新配置后尽量匹配带有密码的访问规则
- leader 选举出来了才退出,避免误操作导致集群不可用
- 支持以当前操作的用户的权限来恢复回收站文件
- 限制审计日志的空间占用,默认最多总空间的 50%
- 统一监控图标的单位为 QPS
- 修复可能漏处理某个信号的问题
- 当 meta 之间签名不匹配时在日志中显示端口
- 支持新的 pkcs12 格式的密钥文件
- 内存碎片太多时自动重启
- captool: 支持按命令名过滤
- captool: 修复 读数据不完整导致 panic 的问题
- 重复的热点均衡请求
- 解决集群初始化时可能选不出 leader 的情况
- 修复导出导入的文件为 JSON 时失败的问题
- 修复当客户端没有 GID 时请求会失败的问题
- 修复移动 ref 导致统计数据不准确的问题
- 修复解析超长的配置文件时静默失败的问题
- 修复 restored 的内存泄漏
- 修复重放 RMR 日志时报数量不一致的问题
- 镜像:镜像在同步失败时,立即尝试恢复第一个节点,由第二个保障可用性
- 修复重启时 leaderip 异常导致日志不能正确复制的问题
- 改进迁移深度拆分的目录的性能问题
- Raft 超时后重置 leaderip 避免干扰后续选举
- 优先合并碎片很多的文件,避免删除任务很多时无法进行碎片合并
- 多分区
- 多分区的跨分区事务改造:改进事务的异常处理能力,能自动回滚,杜绝坏链
- 使用 commit 作为 link 和 ref 的唯一匹配标识,杜绝 inode 复用时的可能的误删问题
- rebalance: 将指定目录拆分到多个分区
- 支持最多 1024 个分区和单卷 5000 亿文件
- 减少多分区集群的客户端的内存占用
- 允许迁移配置了 quota 的目录
- 减少可能的跨分区 rename
- 改进目录合并的处理,不再广播事件通知,改进客户端的重试
- 允许迁移包含全部硬链接的目录
- 延迟多分区的 inode 复用
- 保留迁移的 inode 最多 7 天
- 更新跨分区的链接的 UID/GID/mode/flags 跟目标保持一致
- 允许拆分子分区的根目录
- 多分区的子分区从 0 分区继承权限配置
- 在删除时的事务日志中记录完整路径
- 默认跟踪跨分区的文件的删除避免泄漏
- 默认启用热点自动均衡(针对文件数少于 50000 的目录)
- rebalance: 自动拆分大的目录树
- 将新创建的目录迁移到内存使用量更低的分区
- info: 支持
zone:inode格式 - 修复从多分区的回收站恢复文件时可能导致文件名重复的问题
- 修复恢复一个迁移的 inode 导致 panic 的问题
- 修复被迁移的硬链接的内核缓存未正确失效的问题
- 优化碎片很多的文件的均衡处理,减少 CPU 占用,尽快合并碎片
- 解决在故障切换后客户端可能有错误的跨分区链接缓存的问题
- fsck: 支持
zone:inode格式 - 不再合并级联的 link 指向的目录
- 改进遍历 link 的兼容性检查
- 将 link 的优化调整为 10 秒一次
- 修复更新 ACL 后迁移过的文件的内核缓存未更新的问题
- 修复根目录没有自动拆分的问题
- 修复访问
.zonemap可能卡死的问题 - 自动拆分热点目录以便于迁移
- 等待子分区时遵守 ioretries
- 优化查找多个 inode 的路径时只依赖涉及到的分区
- 修复 empty 导致硬链接损坏的问题
- 新增迁移文件的大小和碎片数量限制参数
- 增大自动迁移的热点目录的文件数限制到 5000
JuiceFS 5.2.23 (2026/1/29)
- 选举后不需要重复发送日志给镜像
- 解决有大量数据需要删除时导致碎片合并不及时的问题
- 修复元数据服务配置了两个 IP 时有可能选不出 leader 的问题
- 多分区
- 修复长时间打开却没有访问操作的文件可能会访问失败的问题
JuiceFS 5.2.22 (2026/1/4)
- 多分区
- 修复根目录被拆分时文件系统大小统计不准确的问题
JuiceFS 5.2.21 (2025/12/22)
- 多分区
- rebalance: 支持拆分单个目录到多个分区
- rebalance: 自动拆分单个分区内的大目录树到多个分区
- 修复客户端在迁移热点目录时可能崩溃的问题
- 修复重复尝试迁移热点目录的问题
JuiceFS 5.2.20 (2025/12/8)
- 启动时显示对象存储中的数据大小
- 支持带空格的配额路径
- 提升元数据缓存的命中率
- 改进 CPU 使用率指标的准确性
- 修复重放清理回收站的日志失败的问题
- 多分区
- fsck: 支持镜像集群运行
- 不要拆分正在均衡中的目录
JuiceFS 5.2.19 (2025/11/7)
- 多分区
- 支持仅补充 LINK 文件的 commit 字段
- 不要用正在迁移的 REF 做同分区优化
- 允许重放各个 5.3 版本的事务日志(兼容 5.3 版本)