版本 更新
本文档记录 JuiceFS 云服务的版本发布历史,如果你想了解 JuiceFS 社区版的版本发布历史请查看 GitHub。
JuiceFS 客户端保持良好的向前、向后兼容性,但对于大版本刚刚发布之时(对于 JuiceFS 而言,5.1 → 5.2 就属于大版本更新),新版可能存在少量兼容性问题。如果需要回滚大版本,请参考 juicefs version
JuiceFS 5.3.7 (2026/4/21)
- 新增
- 新增
find子命令用来快速筛查符合条件的文件
- 新增
- 改进
- mount: 新增
--access-log选项来将访问日志写入到指定文件 - mount: 忽略软链接缓存配置,避免平滑重启后残留旧的进程(5.3.5 引入)
- gc: 新增
false-positive-rate参数来调整 Bloom Filter 的误判率 - gc: 提升对象存储为 Ceph 时的遍历性能
- sync: 使用
jfs://协议头时允许不依赖配置文件而是直接使用 meta URL - 给部分 FUSE 和分布式缓存指标增加最大值记录
- mount: 新增
- Bug 修复
- 修复
debug子命令可能收集不到客户端日志的问题 - object/S3: 当 access key 为空时,在 autoS3Region 中使用默认的凭证链
- 修复
JuiceFS 5.3.6 (2026/4/1)
- 新增
- 新增
attr子命令来管理文件的扩展属性
- 新增
- 改进
- 加强对客户端会话重连时的检查,防止连接错误的集群
- 客户端升级时自动升级所有扩展版本的二进制
- 降低客户端进程的内存使用
- 去掉
flock的超时强制中断,避免其返回ERESTARTSYS错误
- Bug 修复
- 修复对象存储 GET 请求延迟未统计的问题
- 修复开启 writeback 功能时
stageBlockBytes指标未正确统计的问题 - 修复容器环境中慢请求可能未被正确统计的问题
JuiceFS 5.3.5 (2026/3/19)
- 改进
- mount: 支持通过
JFS_MOUNT_TIMEOUT环境变量来调整挂载超时时间 - mount: 禁用内核的软链接缓存,以免出现软链接指向不正确的问题
- 降低客户端的 CPU 占用
- 提升小 I/O 随机读的极限性能
- 允许 iorpc 与 tcp 使用同一个端口
- 禁用后台任务时,同时禁用跨区数据复制的定时同步任务
- mount: 支持通过
- Bug 修复
- import: 修复在使用
--conf-dir参数时可能未正确读取配置文件的问题 - 修复在设置了
JFS_NO_CHECK_OBJECT_STORAGE环境变量时无法正常访问 Ceph 的问题 - SDK: 修复记录操作日志时可能陷入死循环的问题
- import: 修复在使用
JuiceFS 5.3.4 (2026/3/10)
- 新增
- 支持限制回收站文件数量和总大小
- 改进
- 支持统计 FUSE 读写耗时的指标
- 优化 GUID 映射的内存占用,并添加本地缓存
- 在客户端断开连接时释放 op lock
- merge: 大文件自动进行碎片合并后重试
- gc: 降低运行时的内存占用
- Bug 修复
- 修复了启用 open cache 时文件的第一个 chunk 可能读到旧数据的问题
- 修复了启用跨区数据复制时部分同步机制未正常工作的问题
- clone: 修复分批克隆时可能会克隆不完整的问题
- clone: 修复克隆中遇到无访问权限的目录时可能会 panic 的问题
JuiceFS 5.3.3 (2026/3/2)
- 改进
- 增大 clone 时单批处理的文件数上限
- sync: 优化临时文件命名并限制目录级缓存条目数
- RDMA: 无可用设备时自动回退到 TCP
- RDMA: 支持设置握手超时时间,并提升内存管理和稳定性
- RDMA/iorpc: 多项内存与连接稳定性优化(页管理、同步写响应、取消请求处理)
- Bug 修复
- 修复计算缓存文件 checksum 时可能使用错误的文件长度的问题
- sync: 分块上传到 JFS 的大文件在同步完成时实现幂等性,并修复异常时可能 panic 的问题
- Windows: 修复 WinFsp 的版本判断问题
JuiceFS 5.3.2 (2026/2/2)
- 新增
- sync: 支持外部限速
- 改进
- sync: 减少遍历目录时的内存占用
- 提升 RDMA 的兼容性和稳定性
- Bug 修复
- 修复旧版本内核的内存文件系统不支持 directio 导致缓存失效的问题
JuiceFS 5.3.1 (2026/1/14)
- 新增
- mount: 新增
--cache-scan-interval选项来调整缓存盘扫描间隔 - umount: 支持
--update-fstab来删除对应配置 - fsck: 允许检查某个路径的数据完整性
- debug: 支持使用
--pid来指定进程 ID - 支持 ioctl: 设置文件或者目录为只读或者只允许追加写
- 新增
--trace-file来开启并收集 tracing - 允许通过 S3 接口只读访问按需导入的文件系统
- 支持导入 MinIO 的任意桶
- 为从其他桶导入的数据建立缓存
- 支持通过 RDMA 访问缓存数据
- 支持限制访问对象存储的 QPS
- Python SDK: 支持
status、warmup、merge和info命令接口 - Python SDK: 给 clone 接口新增
follow-link参数
- mount: 新增
- 改进
- mount: fstab 默认新增
nofail选项来忽略挂载失败 - status: 默认过滤出工具的会话
- restore: 新增进度条
- warmup: 在使用
--check选项时按优先级统计数据分布 - warmup: 增加
--follow-link选项 - 改进 info 和 warmup 等交互操作的响应时间
- import: 遇到 List 错误时将立即失败
- objbench: 修复不准确的日志
- gateway:在完成分段上传时检验用户提供的 ETag 是否准确
- gateway: 压缩客户端的访问日志
- sync: 允许配置更多客户端参数(比如
--mountpoint) - sync: 改进使用
jfs://协议时创建目录的错误处理 - sync: 提升使用
jfs://协议同步大文件的性能 - 改进元数据缓存的清理速度
- 改进 DirectIO,支持更多类型的读请求
- 碎片合并时自动清理数据缓存
- 使用后台任务限速来限制预热时的带宽
- 默认收集读放大相关指标
- 挂载时验证配置文件中的文件系统名
- 使用配置文件中保存的密码
- 允许通过环境变量
HOSTNAME定制客户端的机器名 - 减少缓存相关的锁竞争
- 支持 CIDR 格式的缓存节点 IP
- 客户端重连次数遵守
--io-retries参数 - 默认启用 FUSE 的
EnableReadDirPlusAuto功能以使能内核优化 - 确保源集群连上后才允许访问可写镜像集群,避免出现错误
- 当镜像不可用时访问源集群以避免不可用
- 使用镜像的文件系统名作为挂载点的名称
- 修复多个文件系统的指标混到一起的问题
- 调整数据复制时的监控,减少预期内的错误请求的噪音
- 当支持 Ceph 的客户端损坏时自动重新下载
- Windows: 默认在关闭文件时持久化数据
- Windows: 改进后台挂载
- Windows: 新增
-–create-perm挂载选项 - Windows: 支持定制文件系统名
- Windows: 将 administrator 用户的 UID 设为 0(与 Linux 的 root 用户一致)
- Windows: 支持 DirectIO
- Windows: 优化挂载速度
- 优化淘汰磁盘缓存时的锁竞争
- 不再重试超时的分布式缓存请求
- mount: fstab 默认新增
- Bug 修复
- 解决 statvfs 在配置了
--block-interrupt时可能卡住的问题 - 修复 fstab 中的挂载选项可能不正确的问题
- 修复集群模式运行 sync 时 umask 不正确的问题
- 修复并发执行 auth 命令时可能失败的问题
- 修复可写镜像的 ping 指标不准确的问题
- 修复标量类型指标的 0 值不上报的问题
- 修复内核缓存导致 append 模式写相互覆盖问题
- 修复镜像的原集群使用不同版本时的兼容性问题
- Windows: 修复 GID 映射问题
- 解决 statvfs 在配置了
JuiceFS 5.2.23 (2026/1/29)
- 改进
- 提升挂载子目录时
statfs的性能和稳定性
- 提升挂载子目录时
- Bug 修复
- 修复启用共享块设备时可能误将预期外的数据上传到对象存储的问题
JuiceFS 5.2.22 (2026/1/4)
- 改进
- 新增
idle-writer-wait参数改善缓慢写入时的碎片问题
- 新增
- Bug 修复
- 修复检查 Ceph 支持时可能异常退出的问题
JuiceFS 5.2.21 (2025/12/22)
- 改进
- Python SDK:
clone支持follow-link参数 - 及时关闭闲置的分布式缓存连接以释放
fd
- Python SDK:
- Bug 修复
- 修复缓存节点在高压力下的锁竞争问题
- sync: 修复日志中的错误数不对的问题
JuiceFS 5.2.20 (2025/12/8)
- 改进
- 移除缓存节点时中断进行中的请求以尽快重试
- 提升进度条的有效数字到 3 位
- Bug 修复
- sync: 修复跟不支持 URL 编码的对象存储的兼容性
- 修复
readdir可能导致数据不一致的问题 - 修复 Mac 下对
rename的WHITEOUT的支持问题
JuiceFS 5.2.19 (2025/11/7)
- 改进
- 提高缓存节点下线时缓存数据迁出的速度
- 支持通过
JFS_RLIMIT_NOFILE环境变量来调整客户端的文件描述符限制 - object/oss: 支持切换到 v1 版本的签名
- object/oss: 在
LIST接口中仅当 token 非空时才传入
JuiceFS 5.2.18 (2025/10/30)
- 新功能
- 新增
case-insensitive挂载参数以支持文件名不区分大小写 - Python SDK: 增加列举回收站文件的接口
- 新增
JuiceFS 5.2.17 (2025/10/20)
- 改进
- sync 命令支持通过不同类型的时间戳进行过滤
- sync 命令不再记录为新的会话
- Python SDK: 增加配额管理相关的接口
- Python SDK: clone 操作支持拷贝源文件的属性
- Bug 修复
- 修复客户端重连时目录缓存中的引用计数可能未正确重置的问题
- 修复 FUSE 请求可能被频繁中断的问题
- 修复在 macOS 上打开文件时可能卡死的问题
- Windows: 修复后台运行时,
cache-dir参数未正确应用的问题
JuiceFS 5.2.16 (2025/10/11)
- Bug 修复
- 修复特定情况下缓存组异常可能导致客户端读取数据失败的问题
JuiceFS 5.2.15 (2025/9/24)
- 新功能
- 支持两级分布式缓存
- 改进
- 优化客户端内存中读写缓存的分配,避免竞争严重时导致性能恶化
- 允许限制从缓存组读取数据时的带宽
- 提升使用
rmr命令删除大目录时的性能
- Bug 修复
- 修复多挂载点访问时,可能读到内核缓存的旧属性的问题
- 修复获取缓存盘用量失败时,可能导致客户端进程崩溃的问题
- sync: 修复同步大文件时可能发生死锁的问题
JuiceFS 5.2.14 (2025/9/17)
- 改进
- 限制缓存节点的内存使用,确保遵循
buffer-size参数设定
- 限制缓存节点的内存使用,确保遵循
- Bug 修 复
- 改进多进程并发下载客户端时可能产生冲突的情况
- auth: 修复
auth命令没有提示输入accesskey和secretkey的问题 - 修复可用缓存空间很小时可能导致异常退出的问题
JuiceFS 5.2.13 (2025/9/9)
- 改进
- 当收到多个
GET请求获取同个对象时,缓存节点调整为只占用一个后台并发 - 缓存节点不要重用通过零拷贝发送的数据
- 当缓存数据的校验和不足时直接报错,避免客户端崩溃
- 当收到多个
- Bug 修复
- 修复挂载时
--block-interrupt参数未被正确解析的问题
- 修复挂载时
JuiceFS 5.2.12 (2025/9/3)
- 改进
- 去掉
fsck和gc工具对对象存储加密配置的不必要检查 - 分布式缓存节点发送数据时优先使用硬盘上已保存的校验和
- 优化并发访问缓存节点的相同数据时的性能
- 优化客户端在扫描缓存盘建立索引时的锁竞争
- 改进对阿里云 OSS 未知错误类型的处理
- gateway: 减少在列出对象时的内存使用
- Java SDK: 鉴权时优先使用 Kerberos
- sync: 使用
--files-from参数时自动忽略不存在的文件 - sync: 减少并发同步的大文件个数
- sync: 支持在源和目标是同一个 JFS 文件系统时使用
--cache-group参数
- 去掉
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参数来避免交互式确认
- 给
JuiceFS 5.1.14 (2025/3/17)
- 新增
- 支持 bunny 对象存储
- Bug 修复
- 修复访问刚拆分的目录的问题
JuiceFS 5.1.13 (2025/2/27)
- 改进
- fsck 命令修复复制的数据
- 降低缓存盘的锁竞争
- 修复 Python SDK 在启用分布式缓存时异常退出的问题
- 在 gc 命令的日志中记录泄漏对象的修改时间
- 提升 gc 命令的扫描速度
- 修复显示进度条时日志重定向不对的问题
- 修复 fsck 误报新写入的文件不完整的问题
- 改进 sync 的进度条的性能,支持每秒扫描百万文件
JuiceFS 5.1.12 (2025/2/22)
- 改进
- 当没有配置缓存单机缓存时重置分布式缓存的权重
- Bug 修复
- 修复预取数据失败可能导致 panic 的问题
JuiceFS 5.1.11 (2025/2/13)
- 改进
- 增加 --readahead-ratio 参数来控制预读导致的读放大
JuiceFS 5.1.10 (2025/2/11)
- 新增
- 新增挂载参数
--umask以覆盖业务的 umask - sync 命令新增
--files-from参数以同步目录或者文件列表 - 支持在缓存节点使用 directio 方式读缓存数据
- 新增挂载参数
- 改进
- 改进 sync 的并发遍历
- 增加读放大相关的监控指标
- 减少无本地缓存时的读放大
- 解决 rmr 命令的进度条和日志错位的问题
- 改进 watchdog 在挂载点卡主时打印的现场信息
- 增加进程心跳以检测进程卡顿问题
- 不重发需要长时间处理的请求
- 减 少有大量数据同步任务时的内存占用
- 端口 meta 连接后不重置缓存集群列表,减少抖动
- 优化客户端的锁竞争
- 减少往百度云 BOS 写入数据时的内存分配
- 允许调整客户端 GOGC 设置
- 支持升级 Ceph 等特殊功能客户端
- Bug 修复
- 解决可能读到旧数据的问题
- 修复同时挂载子目录导致可能失败的问题
- 修复导出的 JSON 文件中回收站文件类型不对的问题
- 修复 warmup 命令重复预热列表中的路径的问题
JuiceFS 5.1.9 (2025/1/16)
- 改进
- 优化 getattr 的元数据缓存
- 改进 Java SDK 的后台线程管理
- Bug 修复
- 修复使用 copy_file_range 拷贝 4GiB 的数据时导致死循环的问题
- 修复平滑升级时不能继承某些环境变量的问题
- 修复重复发送导入元数据时请求的问题
- 修复使用控制台保存的 ak sk 时忽略了本地保存的对象存储的地址的问题
JuiceFS 5.1.8 (2025/1/8)
- 改进
- 优化 mmap 的写入性能
- 提升随机写入的性能
- 提升缓存数据迁移的性能
- Bug 修复
- 修复 sync 命令的 check-all 在多机模式下不工作的问题
- 修复不能关闭 UID 映射的问题
JuiceFS 5.1.7 (2024/12/30)
- 改进
- 当子进程杀不掉时尝试 abort FUSE 挂载点
- 杀掉可能死锁的服务进程以恢复服务
- 均衡使用不同大小的缓存盘
- S3 网关增加
--head-dir允许通过 HEAD 请求访问目录 - 允许以 URL 格式来挂载和执行子命令(不需要 auth 步骤)
- 给 status 命令增加社区版类似的统计字段
- Bug 修复
- 解决丢失的 FUSE 请求导致死循环的问题
- 解决元数据连接断开时可能异常退出的问题
- 解决启动后可能连不上分布式缓存的问题
JuiceFS 5.1.6 (2024/12/4)
- 改进
- 区分 gc 命令中失败的 delete 请求
- 私有部署:支持从控制台配置 AK/SK
- Bug 修复
- 忽略 macOS 下设置扩展属性时不支持的标志位
JuiceFS 5.1.5 (2024/11/29)
- 改进
- 提升下线缓存节点时迁移缓存数据的速度
- 给 Python SDK 增加 fsspec 支持
- Java SDK 支持
juicefs.io-retries
JuiceFS 5.1.4 (2024/11/4)
- Bug 修复
- S3 网关中返回
Content-Type - 修复回写模式下重启后不会上传遗留的数据块的问题
- S3 网关中返回
JuiceFS 5.1.3 (2024/10/28)
- 新功能
- 支持按需导入对象存储的目录
- 改进
- 优化内存分配的性能
- Bug 修复
- 解决 AWS IAM 的超时过长的问题
- 解决 US3 的分块上传问题
- 修复
warmup使用文件列表的问题
JuiceFS 5.1.2 (2024/10/16)
- 改进
- 支持内存缓存按时间过期
- Bug 修复
- 修复 watchdog 不工作的问题
- 使用同一个进程运行支持 Ceph 的版本
- Python SDK: 增大 buffering 到 128K
- 修复 rename 和 unlink 时可能异常退出的问题
- 在 macOS 支持 XattrNoSecurity 标志位
JuiceFS 5.1.1 (2024/9/19)
- 改进
- 提升 Python SDK 的顺序读性能
- 解决在 meta 不可用时 watchdog 可能误杀服务进程的问题
- 改进多副本缓存的预热
- 改进缓存盘的故障检查,容忍短时间的性能下降
- 通过
--group-compress=false关闭访问远端缓存时的数据压缩
- Bug 修复
- 解决异常重启时 FUSE 请求可能丢失的问题
- 修复 S3 网关的 List 操作可能失败的问题
JuiceFS 5.1.0 (2024/9/10)
- 新功能
- 支持通过镜像文件系统写入数据 (beta)
- 支持完整数据读写功能的 Python SDK (beta)
- 支持两副本的分布式缓存
- S3 网关支持多用户和认证管理
- 新增
compact命令来对指定路径做碎片整理 - 允许递归删除时跳过回收站(
rmr --skip-trash) - 允许导入文件时进行更新 (
import --update,import --force-update) - 新增 "dummy" 和 "null" 为对象存储,方便测试
- 改进
- 增加更多的监控指标
- 提升修改回收站时间的性能
- 提升导入文件时的性能
- 异步写错误日志,避免日志盘慢影响服务
- 默认限制 CPU 核心的数量(
GOMAXPROCS=16),避免因为网络拥堵时 CPU 使用量飙升 - 降低客户端缓存的内存使用,提升访问目录的性能
- 提升 S3 网关的 List 的性能
- 支持
--max-write来调整 FUSE 单次写入数据量的大小 warmup --check命令会显示详细的缓存位置- 新增
mount --cache-large-write来给顺序写入的大文件建立缓存 - 支持使用
--cache-size=-1来使用盘上的所有可用空间 - 支持和社区版相同的
--cache-expire参数 - 支持在 macOS 下做平滑升级
- 通过
auth命令对配置文件中的隐私信息做更强加密 - 在命令的
--help信息中显示全局参数 - 允许在 Java SDK 中配置
juicefs.groups为用户组信息 - 允许在控制 台查看 Java SDK 的配置参数
- 避免 Java SDK 创建太多线程
- 导入当前对象存储桶时自动忽略分块写入的数据
- 允许使用
destroy --force来跳过对象存储的清理 - 修复
info命令的数据块信息可能不准的问题 - 解决极端情况下内存缓存占用内存过大的问题
- 解决
debug命令可能卡住的问题 - 延长默认分布式缓存的超时到
65秒,并可配置 - 改进
clone命令对 ACL 等的支持 - Java SDK 中支持
juicefs.umask - 给
quota命令增加--create来自动创建目录 - 新增
--max-readahead参数来控制顺序读时的预读窗口 - 减少无单机缓存时访问分布式缓存的读放大
- 提升
gc和fsck命令的扫描元数据的速度 - 限制缓存节点并发处理的请求数以避免过载,让客户端直接访问对象存储
- 在日志中记录导致断开缓存节点的错误信息
- 减少删除大型克隆目录时对元数据服务造成的压力
- 提升
objbench的性能
- Bug 修复
- 修复 macOS 下文件扩展属性的兼容性问题
- 修复被拆分的目录的 ACL
- 修复
readdir被中断时可能返回重复文件的问题 - 修复拿不到本机 IP 可能会崩溃的问题
- 修复
summary命令中可能有被拆分的目录的信息没有被合并的情况 - 解决
--max-delete不生效的问题 - 修复使用
objbench测试文件系统功能时的问题
JuiceFS 5.0.25 (2024/9/2)
- Bug 修复
- 使用
warmup --evict时可能误删 writeback 模式待上传的数据
- 使用
JuiceFS 5.0.24 (2024/9/2)
- 改进
- 允许完全停止块设备的数据写入
- 降低
objbench测试 List 操作的次数为线程数
- Bug 修复
- 修复
gc命令在扫描大型文件系统的元数据超过一个小时时可能将正常数据误判为泄漏的问题 - 修复
debug命令在 CSI 中执行失败的问题 - 修复
warmup -check在缓存缺失时的短连接问题
- 修复
JuiceFS 5.0.23 (2024/8/2)
- 改进
- 允许部分客户端挂载共享块设备
- 增加
--object-clients来提升访问对象存储的性能
JuiceFS 5.0.22 (2024/7/30)
- 改进
- 给 Java SDK 增加 skipNBytes 接口
- Bug 修复
- 修复异常回应导致客户端崩溃的问题
- 修复可写镜像的缓存组异常的问题
- 修复可写镜像的重复消息导致连接异常的问题
JuiceFS 5.0.21 (2024/6/28)
- 新增
- 新增
--weight-unit参数来自动计算--group-weight
- 新增
- Bug 修复
- 修复损坏的拆分目录导致死循环的问题
- 修复 import 功能(5.0.18 引入)
- 修复往加密的文件系统中导入文件的问题
JuiceFS 5.0.19 (2024/6/20)
- 改进
- 支持异步的 Direct I/O
- 优化 S3 网关的 List 性能
- Bug 修复
- 修复在可写的镜像中使用缓存组时异常退出的问题
- 修复可写镜像初始化时请求可能失败的问题
- 修复热更新时不能启用扩展属性的问题
- 修复磁盘没有空间时导致预热卡主的问题
- 修复 S3 网关中的元数据缓存导致创建文件失败的问题
- 修复 S3 网关中被拆分的目录的元数据缓存没有生效的问题
JuiceFS 5.0.18 (2024/6/3)
- 改进
- 减少往已经写满的缓存盘预热时的内存使用
- 使用 Git 哈希作为 Java SDK 的动态链接库的版本号
- 避免数据合并卡主时不能及时删除数据的问题
- 改进 Java SDK 中 rename 失败时的错误信息
- 减少不必要的对象存储初始化操作,减少依赖
- Bug 修复
- 修复 S3 网关不支持只有子目录权限的情况
- 修复 S3 会返回分块上传的临时文件的问题
- 解决 Java SDK 中的 gson 的版本冲突问题
- 解决
gateway和webdav子命令始终将日志写入默认日志文件的问题 - 修复 op_error 的监控指标不对的问题
- 修复更新 ACL 后文件属性未更新的问题
- S3 网关中自动创建的目录应该返回 404 而不是 200
- 修复 S3 网关中下载文件时权限检查不足的问题
- 修复 S3 网关的遍历分段上传的分页问题
JuiceFS 5.0.17 (2024/5/2)
- 改进
- 重定向分布式缓存请求到预期的节点
- 减少并发的缓存数据均衡
- 按需迁移缓存数据到新加入的缓存节点
- 修复根目录的元数据缓存
- 避免重复的 notify FUSE 调用
JuiceFS 5.0.16 (2024/4/16)
- 改进
- 降低迁移缓存数据时的带宽以减少对性能的影响
- 10 分钟内出现 10 次缓存盘错误才摘盘
- 增加启用可写镜像时的重试次数
- 优先迁移热点数据以提升缓存命中率
- 避免并发的缓存迁移
- 增加缓存节点加入和移除时的日志
- 改进失败的读请求的限速
- 改进
writeback模式的写入性能
- Bug 修复
- 修复缓存数据量指标不更新的问题(5.0.15 引入)
JuiceFS 5.0.15 (2024/4/7)
- 改进
- 在挂载命令中指定
--no-sharing时忽略--group-port - 在
--no-sharing时不将完整的数据块写入分布式缓存。 - 改进跨数据块时的预读
- 出现 10 次缓存盘错误时才摘盘,减少误判
- 让多块缓存盘在不同的时间刷新内存索引以减少对性能的影响
- 减少碎片合并对
writeback模式写入性能的影响
- 在挂载命令中指定
- Bug 修复
- 改进分布式缓存集群中多个缓存盘的数据分布不均衡的问题
- 修复访问从其他存储桶导入的文件的指标不对的问题
- 修复预热导入的文件时指标不对的问题
JuiceFS 5.0.14 (2024/3/25)
- 新增
- 预热缓存时支持指定优先级(
--cache-priority)。
- 预热缓存时支持指定优先级(
- 改进
- 减少长时间不访问的已打开目录的内存使用。
- 缓存盘没有足够空间时不再写入缓存数据。
- Bug 修复
- 修复内存缓存模式不命中的问题。
- 修复可写镜像模式中扩展属性的缓存未失效的问题。
JuiceFS 5.0.13 (2024/3/19)
- 改进
- 改进顺序读大文件的性能
- 改进 destroy 命令的可靠性
- 改进 POSIX ACL 的兼容性,当 mask 是 0 时忽略设置的规则
- Bug 修复
- 解决卸载时可能的死锁问题
- 修复 Java SDK 中可能提前关闭正在写入的文件的问题
- 丢弃严重超时(40 分钟)的碎片块
- 解决 Java SDK 可能初始化失败的问题
- 修复 sync 命令使用 jfs:// 同步文件时 stickybit 丢失的问题
- 解决 copy_file_range 到自身时会死锁的问题
JuiceFS 5.0.12 (2024/3/4)
- 新增
- 支持写入数据到镜像集群
- Bug 修复
- 访问拆分的目录时权限检查不对的问题
- 修复未启用数据复制的镜像文件系统可能奔溃的问题
JuiceFS 5.0.11 (2024/2/19)
- 改进
- sync: 支持超过 10 TiB 的文件
- Bug 修复
- 修复 bench 的进度条不准确的问题
- 修复客户端缓存中目录的属性可能不对的问题
- 解决初始化 Java SDK 时可能 CPU 过高的问题
JuiceFS 5.0.10 (2024/1/24)
- 新增
- 新增挂载参数
--sort-dir来对 readdir 接口返回的文件按名字进行排序,以支持 nfsd 的正确访问。 - 新增挂载参数
--hide-internal来隐藏内部特殊文件。
- 新增挂载参数
- 改进
- 增加碎片合并等后台任务的耗时指标。
- 增大缓存盘超时时间到 60 秒。
- Bug 修复
- Java SDK 使用存储在 jfs 上的 grouping 文件时可能初始化失败的问题
JuiceFS 5.0.9 (2024/1/20)
- 改进
- 改进 gateway 的错误日志,记录除 404 响应外的所有错误情况
- 在 gateway 的访问日志中增加请求 ID 以便于区分不同 S3 请求对应的操作。
- Bug 修复
- 修复 sync 命令使用 jfs 协议头同步长文件名失败的问题
- 解决 gateway 中并发的 PUT 请求可能失败的问题
JuiceFS 5.0.8 (2024/1/13)
- 改进
- 连接新缓存节点失败时进行重试,最多 5 次。
JuiceFS 5.0.7 (2024/1/7)
- 新增
gateway和webdav命令新增--log参数来指定错入日志路径gateway命令新增--access-log-files来指定保留的访问日志文件个数
- 改进
- 减少迁移本地数据文件时的无用日志
- Bug 修复
- 修复七牛云的访问地址
- 修复挂载时生成的配置不对的问题
- 修复 import 命令访问对象存储失败的问题
JuiceFS 5.0.6 (2023/12/21)
- Bug 修复
- 修复使用 jfs:// 同步绝对路径的符号链接错误的问题
- 使用配置保存的加密口令,避免重复检查对象存储权限
JuiceFS 5.0.5 (2023/12/14)
-
新增
- 新增挂载参数
--initial-readahead来提升顺序读的性能
- 新增挂载参数
-
改进
- 支持使用
--group-network选择虚拟网卡
- 支持使用
-
Bug 修复
- 修复往 COS 同步文件名很长的大文件可能失败的问题
- 修复后台任务的带宽限速不生效的问题
JuiceFS 5.0.4 (2023/12/7)
- Bug 修复
- 修复后台任务的带宽限制无效的问题。
- 修复使用只有子目录挂载权限的 token 时挂载失败的问题。
- 修复原地升级时碰到容器中的挂载点导致失败的问题。
- 修复缓存盘中有待上传的数据块损坏导致进程退出的问题。
- 修复挂载时重复检测对象存储访问域名的问题。
- 修复在容器中挂载时
-o background失效的问题。 - 修复当进程的 PID 复用导致缓存的进程 GID 可能不对的问题。
- 修复当挂载点跟文件系统同名导致挂载失败的问题。
- 修复客户端中缓存的目录属性可能不对的问题。
JuiceFS 5.0.3 (2023/11/30)
-
新增
- 新增
--group-network和--group-port来制定分布式缓存所用的网络接口和端口 - 在 Java SDK 中支持 flip 参数
- 新增
-
改进
- 增大单文件的最大预读窗口到 512 MB
- 在各个子命令中自动下载支持 Ceph 的客户端版本
- 改进配置文件对比方式,减少更新本地配置文件的可能
- 降低小数据量连续读时的读放大问题
- 预热数据时检查缓存空间是否足够,空间不足时给个警告
- 将缓存节点不可用时的日志调整为警告级别
-
Bug 修复
- 修复遍历 Ceph 的数据时可能奔溃的问题
- 修复在客户端进程平滑重启后 预热等任务卡死的问题
- 修复在后台挂载时可能死锁的问题
- 修复在多次重试后仍然拿不到配置文件后奔溃的问题
JuiceFS 5.0.2 (2023/10/16)
-
新增
- 支持设置 JFS_NO_CHECK_OBJECT_STORAGE=1 来跳过对象存储的权限测试
-
改进
- 提升挂载的速度和稳定性
- 支持在同一个机器上部署独立缓存节点
- 降低检查存储空间是否足够的频率以避免空间无法释放时 CPU 占用过高的问题
-
Bug 修复
- 修复重复询问 COS 的 APPID 的问题(5.0.1 引入)
- 修复失败的 chmod 可能导致权限不对的问题
- 修复硬链接相关的元数据缓存问题
- 修复有空洞的文件上 fallocate、copy_file_range 可能不对的问题
JuiceFS 5.0.1 (2023/10/30)
-
新增
- 使用共享块设备加速小文件的读写
- 将分块写入的文件在指定时间后以兼容格式转存到对象存储
- 支持导入或者转存的文件建立单机和分布式缓存
- 支持主动清除指定文件或者目录的缓存
- 查看指定文件或者目录的缓存建立情况(比例)
- 通过挂载参数指定某个客户端写入数据的存储级别
- 支持异构的缓存集群(指定不同的空间权重)
- 支持主动下线缓存节点(将权重设置为 0)
- 允许通过挂载参数指定缓存淘汰策略(比如不淘汰)
- 支持限制后台任务使用的对象存储带宽
- 允许调整强制写入数据的等待时间
--flush-wait
-
改进
- 改进分布式缓存节点间的均衡性
- 默认对所有的缓存数据做完整性校验
- 感知缓存盘的故障(卡主或者 EIO 错误),自动移除故障盘,自动移除无可用缓存盘的缓存节点
- 在使用根目录重建缓存时保留 20% 剩余空间
- 使用一致性哈希管理多块缓存盘,减少添加或者减少缓存盘时的缓存数据移动
- 改进访问超大型目录(大目录超过千万文件,包括根目录)的内存占用
- 在 gateway 和 Java SDK 中检测循环的符号链接
- 在日志中记录远端缓存节点的错误信息
- 删除数据时同时清理分布式缓存以尽快回收空间
- 尽量避免写满缓存盘
- 提升碎片合并的效率
- 在线调整挂载参数时检查是否有 FUSE 内核选项变化,使用叠加挂载点的方式保证生效
- 限制顺序读时的预读窗口大小 ,避免使用很大 buffer 时性能反而下降的问题
- 提升对象存储全局带宽限速的精度
- 在对象存储的错误日志中包含请求 ID
JuiceFS 4.9.23 (2023/10/18)
-
新增
- 使用 JFS_S3_VHOST_STYLE 来指定使用 vhost 方式访问 S3 (部分 S3 兼容的对象存储不支持 path 方式)
-
Bug 修复
- 修复 S3 gateway 创建的文件没有及时关闭导致泄漏的问题。
JuiceFS 4.9.22 (2023/9/20)
- 改进
- 支持在 writeback 模式将新写入的数据写入到分布式缓存中
JuiceFS 4.9.21 (2023/9/14)
- 改进
- 减少顺序写入大文件时的碎片
- 优化在 buffer 用满时的写入性能问题
- 当对象存储比较慢时减少 buffer 的使用
- Bug 修复
- 修复低限速时可能卡死的问题
JuiceFS 4.9.19 (2023/8/31)
- 改进
- 当 FUSE 的请求超过 6 分钟后强制中断
- 当读写请求阻塞超过 5 分钟时主动中断以避免卡死
- Bug 修复
- 修复挂载点热升级时可能死锁的问题
- 修复 挂载时报 UUID 不对的问题
JuiceFS 4.9.18 (2023/8/25)
- 改进
- 超过 1 分钟后自动重试 meta 请求
- 避免大量客户端的缓存同时失效导致对服务器造成冲击
- Bug 修复
- 解决卸载过程中可能死锁的问题
JuiceFS 4.9.17 (2023/8/21)
- 改进
- 解决大量客户端频繁预热根目录的元数据缓存导致服务过载的问题
- 延长 sync 的 --flush-wait 到 60 秒以减少碎片
- 收到超时的应答时打印日志
- 使用多个 gluster 客户端来提升性能
- Bug 修复
- 修复 Java SDK 中可能使用已关闭的文件系统的问题
- 修复更新 mtab 信息导致卡死的问题
JuiceFS 4.9.16 (2023/8/8)
- 改进
- 根据跟目录的元数据缓存预热请求的响应时间自动调整间隔,防止过载
JuiceFS 4.9.15 (2023/8/7)
- Bug 修复
- 解决访问损坏的目录导致客户端 crash 的问题
JuiceFS 4.9.14 (2023/7/27)
- 新增
- 支持使用 Gluster 作为对象存储
- 支持通过 S3 网关访问指定挂载点下的绝对路径的符号链接
JuiceFS 4.9.13 (2023/7/25)
- 改进
- 给 sync 命令增加
--flush-wait来调整自动写入数据的间隔以减少碎片
- 给 sync 命令增加
JuiceFS 4.9.11 (2023/6/29)
- 改进
- 新增
--prefix-internal参数来给内部文件名加上前缀避免冲突
- 新增
JuiceFS 4.9.10 (2023/6/26)
- Bugfix
- 修复在高负载下热更新可能导致卡死的问题
- 修复合并高频写入后可能导致其他文件长度不对的问题(读到多余的数据,4.9.6 引入)。
- 修复删除 Quota 时错误码处理不对的问题。
JuiceFS 4.9.9 (2023/6/19)
- 改进
- 减少不必要的内存清零,提升读的 性能
- 给 sync 命令增加 jfs 的客户端参数
JuiceFS 4.9.8 (2023/6/15)
- 改进
- 减少重建缓存时的 warning 日志
JuiceFS 4.9.7 (2023/6/12)
-
改进
- 给 sync 命令新增 --inplace 参数来原地更新 JuiceFS 中的文件,以减少临时文件和重复写入的数据量
-
Bug 修复
- 修复限速导致的死锁(4.9.5 引入)
- 使用 Rename 覆盖目录导致客户端 crash (4.9.3 引入)
JuiceFS 4.9.6 (2023/6/1)
- 改进
- 使用 jfs:// 同步数据时支持 umask 环境设置
- 通过并发读提升合并大量碎片的性能
- 减少重复的碎片合并,减少写放大
- 使用异步提交来合并频繁写入的数据
JuiceFS 4.9.5 (2023/6/1)
- Bug 修复
- 修复 KS3 生成的域名
- 修复当用户的 GID 变化导致客户端 crash 的问题
- 解决可能使用已经释放的 context 的问题
- 解决 getxattr 错误号不对的问题(把内部错误号当做标准错误)
- 改进
- 减少 UID 冲突的警告日志
- 进一步提升限速的准确性
- gc 命令应该扫描待删除的文件以减少误报
JuiceFS 4.9.4 (2023/4/19)
-
改进
- 记录所有的 meta 连接的错误
-
Bug 修复
- 修复挂载子目录时 warmup 失败的问题(4.9.0 引入)
JuiceFS 4.9.3 (2023/4/19)
- 改进
- 使用 PIPE 来传递隐私信息给子进程
- 支持使用 df 看子目录的容量
- 给 sync 命令写入数据到 jfs:// 增加失败日志,用户排查是否有临时文件泄漏
- Bug 修复
- 修复 CopyFileRange 在用户有多个组时权限检查不对的问题
- 修复尝试删除大目录导致的性能问题(被合并了)
JuiceFS 4.9.2 (2023/4/19)
- 新增
- 增加 quota 子命令
- 改进
- 限制数据复制使用的带宽(用于后台任务的总带宽)
JuiceFS 4.9.1 (2023/4/6)
-
改进
- 改进镜像集群数据同步的容错能力
-
Bug 修复
- 修复启用数据复制时意外退出的问题(4.9.0 引入)
- 修复 UID 映射可能导致冲突的问题
- 修复 fallocate 后文件长度不对的问题(缓存未完全生效)
JuiceFS 4.9.0 (2023/3/8)
-
新增
- 新增多个子命令 gateway, WebDAV, debug, summary, clone, sync、stats、profile、status、destroy、bench、objbench, load, fsck, gc
- 支持使用多个 bucket 来存储数据(%d 通配符)
- 从控制台查看客户端的命令行参数
-
改进
- S3 接口兼容 S3A 访问方式
- 在数据合并后,主动失效客户端的数据索引缓存,减少可能的 404 请求
- 改进从挂载点管理回收站的能力(按关键字查看和恢复等)
- 调试接口监听到 127.0.0.1 而不是 localhost
- 支持 HTTP DNS(解析元数据的 IP 地址并验证)
- 限制内存不够时写入等待时间为最多 1 秒钟,避免大量读写导致内存竞争时写卡主的问题
- 优化元数据缓存的性能和内存使用
- 减少分布式缓存的读放大问题(第一次读用 Range Get)
- 将恢复文件时创建的目录的权限调整为 0755
- 支持加密的 OBS 桶
- 改进列出超大目录时导致元数据响应变慢的问题。
-
Bug 修复
- 修复 S3 List 接口中对象不存在的错误码
- 修复 S3 接口 List 空目录的问题
-
Java SDK
- 支持配置 Kerberos 用户映射规则
- 支持给 Hadoop 应用配置独立缓存集群
- 支持只允许 Java SDK 访问的 token (一般跟 Kerberos 和 Ranger 配合使用)
- 在 Java 的日志中查看全部错误日志
- 改善 Java SDK 每次读取小于 128KB 时的性能
- 客户端在启动时清理缓存数据,解决因生命周期短而无法及时清理缓存的问题
- 支持通过 Token 限制 Hadoop 和 S3 网关只能访问某个子目录
- 支持使用 JuiceFS 来保存缓存节点列表文件
- 在启用 Kerberos 的 YARN 集群中,支持用定时任务更新节点列表
- 解决 Java SDK 的依赖冲突问题
JuiceFS 4.8.7 (2023/2/28)
- Bug 修正
- 修复从华为云 OBS 读最后一个字节时数据错误的问题。
JuiceFS 4.8.6 (2023/2/16)
- Bug 修正
- 解决使用了 writeback_cache FUSE 参数时写入文件碰到 permission denied 错误的问题。
JuiceFS 4.8.5 (2023/2/7)
- Bug 修正
- 修复 writeback 模式不工作的的问题(4.8.1 引入)
JuiceFS 4.8.4 (2023/1/9)
-
改进
- 当缓存盘快满时改成同步上传,避免写满缓存盘。
- 允许在 Impala 中使用不同的 scheme 来访问 JuiceFS。
- 同时支持 KS3 的公有云和私有云。
- 解决在高并发的机器上 FUSE 的读线程太多导致 CPU 竞争问题。
-
Bug 修正
- 修复 warmup 命令因为并发操作导致 crash 的问题。
- 不要在 Java SDK 中做缓存数据迁移。
- 解决 readdir 缓存未失效的问题。
- 修复 import 命令不稳定的问题。
- 解决 对象存储的 PUT 操作的耗时重复计算的问题。
JuiceFS 4.8.3 (2022/11/30)
- 改进
- 允许设置对象存储出错重试次数。
- 延迟删除因数据合并导致的删除,减少并发的读操作失败的可能性。
JuiceFS 4.8.2 (2022/11/24)
- Bug 修正
- 将内置的 Apache Ranger 降级到 2.1.0 以解决兼容问题。
- 解决 Java SDK 中打包的 jersey 的冲突问题。
- 解决 Java SDK 中访问 OBS 的域名不对的问题。
JuiceFS 4.8.1 (2022/10/28)
-
新特性
- 支持火山引擎
- 支持调整文件系统的哈希前缀
-
改进
- 给 Windows 上访问 wmic 加上 5 秒超时。
- 一旦发现有内存引用计数错误,打印更多相关调用信息到日志问题。
- 数据合并时不使用 writeback 模式,确保客户端都能读到合并后的数据。
- 允许使用 AWS_REGION 来指定 KS3 的私有 部署区域。
- 调整读数据超时机制,确保低带宽时不容易超时失败。
- 限制并发的分布式缓存请求为 1000,避免带宽竞争导致失败。
- 不使用 buffer-size 指定的内存来做分布式缓存迁移,避免影响读写性能。
-
Bug 修正
- 修复分布式缓存节点断开连接时的竞争问题。
- 修复挂载的子目录被拆分时导致 lookup 不对的问题。
- 解决 Java SDK 中 4 个以上线程同时访问一个文件导致性能下降的问题。
- 解决 rmr 删除后内核缓存不对的问题。
- 修复元数据操作的竞争导致 crash 的问题。
- 修复 Java SDK 的随机读时预读数据可能不对的问题。
JuiceFS 4.8.0 (2022/08/25)
-
新特性
- 支持使用 Kerberos 作为 Java SDK 的用户验证。
- 支持使用 Apache Ranger 在 Java SDK 中管理文件权限。
- 新增 dump 命令把元数据导出为跟社区版兼容的 JSON 格式。
- 新增挂载参数
--fsck用来检测文件系统的数据完整性。 - Java SDK 支持苹果 M1 芯片
- 新增 --readdir-cache 参数来启用内核的 readdir 缓存(需要同时延长 entrycache 和 attrcache 否则性能更差)。
-
改进
- 改进递归删除 rmr 命令,在删除大目录时提供进度信息。
- 允许在容器内做预热、递归删除等操作。
- 显示预热操作的进度信息。
- 改进元数据缓存,避免快速遍历时内存暴涨。
- 改进遍历回收站中文件的性能。
- 调整 Java SDK 的 access log 格式,可以使用社区版的 profile 命令来分析。
- 在 Java SDK 的文件状态中返回是否设置了 ACL。
- 统一在 Java SDK 中对过长的文件名错误使用统一的异常。
- 改进大量 readdir 操作时的锁竞争问题。
- 允许 S3 网关和 Java SDK 设置文件路径缓存。
- 允许延迟 hflush 以提升 HBase 写入 WAL 时的性能。
- 在挂载点显示虚拟文件 .stats 和 .accesslog。
-
Bug 修正
- 修复 Java SDK 为同一个目录创建多个快照时失败的问题。
- 修复 S3 网关的路径以 / 结尾导致失败的问题。
- 修复 Java SDK 中某些特定长度文件的 checksum 计算跟 HDFS 不一致的问题。
JuiceFS 4.7.6 (2022/07/15)
- Bug 修正
- 修复异常的分布式缓存请求导致客户端奔溃的问题。
JuiceFS 4.7.5 (2022/06/24)
- Bug 修正
- 修复 Java SDK 中复用文件句柄导致可能读数据错误的问题(关闭后再读)。
- 修复 Java SDK 中 truncate 再 append 后可能读不到新数据的问题(存在打开的句柄)。
JuiceFS 4.7.4 (2022/05/27)
- 改进
- 保留客户端的元数据缓存直到指定的失效时间。
JuiceFS 4.7.3 (2022/04/20)
- Bug 修正
- 修复在 Java SDK 中删除不存在的扩展属性时异常类型跟 HDFS 不同的问题。
- 校验 writeback 模式未上传数据的长度
JuiceFS 4.7.2 (2022/04/06)
- 改进
- 校验 OBS 返回的 ETag 以确保数据完整性。
JuiceFS 4.7.1 (2022/03/14)
-
改进
- 减低分布式缓存的迁移速率以减少对访问性能的影响。
-
Bug 修正
- 识别分布式缓存中同一个主机上的多个进程,减少不必要的数据迁移。
- 修复分布式缓存相关的连接泄漏问题(4.5.6 引入)。
JuiceFS 4.7.0 (2022/02/23)
-
新特性
- 支持在多分区的企业版挂载子目录。
- 支持通过 Ranger 设置文件访问权限。
- 新增 .accesslog (跟社区版格式一样)。
- 自动迁移分布式缓存中的数据块到新节点(默认一个小时后,可以通过 JFS_CACHE_REBALANCE_DELAY 调整)。
- 允许 S3 网关模拟多个桶。
- 允许 S3 网关记住上次文件的 ETag。
-
改进
- 改进挂载时访问元数据服务失败的处理,尽快报错退出。
- 优化 Java SDK 启动时间。
- Java SDK 使用 conf-dir 来保存配置文件(不需要里面的
.juicefs子目录)。 - 优化元数据缓存的内存效率。
- 持久化 UID 映射,避免冲突。
- 使用内核中的 ACL 检查,性能更好。
- 当权限不足时,让 snapshot 失败,而不是对部分文件做快照。
- 默认缓存大小改到 100GB(默认保证最少 20% 剩余空间)。
- 超级用户组的用户拥有超级用户权限。
- 允许使用只读的 AK 作为只读挂载使用。
-
Bug 修正
- 解决 Java SDK 里面 concat 时的权限检查问题。
- 解决 truncate 时可能导致死锁的问题。
- 修复空目录的 nlink 可能不对的问题(应该是 2)。
JuiceFS 4.6.2 (2022/02/11)
- Bug 修正
- 修复分布式缓存启用时可能导致死锁的问题。
- 修复 Java SDK 里面场景文件时没有使用设置的 umask 的问题。
- 修复 Java SDK 里面文件的修改时间可能不一致的问题。
JuiceFS 4.6.1 (2022/01/18)
- 改进
- 调整元数据缓存策略,避免过多无效缓存。
- 提升 FUSE 后台请求的限制到 200。
- 允许
--subdir参数不以/开头。
- Bug 修正
- 解决当对象存储超时存在竞争的情况(只打印日志,不影响使用)。
JuiceFS 4.6.0 (2021/12/09)
- 新特性
- 支持 Java SDK 的双写模式(主和从都可以是 JuiceFS 或者 HDFS),便于数据迁移。
- 支持
distcp --diff方式加快增量数据拷贝。
- 改进
- 增加文件句柄数和线程数的指标。
- 兼容 Apache Impala>=3.4
- 在 .jfsconfig 中显示调试端口的地址
- 将 statfs 系统调用的 bsize 和 frsize 从 64K 改成 4K, 这样 du 统计的文件大小跟本地文件系统更接近。因为目录的大小已经包含里面文件的大小会导致 du 重复计算,不建议使用 du 统计目录的大小,直接使用 ls -lh 更快更方便。
- 平滑迁移支持 concat 操作。
- 只解析元数据域名的 IPv4 地址,缓解启用了 IPv6 的环境的 DNS 服务器压力。
- 增加更多与分布式缓存有关的监控指标,详细请看 .stats 文件。
- 通过 .trash 的属性查看回收站中的文件数量和总大小。
- Bug 修正
- 修复 writeback 模式下缓存大小统计不对的问题。
- 支持包含由 + 的 KS3 的 AK。
- 修复访问包含 Java SDK 创建的快照导致客户端异常退出的问题。
JuiceFS 4.5.6 (2021/11/03)
- 新特性
- 支持作为 NFS 协议的文件存储的缓存使用,通过 NFSv3 直接访问。
- 改进缓存功能 (–source), 允许通过 JuiceFS 写入数据到原存储系统。
- 写入数据时建立分布式缓存(通过
juicefs.write-group-cache=false来禁用)。