元数据版本更新
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)
- 改进
- 合并回收站中碎片很多的文件
- 处理内存压缩失败的情况,改为不压缩
- 提升碎片合并的速度
- 允许中断日志重放过程
- 调整子进程的 OOM 权重以避免父进程被杀
- 把 80% 的 buffer/cache 内存当做可用内存
- 创建 symlink 时忽悠默认 ACL
- 避免写磁盘快照时把盘写满
- Bug 修复
- 修复当有非常多碎片时导致碎片合并限速不对的问题
- 多分区
- 修复多分区集群目录树可能不对的问题
- 禁止均衡到同一个分区
- 忽略迁移中的目录或者文件
- 优化多级跨分区链接
- 清理迁移完成的文件和目录
JuiceFS 5.0.6 (2023/12/21)
-
改进
- 改进当系统内存不够时的稳定性,尽量避免被 OOM,以及被 OOM 后尽量恢复服务
- 加快加入磁盘上的快照文件
- 减少将大量扩展属性写入磁盘时的内存使用
- 解决从磁盘载入快照文件可能被 watchdog 打断的问题
-
Bug 修复
- 解决扩展属性可能泄漏的问题
JuiceFS 5.0.4 (2023/12/7)
- 改进
- 将重复日志的进度写入到日志文件中
- 修复数据清空后 CPU 使用过高的问题
JuiceFS 5.0.3 (2023/11/30)
-
改进
- 在重放事务日志时,如果机器内存富余(10+%)则不做内存压缩
- 重放从网络拿到的事务日志时也尝试压缩内存
- 在恢复回收站的文件时检查权限和配额
- 将未写入的数据片段持久化
-
Bug 修复
- 修复设置回收站时间时受影响的文件数量
- 修复拿单个文件的锁时格式不对的问题
- 修复跨文件系统重命名时 vid 不对的问题
- 修复用 rmr 删除被拆分的目录时权限检查问题
- 修复空文件系统的回收站设置可能丢失的问题
- 修复合并有空洞的文件导致结果不对的问题
- 修复 flock 的升级和降级没有持久化的问题
- 修复被拆分的目录的 ACL 设置
- 修复设置了 ACL 时 mode 不对的问题
- 修复启用了转存后启动时可能会奔溃的问题
JuiceFS 5.0.2 (2023/11/16)
-
改进
- 支持迁移不超过 1000 个碎片的文件
-
Bug 修复
- 修复热备节点的日志文件没有正确轮转的问题
JuiceFS 5.0.1 (2023/10/30)
-
新增
- 使用共享块设备加速小文件的读写
- 将分块写入的文件在指定时间后以兼容格式转存到对象存储
- 支持异构的缓存集群(指定不同的空间权重)
- 支持限制后台任务使用的对象存储带宽
- 支持 df 命令时返回指定的目录的使用量信息
-
改进
- 提升碎片合并的效率
-
多分区
- 提升跨分区重命名文件的性能(通过环境变量 JFS_FAST_RENAME=1 启用)
JuiceFS 4.9.23 (2023/10/18)
-
Bug 修复
- 修复恢复回收站中文件时创建的目录的 GID 在多个节点间不一致的问题
- 修复访问文件名的内部 hash 为 0 时导致服务异常退出的问题
-
改进
- 减少重复的碎片合并
-
多分区
- 修复多分区集群中可能有跨分区的文件泄漏的问题
JuiceFS 4.9.22 (2023/9/20)
-
改进
- 启动时忽略无效的文件名
-
多分区
- 修复跨分区的引用错误导致文件错乱的问题
JuiceFS 4.9.21 (2023/9/14)
-
优先删除数据而不是碎片合并
-
多分区
- 修复替换迁移中的目录中的 链接导致文件被误删的问题
JuiceFS 4.9.20 (2023/9/6)
-
修复给某个 volume 启用多分区时没有立即生效的问题
-
支持指定服务端使用 tcp4 网络(默认优先使用 tcp6)
-
多分区
- 修复跨分区优化可能可能导致文件被误删的问题
JuiceFS 4.9.19 (2023/9/31)
-
修复被合并的数据块没有主动同步的问题
-
多分区
- 修复 rename 失败导致挂载点 crash 的问题
- 修复优化跨分区链接导致 crash 的问题
JuiceFS 4.9.18 (2023/8/25)
- 解决 meta 更新配置时使用了被占用的端口导致卡死的问题
JuiceFS 4.9.17 (2023/8/21)
- 多分区
- 修复被迁移的链接泄漏的问题
- 修复失败的 Link 操作导致客户端 crash 的问题
- 修复跨分区的快速 rename
- 优先使用客户端设置的 Quota
- 挑选有 写权限的客户端来更新使用量统计
JuiceFS 4.9.16 (2023/8/21)
- 多分区
- 在 readdir 的回应中不用返回 链接的对象
- 支持跨分区的快速 rename (JFS_FAST_RENAME=1)
JuiceFS 4.9.15 (2023/8/21)
-
修复重放日志时的文件 fd 泄漏问题
-
自动合并直接文件数少的目录
-
自动合并多层被拆分的目录
-
优化一次清理大量回收站文件时的性能问题
-
多分区
- 立即迁移 rename 产生的跨分区文件
- 修复子分区的根目录被频繁预热导致服务器过载的问题
- 修复迁移元数据时陷入死循环的问题
JuiceFS 4.9.14 (2023/7/27)
- 修复内存压缩导致 chunk 的信息错误的问题
- 修复被多个文件共享的 chunk 相关的问题
JuiceFS 4.9.13 (2023/7/25)
- 在 reload 配置文件失败时打印日志
- 修复保存大量快照数据导致 watchdog 超时的问题
- 自动拆分包含大量符号链接的目录
- 当没有配置密钥时不用尝试加密连接
JuiceFS 4.9.12 (2023/7/7)
- Bugfix
- 压缩回收站应该遵循配置
- 调整杀子进程慢的日志为 warning
- 修复 rmr 删除被拆分的目录权限不够时导致服务异常重启的问题
- 当发现被拆分的目录 ID 异常时异常重启的问题
- 多分区
- 修复优化被删除的跨区链接时的异常
- 修复 sync 命令访问
jfs://
时的不会自动均衡的问题
JuiceFS 4.9.11 (2023/6/29)
- 多分区
- 修复恢复被删除的跨区链接导致服务重启的问题
- 修复在子分区的目录上运行 df 慢的问题
JuiceFS 4.9.10 (2023/6/26)
- 改进
- 支持修改服务端口
JuiceFS 4.9.8 (2023/6/16)
- 改进
- fork 后子进程因为增长 stack 导致卡主的问题
- 支持使用 CIDR 指定访问元数据的白名单
- Bug 修复
- 修复检查迁移的文件系统时导致客户端注册失败的问题(4.9.5 引入)
- 多分区
- 优化指向硬链接的跨区链接
JuiceFS 4.9.6 (2023/6/1)
- 改进
- 使用 SESSION_MIN_UPTIME 限制长连接的客户端的信息上报,避免大量短时间 Session
- 提升访问有大量碎片的文件的性能
- 降低碎片树的高度,以减少访问时的递归深度
JuiceFS 4.9.5 (2023/6/1)
- Bug 修复
- 修复镜像集群中 sessionid 可能重复的问题(导致监控数据不对)
- 解决服务器端推送消息到客户端不及时的问题
- 修复镜像集群中触发目录拆分导致进程退出的问题
- 改进
- 支持文件系统迁移到其他集群
- 记住断开的客户端尚未提交的 slice,减少 warning
- 多分区
- 改进元数据均衡,允许中断
- 去掉子分区的容量限制
- 修复内存中记录的跨区链接不对的问题
- 修复递归删除时因权限不够导致文件不可见的问题
- 允许当拆分后的子目录在其他分区时让 readdir 返回部分结果
JuiceFS 4.9.4 (2023/5/13)
-
改进
- 修复从其他节点接收到错误数据导致 crash 的问题
- 支持限制碎片合并的速度
- 改进客户端的限速,使其更精确
-
多分区
- 支持使用 ZONE_IP2 配置内网 IP
- 在多 分区集群上限制某个文件系统只使用单分区
JuiceFS 4.9.3 (2023/4/25)
-
改进
- 增加 CLIENT_MAX_PENDING_JOB=100 来控制单个客户端的并发后台任务数
-
Bug 修复
- 修复回收站文件的在启动时解压缩导致启动慢的问题
- 修复 Linux 下非组内成员不能继承 SGID 的问题
-
多分区
- 将父目录迁移到大部分文件所在的分区
JuiceFS 4.9.2 (2023/4/19)
-
改进
- 给 meta 服务增加 watchdog, 一旦发现卡死超过 5 分钟就自动重启
-
多分区
- 不要压缩迁移中的文件
- 修复多分区时创建克隆可能失败的问题
- 对 S3 接口的 COPY 请求,当克隆失败时降级到数据拷贝方式
JuiceFS 4.9.1 (2023/4/6)
-
Bug 修复
- 修复导致 Go GC 报内存异常导致退出的问题(4.8.5 引入)
- 修复从 JSON 导入文件部分属性
- 修复恢复文件到被拆分目录的问题
- 修复使用已经释放的内存的问题
-
改进
- 改进内存压缩,为部分文件提供快速访问
- 改进集群的客户端很多的时候的性能
- 减少快照落盘时导致死锁的情况
JuiceFS 4.9.0 (2023/3/8)
-
Bug 修复
- 解决 Go 的 GC 报无效内存指针导致异常退出的问题
-
改变
- 解决合并的数据碎片引用计数不对的问题
- 优化元数据服务的 CPU 和内存使用,提升性能
- 增加控制回收站清理的参数
- 拒绝客户端连接时打印日志
- 修复老的客户端合并碎片时导致的空指针问题
- 加快重启服务时 Raft 选举过程,缩短服务不可用时间
- 修复访问被释放的内存导致异常退出的问题
- 给磁盘上的数据和日志文件加上校验
- 保证绝大部分操作的幂等性
- 减少重放大量日志时的内存波动
- 限制单次回收 inode 的个数以减少性能抖动
- 增加内存分配和压缩的详细日志
- 减少空闲集群的内存使用
-
多分区版本
- 清理指向回收站文件的 link,减少重复的无效请求
- 忽略无效的元数据迁移指令(不要移动文件位置,避免误操作)
- 修复跨分区的目录的某些操作会失败的问题
- 优化被迁移的数据的内存使用
- 改进元数据的数据均衡
- 解决多分区时回收站路径不对的问题
- 禁止命名为 /.jfszoneXXX
- 修复清理 LINK 时的错误
JuiceFS 4.8.8 (2023/4/6)
- Bug 修正
- 修复导致 Go GC 报内存异常导致退出的问题(4.8.5 引入)
JuiceFS 4.8.7 (2023/2/28)
- Bug 修正
- 修复镜像文件系统的 flock/plock 失败的问题(应该返回 EROFS)。
JuiceFS 4.8.6 (2023/2/16)
- Bug 修复
- 修复某种情况下不能及时复制日志数据并选举出 leader 的问题
- 修复访问释放后的内存导致异常退出的问题
- 修复 copy file range 请求可能导致死循环的问题
JuiceFS 4.8.5 (2023/2/7)
-
改变
- 默认使用堆外内存以减少内存波动
- 避免重复尝试合并回收站的文件导致内存上涨
- 支持 statfs 返回的 inode 容量超过 100 亿
-
Bug 修正
- 修复挂载点根目录的元数据缓存未及时失效的问题
- 修复快照文件的 UID 不对的问题。
JuiceFS 4.8.4 (2023/1/9)
-
改变
- 优化加载大日志文件。
- 支持加载 4.9 产生的快照文件。
-
Bug 修复
- 当有重复的 ID 的元数据连接时,端口 IP 不在白名单里的那个,避免正常的节点反复断开连接。
- 解决读取的日志文件中的空行。
- 减少 fork 进程导致的死 锁情况。
JuiceFS 4.8.3 (2022/11/30)
- Bug 修复
- 延迟删除所有可能被多个文件使用的数据片,避免引用计数不对导致数据丢失。
JuiceFS 4.8.2 (2022/11/24)
-
改变
- 自动拆分超过 1000 个元数据的目录,降低元数据压缩导致的性能影响。
- 改进内存压缩的效果。
- 允许合并只有一个碎片的文件,以减低内存使用。
-
Bug 修复
- 解决反复尝试提升为 leader 失败的情况。
- 解决回收站文件清空不及时的问题(4.8.0 引入)。
-
多分区版本
- 修复数据迁移操作的幂等性,避免失败重试导致数据丢失的风险。
- 忽略无效的元数据均衡操作,不要移动文件的位置。
JuiceFS 4.8.1 (2022/10/28)
-
新增
- 增加调整碎片整理的参数,默认为 CHUNK_COMPACT_MIN_SLICE=1 TRY_COMPACT_RATIO=0
- 增加配置项 CLEANUP_TRASH=0 来临时禁止清空回收站。
- 增加配置项 CHUNK_FORCE_DELETE=1 来强制清空延迟删除的数据块。
- 支持使用内网 IP(在访问规则上增添 internalip 参数)
-
改变
- 当磁盘空间不够时,删除不需要的元数据快照文件以释放空间
- 在大量删除或者恢复文件时保持 Raft 心跳
- 给恢复文件时创建的目录使用 0755 的权限。
- 不再压缩使用的数据片段信息,避免引用计数错误导致的数据丢失。
- 定时异步数据落盘时不再压缩回收站文件,否则可能因内存分配导致死锁。
- 当关闭数据压缩时,启动时解压缩所有文件,并检查是否有数据库的引用计数错误。
- 默认关闭无碎片文件的内存优化(PACK_FILE=0),避免老版本的客户端(4.7.2-)使用 copy_file_range 时引用计数不对导致数据丢失的问题。
- 删除一个数据块前检查它是否仍被使用,避免其他 bug 导致的数据丢失。
-
Bug 修复
- 修复 summary 可能包含重复内容的问题。
- 修复导出原数时包含 导入的文件时 会 crash 的问题 (4.8.0 的新功能)
- 修复重复的碎片合并导致的空指针错误。
- 修复下载数据失败后的空指针问题 (4.8.0 引入)。
- 修复的挂载的子目录被拆分导致客户端查询失败的问题。
- 修复导入文件到被拆分目录的问题。
- 修复 fallocate 带 PUNCH_HOLE 时溢出的问题
-
多分区版本
- 修复当两次拆分后的目录中有跨区链接时导致客户端死循环的问题。
- 修复在当一个分区的目录树过多导致不能被及时删除的问题。
- 清理回收站内文件的跨区链接。
JuiceFS 4.8.0 (2022/08/25)
-
改进大目录删除的性能,避免阻塞其他操作。
-
优化回收站的内存使用和删除操作的性能。
-
单个分区支持 3 个以上节点。
-
改进数据清理限制,CHUNK_DELETE_LIMIT=0 时完全不做清理。
-
上报 Quota 时忽略通配符匹配的目录(可能很多)。
-
减少内存中保留的事务日志数量以节省内存。
-
在日志中记录比较慢的定期任务,并将部分认为调整为异步执行。
-
修复挂载被拆分的子目录时导致卡主的问题。
-
支持加载社区版导出的 JSON 格式的元数据。
-
提升默认合并碎片的限制到每秒 2000 个(之前是 200 个)。
-
加速新建集群的第一次选举时间。
-
修复访问控制权限变更时没有立即断开无权限的客户端的问题。
-
多分区版本
- 支持在多分区集群设置配额。
- 修复大集群中当单个分区的目录太多导致服务过载的问题。
JuiceFS 4.7.6 (2022/07/15)
- 修复请求 ID 溢出导致幂等性检查错误的问题。
- 修复恢复回收站中的文件到被拆分的目录中。
- 修复在被拆分的目录中创建快照的问题。
- 修复删除磁盘上的快照文件导致服务卡顿的问题。
- 记录心跳超时时主线程的调用栈用户分析性能问题。
- 修复大数据集群在快照落盘时的服务卡顿问题。
- 允许遍历待删除的数据块用户完整性检查。
- 修复删除数据块时不严格遵守配置参数的问题。
多分区版本
- 支持加载 JuiceFS>=4.8 版本压缩的跨分区对象。
- 修复在禁用后台任务后可能导致要删除的对象泄漏的问题。
JuiceFS 4.7.5 (2022/06/25)
- 支持加载 JuiceFS>=4.8 产生的快照文件。
- 修复 Java SDK 中给同一个目录创建多个快照时可能错乱的问题。
- 为所有删除的数据生成一个事务日志。
多分区版本
- 多分区版本中禁用小文件写入数据合并,当多个不同分区的文件数据被合并时可能导致数据丢失。
JuiceFS 4.7.4 (2022/05/27)
- 修复 Java SDK 中给同一个目录创建多个快照时可能错乱的问题。
- 修复重新加载访问规则不生效的问题。
- 清理遗漏的扩展属性和 ACL 规则。
JuiceFS 4.7.3 (2022/04/20)
- 修复部分内存中数据块的引用计数多 1 的问题(4.7.0 引入)。
- 修复目录的部分标志位没有正确复制的问题(4.7.0 引入)。
- 修复元数据服务从别的节点下载日志文件失败的问题(4.7.0 引入)。
- 修复选举后自增 chunkid 状态没有被正确复制的问题(4.7.0 引入)。
- 强行断开不符合规则的客户端连接。
JuiceFS 4.7.2 (2022/04/06)
- 修复 changelog 清理过于激进的问题。
多分区版本
- 当访问被拆分的目录部分不可用时,返回部分能访问的列表。
JuiceFS 4.7.1 (2022/03/14)
- 修复元数据服务的内存泄漏问题(4.7.0 引入)。
- 自动拆分超过 10000 个元数据的目录,改进元数据服务的响应性。
- 兼容 4.8 的元数据格式(允许版本回退)。
- 修复压缩日志文件的问题(4.7.0 引入)。
JuiceFS 4.7.0 (2022/02/23)
- 改进 QoS 时带宽分配
- 当元数据需要回滚时(新的日志跟内存中的不一致),一次性回滚更多以减少重启的次数
- 改进小文件 (单个 chunk) 的内存使用
- 减少 dump 时的内存消耗(压缩)。
- 压缩日志文件。
- 避免重复下载日志文件。
- 在 快照中保留 term 和 zoneid
- 可以去掉 快照目录检查(CHECK_SNAPSHOT=0)
- 避免重复设置 quota
- 允许使用只读的 AK 作为只读挂载使用。
- 不给只读的客户端分配后台任务。
- 在 info 命令中返回 Metaid
- 缩短断开的 POSIX 挂载连接的保留时间到 60 秒(之前是 10 分钟)。
- 使用集群的回收站时间作为默认值(不改变独立设置的单个文件系统的回收站时间)。
多分区版本
- 让大目录更分散(把子目录创建的别的分区中)
- 改进元数据迁移,避免某个分区的部分目录不能迁移时影响整体进程。
- 减少内存分配(大目录和消息合并)
- 解决合并拆分过的目录的缓存失效问题。
JuiceFS 4.6.1 (2022/12/23)
- 改进 Readdir 时的性能(READDIR_WITH_CHUNK =0 不返回第一个 chunk)
- 增大 GOGC 到 50
- 当元数据空间不足时,删除不需要的日志文件以释放空间
- 自动恢复镜像的元数据节点
多分区版本
- 不要压缩刚迁移的元数据(避免 chunk 的引用计数不对)
- 选举后的一个小时后开始检查迁移的数据块
JuiceFS 4.6.0 (2021/12/09)
- 修复集群可能无法创建文件的问题。
- 解决 S3 gateway 写入数据时导致 inode 泄漏的问题。需要重启一下 S3 网关。
- 当所有元数据盘的剩余空间都不够 10GiB 且低于 5% 时,会自动清理必须要的 changelog 文件以释放空间给新写入数据,确保服务不受影响。
多分区版本
- 在回收站信息中包含路径信息,解决多分区时回收站的监控数据不对的问题。
- 如果 10 分钟后还在访问被迁移的文件时,增加日志方便后续分析。
- 延缓释放迁移的节点信息(新 leader 被选举后的 24 小时之后),确保这些节点信息不再被需要。
- 合并共享的碎片以便于元数据迁移(不包含 snapshot 产生的文件)
- 解决方向链接加载不正确的问题。
- 确保所有的跨分区链接都指向最终的目标。
- 修正使用多分区时客户端缓存的元数超过设定值的问题。
- 解决目录拆分又合并了之后导致缓存的信息不对的问题。
- 解决客户端可能无法使用新加分区的问题
- 允许迁移包含碎片的文件。
- 修复扩展分区的文件数统计
- 将分段上传的数据之间写入目标分区,减少不必要的数据迁移操作。
- 修复扩展分区加载 chunk 信息的问题。
- 修正使用多分区时客户端缓存的元数超过设定值的问题。
- 使用 JFS_RANDOM_DIR=xx 来做多分区的元数据均衡时,不再考虑各分区的当前文件数量,是的新创建的目录能够随机分配。
JuiceFS 4.5.6 (2021/10/29)
- 改进 readdir 性能
- 修正 meta 在均衡元数据时 CPU 使用过高的问题。
- 改进同一个目录有大量硬链接时的性能。
JuiceFS 4.5.5 (2021/10/15)
- 优化符号链接的内存使用量。
- 允许加载不连续的日志。
- 限制压缩元数据所使用的 CPU 以保障性能。
- 新增 LOAD_CHECKSUM=0 来忽略 快照文件中的 checksum
JuiceFS 4.5.4 (2021/09/07)
- 修复元数据均衡时可能导致无限循环的情况。
- 解决当存储空间不足,挂载的 volume 用 df 看不到的问题。
- 支持同时管理千万级文件的缓存状态。
JuiceFS 4.5.3 (2021/08/19)
- 允许集群的客户端缓存更多目录的元数据(从 1 万提升到 100 万)。
- 避免文件碎片过多时 checksum 的计算占用 CPU 过高的问题。
- 根据文件碎片的多少自动调整碎片整理的速度。
- 解决当一个文件的 open 状态丢失导致 flock/POSIX lock 失败的问题。
- 将元数据服务进程的 CPU 和内存使用量更新频率从一分钟降低到 5 秒。
- 立即合并因有碎片不能被迁移的文件。
- 允许迁移正在打开的文件。
- 淘汰 5 分钟内没有任何方便的缓存目录。
- 使用多线程来压缩 readdir 返回的结果,节省主线程的 CPU 占用。
- 允许通过挂载点来恢复回收站中的文件。
- 修复元数据迁移时缓存没有失效的问题。
- 修复镜像模式下仍会请求更新目录统计信息的问题。
- 支持快速 readdir 操作(更低 CPU 和内存消耗)。
- 通过环境变量 JFS_REBALANCE=xx 来开启自动数据均衡。
- 改进 readdir 的性能。
- 在后台异步清理断开的连接。
- 启动时支持 10 亿条边。
- 支持限速 (QoS) 时使用浮点数。
- 数据均衡时尽量让 Zone 0 的规模更小。
- 默认在 一天后释放移动过的 Inode。
- 加快释放移动过的 inodes。
- 使用闲置的 CPU 来压缩元数据,减少对性能的影响。
- 将元数据的压缩关闭时,逐渐解压缩内存中的数据。
JuiceFS 4.5.2 (2021/07/15)
- 限制单次回收的 Inode 为最多 100 万。
- 不允许迁移 LINK 类型的 Inode。
- 从内存池申请内存。
- 在后台写入数据到磁盘时停止检查任务以减少内存的变更和消耗。
- 在 日志模式下忽略 Raft 优先级(不用尝试提升为 leader)。
- 在不同的时间将数据写入磁盘。
- 关掉子进程的日志(可能导致死锁)。
- 使用 Raft 消息来维护心跳,放在不必要的超时切换。
- 修复 .zonemap 中拆分的目录显示不正确的问题。
- 默认是否 1 周前迁移过的 inode。
JuiceFS 4.5.1 (2021/06/17)
- 清理 7 天前备份的元数据防止磁盘空间泄漏。
- 增加反向链接,解决悬空文件的问题。
- 优先处理 Raft 消息以避免选举抖动。
- 优化压缩页的内存分配。
- 修复 .zonemap 中多层链接。
- 修复元数据迁移时导致的反向链接不对的问题。
- 允许指定以前内可以进行碎片整理的时间段。
- 随机挑选磁盘来写 入元数据以均衡 I/O。
- 每分钟都尝试提升优先级高的 节点为 Leader,并打印日志。
- 在发现更大的 term 时回滚日志。
- 支持迁移被拆分的目录。
- 减少被迁移 inode 的内存占用。
- 拆分超过 100000 目录。
- 限制碎片合并的速度,默认 100/秒。