元数据版本更新
JuiceFS 5.2.3 (2025/6/19)
- 在 follower 节点也跟踪 activeRefs 以便在重启后也能更新统计数据
- 修复当操作的文件数过多时
LOAD
和EMPTY
日志可能超过长度限制的问题 - 进一步完善网络包分析工具
captool
JuiceFS 5.2.1 (2025/5/27)
- 完善 meta 进程的网络包分析工具 (1.0)
- 修复使用 bloomfilter 后在压缩目录中新建文件却找不到的问题
JuiceFS 5.2.0 (2025/5/24)
- 新增 meta 进程的网络包分析工具 (beta)
- 新增 -loadBin 选项来导入社区版的二进制格式的元数据备份
- 多方面改善 meta 进程的内存压缩策略
- 提升元数据事务日志的完整性(rmr 日志记录删除的 inodes 等)和鲁棒性,便于更好地跟踪特定文件的完整生命周期
- 允许使用 export 规则文件来禁用非标准的目录统计信息功能
- 提升系统的 inodes 限制到 1 万亿
- 并行加载快照文件中的迁移 inode 信息,加快元数据服务的启动速度
- 改进处理元数据请求的主线程的效率,并使用独立的线程回收内存
- 使用后台线程读取硬盘上的快照和日志文件,降低对主线程的影响
- 使用 bloomfilter 加速在压缩目录中查找不存在的文件
- 有多块元数据盘时改进选择策略,当空间不多时优先使用剩余空间较大的 盘
- 修复创建快照时 sticky bit 权限检查不准确问题
- 修复恢复回收站文件时 sgid 未正确恢复问题
- 修复被拆分目录被克隆时 UID/GID 可能不一致的问题
- 修复被拆分的目录下子项被 rename 时可能误失败的问题
- 修复 rmr 空目录时可能因没有读权限导致失败的问题
- 修复写入磁盘快照时可能死锁的问题
- 修复调整镜像集群的消息优先级后可能导致重放日志失败的问题
- 避免使用 CHUNK_FORCE_DELETE=1 时短时间内多次尝试导致数据泄露的问题
- 允许 metalogger 使用小于 1000 的端口号
- 删除 vdir 时忽略对父目录的权限检查
- 多分区
- 优化跨分区链接的统计,提高目录统计信息的准确性和及时性
- 自动清理子分区根目录下泄漏的临时文件
- 多分区事务中添加提交版本检查,提高镜像文件系统的一致性
- 多分区个数限制修改后能自动更新并推送配置
- 修复文件可能因删除操作中断而泄漏的问题
- 修复有 hardlink 的文件可能被多删除一次的问题
- 修复链接文件可能被误替换为回收站文件的问题
- 修复元数据迁移过程中存在不能迁移的文件时客户端缓存的失效问题
- 修复多分区集群中 rmdir 的返回值可能异常的问题
- 修复多分区集群中创建 hardlink 有可能误失败的问题
- 修复多分区集群中因缓存问题导致 nlink 可能不准确的问题
- 修复 status 命令中 session 的 CPUUsage 可能不准确问题
- 修复 rmr 可能删除不干净的问题
- 修复启用回收站时删除根目录下文件再创建的名字冲突问题
JuiceFS 5.1.19 (2025/5/13)
- 允许通过 UNDEL_UMASK 来调整从回收站恢复文件时自动创建的目录的权限
- 允许调整来自 peer 和 client 的消息的优先级,避免部分请求被长时间挂起
- 允许任何来源的 MSG_GET_VERSION 请求
- 将 FIX_TRASH_PATH_LIMIT 的默认值由 1000 减小为 200
- 加强对 5.2 版本变更日志的兼容性
JuiceFS 5.1.18 (2025/4/16)
- 提升删除文件硬链接的性能
- 创建硬链接后如果 nlink 未变(达到了 nlink 最大值限制)则不需要更新 attribute
JuiceFS 5.1.17 (2025/4/1)
- 给 pyroscope 增加 集群名和 build 信息作为 tag
- 增加 /debug/pprof/cpuprofile 来规避跟 pyroscope 的冲突
- 增加
--checkVdir
参数来检查被拆分目录的完整性 - 修复通配符配额更新不对的问题
- 增加
QOS_RESET_CYCLE
参数来控制限速的精度 - 修复 readdir 返回回收站文件导致客户端异常的问题
- 多分区
- 优先处理 REPLACE 请求
- 延迟合并还在更新的目录到它的父目录所在分区
- 延长等待连接到子分区的时间到 30 秒
- 修复 ref 在被拆分的 .backup 里是路径不对的问题
- 修复 在拆分的 .backup 中的 ref
- 修复 .backup 的权限为 0777
- 隐藏根目录下创建中的临时硬链接
- 修复硬链接泄漏问题
- 修复硬链接的 ref
- 当 ref 不能移动到 .backup 中时尝试修复 ref
- 修复多分区模式 quota 命令返回的路径
- 修复删除损坏的跨分区目录的问题
JuiceFS 5.1.16 (2025/3/20)
- 按顺序处理消耗资源比较多的消息,避免部分请求等待时间过长
- 修复限制 readdir 返回的文件数时可能导致老板版本客户端读不到完整数据的问题
- 新增
NLINK_LIMIT
来限制返回的硬链接的 nlink 的值以缓解访问大量硬链接的性能问题 - 多分区
- 修复迁移文件可能导致元数据损坏的问题
- 给修复多分区的回收站路径增加缓存以提升性能
JuiceFS 5.1.15 (2025/3/17)
- 优先处理客户端连接和监控系统的请求
- 限制内部的 readdir 请求返回的文件数量(默认 10 万)
- 低优先级处理消耗 CPU 比较多的请求类型或者客户端
- 不给客户端工具分配后台任务
- 多分区
- 更新 .backup 里面的 ref
- 改进同分区的连接优化步骤
- 删除目录时处理目标在 .backup 的情况
- 限制客户端执行的元数据相关的后台任务的并发数
- 限制异步删除请求的速率
- 改进优化同分区的连接的检查
- 放慢 root 运行 rmr 的速度,改成客户端递归执行跨分区删除,避免把集群打爆
- 修复跨分区的配额限制问题
- 使用更新后的信息来修复 ref
- 修复损坏的级联跨分区链接问题
JuiceFS 5.1.14 (2025/3/6)
- 增加
DISABLE_CHECKSUM
来关闭元数据的校验更新 - 降低下载快照的并发到 1 以降低读取磁盘的压力
- 访问回收站目录时不要生成日志(无法正常重放)
- 忽略访问回收站目录的日志
- reload 配置文件时更新 pyroscope 的状态
- 多分区
- 修复配额传播导致的性能问题
- 修复跨分区 rename 问题
- 将根目录的 ref 自动迁移到 .backup 中
- 改进跨分区的 rename,立即异步迁移文件
- 提升载入迁移的 inode 的速度
JuiceFS 5.1.13 (2025/2/27)
- 后台异步更新可用内存
- 允许多进程并发监听端口(避免因子进程未退出导致新进程起不来)
- 在镜像重放日志失败后仍然继续提供服务
- 修复镜像写集群可能连接失败的问题
- 多分区
- 限制客户端对每个每个分区的并发操作个数为 100
- 修复 rebalance 命令中各个子分区的 inode 数量不准的问题
- 修复损坏的拆分的目录
- 修复优化链接可能导致拆分目录损坏的问题
- 清理找不到目标文件的跨分区链接
JuiceFS 5.1.12 (2025/2/22)
- 修复拆分很多次的目录的统计更新性能问题
- 修复 lookup 时的空指针问题
- 加载元数据到给定时间 的版本
- 只导出路径和 inode
- 多分区
- 将迁移元数据的大小限制提升到 200KB
- 修复迁移元数据时重复拆分目录的问题
- 修复迁移热点元数据时的死锁
- 不用迁移空的目录
- 改进有大文件的目录的迁移
- 允许强制清空子分区的目录
- 改进完成迁移流程
- 禁止再次迁移迁移中的元数据
- 异步修复 ref
- 隐藏根目录的 .backup
- 不允许迁移任何 ref
- 不允许迁移 .backup
- 增加缓存变量 JFS_LINK_LIMIT 控制根目录的 ref 数量
- 加快迁移后的 inode 清理
- 修复 .backup 的容量重复统计问题
- 加快热点元数据的迁移
JuiceFS 5.1.11 (2025/2/13)
- 多分区
- 解决并发写入文件时的热点问题
JuiceFS 5.1.10 (2025/2/11)
- 多分区
- 改进写入文件时的局部热点问题
- 通过 rebalance 命令清理损坏的跨区链接
- 修复错误地迁移 .backup 导致跨区链接损坏的问题
- 解决目录统计更新不及时的问题
JuiceFS 5.1.9 (2025/1/15)
- 优化 getattr 的元数据缓存
- 允许忽略冲突的 slice ID
JuiceFS 5.1.8 (2025/1/8)
- 修复 cuckoo 溢出导致快照数据不完整的问题
- 改进从 JSON 导入 hardlink 问题
- 通过 CHUNK_DELETE_LIMIT = 0 来禁止删除
- 解决异步写日志导致子进程不能退出的问题
- 解决空集群的 dump 问题
JuiceFS 5.1.7 (2024/12/30)
- 拒绝老版本的客户端(5.0.24-)执行 GC 操作,可能导致误删
- 修复压缩的目录中的内容没有导出为 JSON 的问题
- 忽略尝试用 SSL 来连接非加密端口导致的日志
- 解决新创建的文件的 mode 不能被正确重放的问题
- 增加每次失败的数据删除操作的等待时间到 10 分钟,减少空间泄漏的可能
- 解决 5 节点的集群中的频繁选举问题
- 解决从固定节点下载快照文件总是失败的问题
- 多分区
- 日志中增加分区 ID
JuiceFS 5.1.6 (2024/12/11)
- 多分区:
- 改进多分区的文件数均衡
- 改进多分区的访问热点均衡
- 同步迁移文件
JuiceFS 5.1.5 (2024/11/21)
- 改进
- 忽略端口冲突导致的日志
- 兼容 5.2 生成的日志
- 挂载根目录时不做 UID 映射
- 多分区
- 改进元数据迁移的碎片情况
- 提升元数据均衡时的碎片限制到 2000
- 提升 DUPM_DISCONNECT 默认值为 10
- 改进热点目录的负载均衡
JuiceFS 5.1.4 (2024/11/4)
- 允许服务运行的时候导出为 JSON
- 修复异常时日志丢失的问题
- 支持加载溢出的回收站 inode
- 修复载入快照失败导致内存数据不一致的问题
- 分散日志节点下载快照的时间
JuiceFS 5.1.3 (2024/10/28)
- 修复回收站数据 inode 溢出的问题
- 放慢日志节点下载快照的速度,避免影响业务
- 修复直连子分区的问题
- 降低导出为 JSON 时的批次大小为 10000
- 当内存不足时,确保有可用服务节点再重启
JuiceFS 5.1.2 (2024/10/16)
- 对大文件不使用紧凑格式
- 限制 setTrashPath 的 QPS
- 多分区:
- 修复 rename 一个指向目录的链接
- 当平均目标超过 1000 时停止均衡
JuiceFS 5.1.1 (2024/9/19)
- Bug 修复
- 修复拆分目录的 SetACL 没 有重置 SGID 的问题
- 多分区
- 限制 rebalance 命令的运行时间和累计的跨分区链接的数量
- 修复 rename 的权限检查问题
- 修复可写镜像未完成初始化的问题
JuiceFS 5.1.0 (2024/9/10)
- 新功能
- 使用后台 CPU 来压缩内存
- 改进
- 加速下载快照文件
- 提升删除有大量扩展属性的文件的速度
- 降低 ACL 和扩展属性的内存占用
- 减少小规模集群的 cuckoo 的内存占用
- 支持最大 inode 到 40 亿
- 自动恢复被删除的根目录的配额
- 处理超时导致重复的请求
- 检查块设备的 ID 的合法性
- 允许关掉新增客户端会话的日志
- 自动拆分压缩比较慢的目录
- 解决回收块设备的空间时的性能问题
- Bug 修复
- 修复快照文件中的重复扩展属性
- 多分区
- 修复多分区的各种兼容性问题
- 将
_dangling
文件/目录放到.backup
中 - 将硬链接放到
.backup
中
- 私有部署
- 解决 CSI 中元数据服务的 DNS 不生效的问题
JuiceFS 5.0.25 (2024/9/2)
- Bug 修复
- 修复删除包含被拆分目录的快照时奔溃的问题
- 修正早期创建的文件系统的 vid
- 尝试从其他客户端查找分配的地址空间
JuiceFS 5.0.24 (2024/8/19)
- Bug 修复
- 修复压缩的审计日志时可能不完整的问题
- 多分区
- 修复数据均衡时可能导致奔溃的问题
- 支持载入 5.1 的元数据
- 解决 flock/plock 在多分区集群中有很多错误日志的问题
- 解决目录的属性没有正确失效的问题
- 修复
.backup
被拆分时 ref 判断不对的问题
JuiceFS 5.0.22 (2024/7/30)
- 改进
- 改进 heatmap 的准确性
- 过滤掉单个分区的指标
- 给镜像模式的请求增加白名单,避免异常消息导致元数据分叉
- 支持 5.1 的元数据格式
- 多分区
- 修复递归删除跨分区的超大目录时删不干净的问题
- 允许 heatmap 命令显示单个分区的热点
JuiceFS 5.0.21 (2024/6/28)
- 改进
- 限制后台任务最多使用 30% 的 CPU
- 修复从多个节点同时下载导致下载失败或者数据错乱的问题
- 修复可能使用已经释放的内存的问题
- 多分区
- 修复多分区的特殊文件名可能处理不准确的问题
- 修复 Rename 返回 EAGAIN 的问题
- 使用 5.0.20+ 的客户端来删除硬链接,避免误删
JuiceFS 5.0.20 (2024/6/28)
- 改进
- 允许通过 CHECK_SIGN=0 来关闭节点之前的签名校验
- 多分区
- 不要将 LINK 放到 .backup 里
- 支持 .backup 中的链接对象
JuiceFS 5.0.19 (2024/6/20)
- 改进
- 提升默认删除限制到 5000
- 多分区
- 修复 rebalance 命令的 batch 参数不生效的问题
- 禁止使用刚加载的目录树替换 link 节点
- 将硬链接放入 .backup 目录中
- 修复删除 link 时误删硬链接的其他边的问题
- 更快地合并小目录
- 迁移目录时自动排除某些不能被迁移的文件(硬链接、克隆或者太大的文件)
JuiceFS 5.0.18 (2024/6/3)
- 改进
- 改进很多客户端同时打开同一个文件时的性能问题
- 修复日志文件压缩后没有及时生成快照的问题
JuiceFS 5.0.17 (2024/5/2)
- 改进
- 修复重复的待删除数据
- 剩余内存低于
10%
时才强制开启内存压缩 - 忽略快照文件中重复的 inode
JuiceFS 5.0.16 (2024/4/16)
- 改进
- 改进限速,避免浪费
JuiceFS 5.0.15 (2024/4/7)
- 改进
- 增大 vm.max_map_count 到 256K
JuiceFS 5.0.14 (2024/3/25)
- 改进
- 清理被删除的 ACL
- 减少哈希表扩容时时的卡顿现象
JuiceFS 5.0.13 (2024/3/19)
-
改进
- 将 meta 之间连接失败的日志调整为 INFO
- 增加后台任务的频次并缩减大小,减少阻塞时间
- 支持直接使用
;
分隔的 IP 地址来访问源集群 - 加载新版本写入的 ACL 数据
- 改进当某些文件系统没有可用客户端时的数据删除和碎片合并速度
- 延迟碎片的等待时间到 24 小时
- 当可用 inode 不足时提升释放速度
- 当失败的请求修改了状态时主动重启
- 加载新版本保存的节点数据
-
Bug 修复
- 修复调整服务端口导致服务不可用的问题
- 解决遍历待删除数据库可能导致服务重新选举的问题
- 修复从 JSON 中导入 ACL 失败的问题
- 解决镜像中待重试的后台任务太多导致的性能问题
- 解决 inode 溢出问题
- 解决设置 ACL 后元数据的 checksum 未更新的问题
JuiceFS 5.0.12 (2024/3/1)
- Bug 修复
- 解决服务选举后出现未知 session 的问题
JuiceFS 5.0.11 (2024/2/19)
- 改进
- 改进检查配额的性能
- Bug 修复
- 修复继承 ACL 时文件的属性不对的问题
JuiceFS 5.0.11 (2024/1/26)
- 改进
- 提升 cuckoo 哈希的内存使用率
- 提升碎片合并的速率,降低内存使用量
- 提升后台任务的并发量
- Bug 修复
- 修复 slice 有多个空闲片段时导致磁盘快照不能读取的问题
JuiceFS 5.0.10 (2024/1/24)
- 改进
- 小批量扫描待删除数据和碎片,改进限速能力,降低性能影响。
- 当碎片量超过 1 亿时强制合并所有的碎片。
- 提升碎片扫描的速度
- Bug 修复
- 修复读正在写入的 日志文件的最 后版本号失败的问题
JuiceFS 5.0.9 (2024/1/19)
- 改进
- 当延迟删除的对象很多时自动提升限速到最大 20 倍
- 增加参数 CHUNK_DELAY_LIMIT=86400 来限制延迟删除数据块的时间,默认不再跟回收站一致
- 多分区
- 解决 Volume 初始化设置回收站时间失败的问题
- 在 destroy 命令中清理子分区的所有文件
- 解决子分区中的 Quota 路径不对的问题
JuiceFS 5.0.8 (2024/1/13)
- 改进
- 推迟缓存节点信息的广播以避免短时间内大量连接导致的不稳定。
- 禁止迁移回收站的文件
- 内存紧张导致重启时,一次只重启一个进程。
- 提升碎片合并时解压缩目录的比例到 10%
- 解决某些异常的大内存节点上检查可用内存时 CPU 占用过高的问题。
- 多分区
- 解决往根目录被拆分的子分区迁移数据的问题
- 修复载入包含有被迁移的回收站文件的磁盘快照失败的问题
- 等子分区都连接上后再开始均衡元数据
JuiceFS 5.0.7 (2024/1/7)
- 改进
- 合并回收站中碎片很多的文件
- 处理内存压缩失败的情况,改为不压缩
- 提升碎片合并的速度