版本更新

      • 新增将数据从 HDFS 平滑迁移到 JuiceFS 的工具。

      • 支持 IBM COS。

    • 改进

      • 支持中断兼容模式下的写操作。

      • 优化直接使用 Ceph 的底层 librados 作为存储后端时的性能。

      • 使用 Hadoop SDK 删除符号链接时,被指向的文件或者目录也会被删除。

      • 改进 Windows 客户端的日志的时间精度到毫秒。

      • 增加 Windows 客户端的线程数到 16(之前是 CPU 个数)。

      • 增加 Linux 客户端的后台请求数到 50(之前是 12)。

    • Bug 修正

      • 解决无法查询 POSIX ACL 的问题(4.4.7 引入)。

      • 解决 Hadoop SDK 中列出符号链接时的兼容性问题。

      • 解决无法创建缓存目录导致 crash 的问题。

      • 解决 Windows 下文件句柄被意外释放的问题。

      • 解决 Hadoop SDK 中文件系统被关闭后,正在进行的文件系统操作可能导致崩溃的问题。

      • 解决 Hadoop SDK 中多次关闭打开的文件可能导致其他文件也被关闭的问题。

      • 解决 Hadoop SDK 中过大的读请求可能导致内存不够的问题。

    JuiceFS 4.4.8 (2020/10/21)

    • 新特性

      • 可以使用 JuiceFS 作为其他存储系统的缓存。
    • 改进

      • 增加元数据请求的数据校验。

      • 显示所挂载的子目录的空间,不再是整个文件系统的空间。

      • 扩大符号链接的支持范围到所有操作。

      • 改进启用分布式缓存后的 IO 本地化。

      • 确保客户端不会因为损坏的网络消息导致崩溃。

    • Bug 修正

      • 修正写数据时可能会崩溃的情况。

      • 修正 POSIX 锁偶尔失败的情况。

      • 修正挂载后 /etc/mtab 没有被正确导致看不到挂载点的问题。

    JuiceFS 4.4.7 (2020/09/18)

    • 新特性

      • 提供独立的兼容 S3 协议的网关 (beta),保持跟 POSIX 接口的实时互通。

      • 为挂载客户端同时提供兼容 WebDAV 的 HTTP 接口。

      • 支持限制多个客户端使用的对象存储总带宽。

      • 默认启用 Go 实现的 FUSE 模块以获得更好的性能和稳定性,可以通过 GOFUSE=0 来切换回原来使用的 libfuse。

      • 支持阿里云 EMR 的临时 Token。

      • 支持又拍云和有孚云

    • 改进

      • 改进同时读一个大文件时的性能。

      • 改进某些场景下 LZ4 解压缩性能。

      • 限制客户端缓存的元信息到 5 百万 Inode(默认缓存 5 分钟)。

      • 限制 getattr(1) 和 statvfs 到 300 毫秒, 保证 df 操作不会卡住。

      • 增加在客户端挂载成功和退出时的日志。

      • 解决 Hadoop SDK 依赖的 asm 的兼容性问题。

      • 解决 Apache Spark 的 Executor 先后启动后导致的任务调度倾斜问题。

    • Bug 修正

      • 解决初始化 Hadoop SDK 时碰到中断信号后导致无法被初始化的问题。

    JuiceFS 4.4.6 (2020/08/14)

    • 新特性

      • 使用 Go 实现的 FUSE 模块,性能更快,通过 GOFUSE=1 来切换使用。

      • 支持 copy_file_range() 系统调用,文件系统内部拷贝速度更快。

      • 增加挂载参数控制随机读过的数据块的预热并发数。

      • 支持 MIPS64EL 架构(龙芯处理器)。

      • 客户端统计数据中增加各种性能指标,比如元数据或者对象存储操作的耗时等。

      • 支持七牛云的内网访问。

    • 改进

      • 当文件系统的使用量低于 64KB 时,显示为 64KB (之前显示为 0)

      • 容忍系统内存不足的情况,避免 Crash

      • 检查缓存盘的 inodes 使用率,确保不会超过 80% 或指定的比例。

      • 在 macOS 挂载时,在 Finder 里显示文件系统的名字。

      • 删除数据时及时释放缓存空间。

    • Bug 修正

      • 修复元数据缓存未及时清除的问题,24 小时后 inode 被复用时可能导致文件信息错误。

      • 修正 Hadoop SDK 跟 Presto 的兼容性问题

      • 让七牛存储的 PUT 操作幂等。

      • 修复谷歌云的挂载。

    JuiceFS 4.4.5 (2020/07/2)

    • 新特性

      • Windows 客户端支持大小写不敏感。

      • Hadoop SDK 支持符号链接到其他存储系统,比如链接到 hdfs://nm1:8080/xxxx

      • Hadoop SDK 可指定全局的用户组信息,每 10 分钟定时刷新。

    • 改进

      • 在 hadoop fs -du 中显示文件大小总和,而非计费大小,跟 HDFS 保持一致。

      • 挂载时检查所用的 prefix 的权限,便于给 AK/SK 设置更细粒度的权限控制。

    • Bug 修正

      • 修正 Hadoop SDK 读取失败时异常不准确的问题。

      • 修正兼容模式下可能导致死锁的问题。

    JuiceFS 4.4.4 (2020/06/14)

    • 新特性

      • 新增 –ioretries 参数,指定在出现服务或者网络故障时元数据操作的重试次数。 如果 ioretries 小于 5,当元数据访问失败后不会立即清空缓存,已有缓存数据可以读。 在元数据不可用期间,写操作以及后续的close可能返回 IOError,但写入的数据仍然保留在客户端内存中,待服务恢复后继续持久化(不丢失)。

      • 增加 –cache-partial-only 参数,只缓存小文件和随机读的部分,适合对象存储的吞吐比缓存盘还高的情况。

    • 改进

      • 改进随机写的性能。

      • 改进碎片合并的性能。

      • 改进持续追加多个文件时的性能,将新数据合并写入对象存储以减少 PUT 请求的数量。之后会按照文件再合并碎片以改进读的性能。

      • 改进数据写入时对元数据故障的容忍能力,减少元数据故障导致写入失败的可能性。

    • Bug 修正

      • 解决客户端碎片合并太慢导致内存暴增的问题。

      • 修正 Hadoop SDK 在某些情况下不能更新集群节点列表的问题。

      • 修正挂载时不能使用 DNS 更新初始 IP 的问题。

      • 使用 us-east-1 作为 S3 兼容后端存储的 Region。

      • 修正文件被删除后客户端的缓存没有被正确失效的问题,它会导致不必要的对象存储请求(404)。

    JuiceFS 4.4.3 (2020/05/20)

    • 新特性

      • 新增 Windows 客户端,支持 Windows Server 2012、Windows 10 等,目前仅开放给企业版客户。

      • 支持 ARM64 架构。

      • 支持全内存的数据缓存方式,通过挂载参数 –cache-dir memory 启用。

      • Hadoop SDK 支持分布式缓存。

    • 改进

      • 改进分布式缓存的随机读支持,减少读放大。

      • 改进随机读的性能。

    • Bug 修正

      • 解决读阿里云 OSS 时如果 Range 越界被忽略,导致结果不对的问题。

      • 解决当阿里云 OSS 启用了多版本支持后,遍历时返回空结果导致遍历不完整的问题。

      • 解决客户端频繁尝试清理残余的上传碎片导致后端存储过载的问题。

      • 解决挂载时如果没有对象存储的 PUT 权限却尝试去创建 Bucket 的问题。

      • 解决 Hadoop SDK 跟 CDH 5.8 的兼容性。

    JuiceFS 4.4.2 (2020/04/22)

    • Bug 修正

      • 修复当使用 writeback 模式并且有很高的写入压力时,后台的异步合并任务可能导致数据丢失的问题, 受影响的版本包括 4.3.14 到 4.4.1 (发布日期在 2020/2/28 到 2020/04/09 之间) , 建议使用 writeback 模式的用户升级(已经升级服务端禁止使用有bug 的客户端做碎片合并)。

    JuiceFS 4.4.1 (2020/04/12)

    • 新特性

      • 支持使用 TiKV 作为存储后端。

      • 增加后台任务的控制权限,可以创建访问规则来禁止后台任务(删除、合并和同步等)。

      • 支持 fallocate 的所有模式。

    • 改进

      • 改进顺序读大文件的性能。

      • 改进 writeback 模式下读数据的性能,不再需要等上传完成。

      • 调整了多缓存目录时的 hash 算法,使得分布更均衡。但它更之前的不兼容,会导致之前缓存的数据失效。

      • 在客户端日志中显示进程 ID,方便区分多个不同的挂载进程。

      • 改进 Hadoop SDK 的缓存调度机制,增加参数控制副本数。

    • Bug 修正

      • 修正使用通配符来匹配缓存目录时,只匹配到已经创建了子目录的部分目录的问题。

      • 修正 Hadoop SDK 列目录时碰到长度超过 127 个字符时出错的问题。

      • 修正 Hadoop SDK 在读写失败时错误码不对的问题。

    JuiceFS 4.4.0 (2020/03/12)

    • 新特性

      • 允许挂载子目录,挂载时通过 –subdir 参数指定,默认为根目录。可以在网站控制台设置允许挂载的子目录。

      • 允许指定读写数据的内存大小,通过参数 –buffer-size 指定(默认为 300 MiB)。当对象存储比较慢时,增大缓存可以提升读写性能。

      • 允许指定缓存盘的剩余空间比例来避免缓存数据把磁盘写满,通过参数 –free-space-ratio 来指定(默认 0.2)。

      • 增加挂载参数来禁用 POSIX 锁和 BSD 锁,–no-posix-lock 和 –no-bsd-lock。

    • 改进

      • 大幅改进读数据的预读机制和内存管理,大幅减少客户端在读写数据时的内存占用(一般不会超过 500MB)。

      • 改进写数据的重试,减少超时导致的 IO 错误。

      • 改进磁盘缓存的性能,减少系统调用次数。

    • Bug 修正

      • 修正 Hadoop SDK 在某种随机读模式下数据可能错误的问题。

    JuiceFS 4.3.14 (2020/02/20)

    • 新特性

      • 支持更改文件系统的存储格式(兼容模式或者优化模式的相互转换)。

    • 改进

      • 降低写入数据时的内存使用量。
    • Bug 修正

      • 修复 warmup 不能预热整个大文件的情况。

      • 修复第一次挂载基于 GCS 的文件系统时不能创建存储桶的问题。

    JuiceFS 4.3.13 (2020/01/20)

    • 新特性

      • mount 命令增加 –max-space 参数(默认不启用),限制挂载点的总空间。

      • mount 命令增加 –put-timeout 参数(默认为 60秒),超时后自动重试。

    • 改进

      • 将给腾讯云 COS 的请求的 UserAgent 改为 JuiceFS。

      • 支持金山云 KS3 低版本的 API。

      • 支持包含 . 的 S3 桶名称。

      • Hadoop SDK 中增加超级用户的配置项:juicefs.superuser。

      • 遍历超过一千万文件的目录时卡住的问题。

      • Hadoop SDK 不再产生 syslog。

    • Bug 修正

      • 修正文件锁返回 EIO 的问题。

      • 修正某些情况下文件的 nlink 的缓存不更新的问题。

      • 修正使用 Aliyun OSS 的临时 Token 时不能及时刷新的问题。

      • 修正 Hadoop SDK 写入文件时 mtime 不能实时更新的问题。

    JuiceFS 4.3.12 (2019/11/14)

    • 新特性

      • 支持 Hadoop File System 的 POSIX ACL。

      • 支持 Hadoop File System 的 getFileChecksum API,使得 DistCp 能够使用跟 HDFS 完全一样的算法来校验 JuiceFS 中数据完整性, 需要设置 juicefs.file.checksum 来启用(会影响数据写入性能)。

      • 增加 Java 客户端的各种统计计数。

    • 改进

      • 改进 Java 客户端 rename() 方法的性能,减少正常情况下的检查请求次数。

      • 改进 Java 客户端在读数据时的内存使用。

    • Bug 修正

      • 修复可能导致客户端卡住的 Bug: 当中断一个超过 300ms 仍未完成的元数据请求时,该请求的锁没有释放, 之后收到该请求的回应时会死锁。

      • 修复导入对象时数据大小可能不对的问题(4.3.11 引入)。

    • 新特性

      • 支持使用 Beansdb 做为对象存储。

      • Hadoop 客户端中支持扩展属性(xattr)。

      • 按照文件系统的回收站时间清理 Hadoop 的回收站(/user/name/.Trash)。

      • 新增挂载参数 –get-timeout, 指定下载对象时的最长时间(秒),避免个别慢请求导致的性能抖动。

    • 改进

      • 改进元数据缓存未建立时的性能。

      • 关闭文件时中断超时的读写操作。

      • 写入数据到 S3/OSS/COS 时增加校验,读取时用于检测对象存储中的数据是否损坏。

      • 允许 writeback 模式中缓存更多数据到本地盘(提高在网络受限时的写入性能)。

      • 限制删除对象存储中数据的速度,避免短时间内删除请求过多导致同期的写入或者下载请求被限速。

      • 自动创建缓存目录(尤其是在使用通配符时),Hadoop 客户端可以通过参数(auto-create-cache-dir=false)改成手动创建。

      • 可根据剩余空间的比例来清理缓存数据(默认 20%)。

    • Bug 修正

      • 修正全局 UID 映射的 Bug(部分情况下会映射两次导致歧义)。

      • 修正恢复压缩后的分块的 Bug(导致解压缩失败)。

    JuiceFS 4.3.10 (2019/9/2)

    • 新特性

      • 支持同时从多个机器对同一个文件的进行并发写入(不同位置)。

      • 支持通过任意的 schema 来使用 JuiceFS,比如 s3://volume/path 。

      • 增加挂载参数 –opencache,以提高打开文件的性能。

      • 对启用数据复制的文件系统,如果主要的对象存储不可用,它会自动切换到备份的对象存储。

      • 实现故障重试时的请求的幂等性。

    • 改进

      • 改进元数据缓存的一致性保证。

      • 改进兼容模式的写入性能和大文件的读性能。

      • 改进 JuiceFS SDK 的兼容性和性能。

      • 改进在 Hadoop 中使用挂载方式访问 JFS 的性能(也需要使用 JuiceFS SDK 来加速)

    • Bug 修正

      • 解决兼容模式下多次 Flush 导致数据可能出现错误的情况。

      • 解决不能自动创建 Digital Ocean 对象存储 Bucket 的问题。

    JuiceFS 4.3.9 (2019/6/24)

    • 新特性:

      • 发布 Hadoop 客户端,兼容 Hadoop 生态的各个数据分析工具。

      • 新增客户端性能分析工具 juicefs profile。

    • 改进:

      • 改进写入性能,减少客户端到元数据服务器的请求数量。

      • 识别客户端所在机器上新创建的用户。

    JuiceFS 4.3.7 (2019/5/17)

    • 新特性:

      • 使用多个目录做缓存,在 –cache-dir 中使用 来分隔目录,也可以使用通配符(需要加引号)。

      • 支持 FUSE 参数 -o writeback_cache 以在 3.15+ 的内核中启用写入缓存,极大提高随机写入和碎片写入的性能。

      • 支持 Wasabi。

    • 改变

      • 改进随机写的性能(尽量合并相邻的写入)。

      • 更改挂载点的子类型为 fuse.juicefs (之前是 fuse), 方便在 mlocate 等中禁止索引 JuiceFS 中的文件,将 fuse.juicefs 加入到 PRUNEFS 中。

      • 改进混合读写时的元数据缓存,大幅提高性能。

      • 改进预读机制,提高顺序读的性能。

      • 改进访问 OSS 的连接池。

      • 减少 GC 时 Head 请求的调用。

      • 减少客户端碎片合并以及数据同步的并发度,减低内存占用。

    • Bug 修正:

      • 修正导入单个对象时反复调用 List 的问题。

      • 兼容 3.1- 的内核不会在 release 时 unlock 的问题。

    JuiceFS 4.3.6 (2019/4/1)

    • 新特性:

      • 支持华为云 OBS

      • 支持 Minio

    • Bug 修正:

      • 修复发送给元数据服务的数据量的计数器。

      • 修复元数据服务故障切换时可能导致正在追加的文件因重试失败(已在 4.3.1 中修复)导致文件损坏的问题。强烈建议升级 4.3.1 之前的客户端。

    JuiceFS 4.3.5 (2019/2/20)

    • 新特性:

      • 支持 32 位 Linux 操作系统。

      • 新增 lsof 功能:列出最近 10 分钟打开过的文件。

      • 新增缓存预热功能 (warmup): 可以将一个目录下的所有文件的数据并行加载到缓存,以之后的访问提速。

      • 支持 阿里云的 ECS 的 RAM 规则,在给 ECS 绑定了有 OSS 访问权限的 RAM 规则后,挂在时不再需要提供 AK(用空字符串代替)。

    • 改变:

      • 改进异步写入性能(对超过 4MB 的文件也使用异步上传到对象存储)。

      • 改进启用元数据缓存时的小文件读取性能。

    • Bug 修正:

      • 修正启用异步写入 (–writeback) 时缓存数据大小计算不准确导致空间占用过多的问题。

      • 修正启用元数据缓存(–metacache)时文件权限可能错误的问题。

      • 修正批量上传模式下可能导致 IO 错误的问题。

    JuiceFS 4.3.3 (2018/11/20)

    • 新特性:

      • 增加参数调整内核中的元数据缓存:–attrcacheto, –entrycacheto, –direntrycacheto。

      • 通过 –passphrase 来记住密码(可以为空字符串),也可直接添加到配置文件中,避免要求手动输入。

    • 改变:

      • 改进 .stats 中对象存储访问计数,增加 head 和 error, 更加准确。

      • 调整命令行下目录大小的显示,去掉浮点数编码,直接显示该目录下所有数据大小总和。这是服务端变更,不需要升级客户端。

      • 在客户端的版本号中显示编译的时间和 Git Revision。

      • 允许通过 –cache-size 0 来禁用缓存。

      • 停用检查挂载是否正常的机制。

      • 使用兼容 S3 的访问入口来访问 JSS,并优先尝试 HTTPS。

      • 不使用 HTTP/2 来访问 Azure 以提高并发度。

    • Bug 修正:

      • 支持以 HTTP 方式访问七牛云存储(默认为 HTTPS)。

      • 解决兼容模式下清理碎片时会退出的问题。

      • 解决并发加载缓存时可能会加载失败的问题。

      • 修正 juicefs grep 的 反向查找 (-v 参数)。

      • 解决 COS 的 AppID 问题。

    JuiceFS 4.3.2 (2018/10/07)

    • 新特性:

      • 数据压缩变成可选:默认使用 Zstandard 压缩,可以调整为不压缩以获得更好的随机读性能。

      • 通过 API 提供客户端的统计计数:每个客户的统计信息(/.stats)也可以通过 JSON API 或者 Prometheus API 拿到。

      • 客户端统计信息新增:read_bytes、write_bytes、uptime、cpuusage、memusage

      • 新增 Append Only 访问模式:该模式下允许读取和写入新数据,但不允许删除或者修改已有数据。

    JuiceFS 4.3.1 (2018/09/14)

    • 新特性

      • 文件的分块大小可配置:默认为4MB,可以调整为最小 64K、最大 16MB,可以配置使用更小的分块大小改进随机读的性能,降低时延,提高 IOPS。
    • 改进:

      • 改进对金山云的支持,可自动创建对象存储的 bucket。

      • 改进当使用无效命令时的错误信息显示。

    • Bug 修正:

      • 修正升级后不能正常显示版本号的 Bug。

      • 修正连接到元数据服务的重试间隔,避免可能出现的 IOError。

    JuiceFS 4.3.0 (2018/08/22)

    • 新特性:

      • 存储数据加密:使用随机生成的对称密钥使用 AES-256-GCM 对每个对象进行加密,再用 RSA 加密对象密钥,一起保存到对象存储中。 RSA 私钥(可选密码保护)可在挂载时提供(自行管理),也可由我们统一管理(设置密码)。

      • 增加限制对象存储删除操作 QPS 的参数,减少突发的大量删除操作对对象存储的压力。

      • 增加限制对象存储写入速度的参数,对网络带宽的使用进行更有效的控制。

      • 支持百度云。

      • 支持 Digital Ocean.

    • 改进:

      • juicefs 不再自动更新,需要手动运行 juicefs version –upgrade 来更新到最新版。

      • 支持 FUSE fallocate(): 在使用 fio 测试时不再需要加 –fallocate=none 参数。

      • 改进导入对象时的性能,增加缓存,更快地跳过已经导入的对象。

    • Bug修正:

      • 当频繁的 read/write/truncate 操作时,可能因为竞争使用了失效的文件长度导致 IO 错误。

      • 解压超预期长度的对象时的 IO 错误,避免产生过长的对象。

      • 解决兼容模式下并发 Open() 操作导致 fd 泄露的问题。

      • 解决兼容模式下潜在的竞争冲突。

      • 限制腾讯云 COS 的 List 操作的 limit 为 1000。

      • 修正 localhost 不能被解析为 IPv4 地址时客户端CPU消耗过高的问题。

      • 解决导入文件时不能正确处理结尾的 “/” 的问题。

    JuiceFS 4.2.7 (2018/03/24)

    • 新特性:

      • 新增对象存储 List 操作的统计。

      • 兼容模式下支持硬链接。

      • 兼容模式下允许修改文件(比较慢)。

    • 改进:

      • 取消兼容模式下的回收站功能(可能导致数据被误删)。

      • 提升遍历大目录时的性能。

      • 兼容模式下同步删除文件,避免异步删除时可能的误删。

      • 改进写入缓存的效率,降低内存使用。

    • Bug修正:

      • 修正可用空间和可用 inode 数不准确的问题。

      • 修正递归删除时的权限检查问题(非 root 删除时)。

      • 数据写入时可能出现死锁的问题。

    JuiceFS 4.2.6 (2018/03/05)

    • 新特性:

      • 新增兼容模式,文件会以完整路径为名原样地保存到对象存储,可以用对象存储的 API 直接访问。 功能上有一些限制,文件一但写入完成就不能修改,不支持硬链接和快照。

      • 合并小文件成大的对象再上传,降低对象存储的 PUT 请求的调用以降低成本提高性能,通过 –writeback 和 –batch 参数启用。

      • 支持 Backblaze B2.

    • 改进:

      • 运行到前台时,DEBUG 日志不进 syslog。

    JuiceFS 4.2.5 (2018/01/31)

    • 新特性:

      • 快速删除一个目录里面的所有文件和子目录,详情见 juicefs rmr。

      • 新增挂载选项,让客户端为文件提供 HTTP 访问方式,可作为 NGINX 等 Web 服务器的后端。

      • 在 .stats 中增加了对象存储访问的统计计数。

      • 支持迅达云。

    • 改进:

      • 改进客户端性能,降低内存使用。
    • 新特性:

      • 支持文件系统镜像,可以在全球的任何云的任何区域设立只读镜像,实现近实时数据复制(秒级别延时)。

      • 支持以组为单位的缓存共享。挂载时指定一个组名(–group-name),所有相同组名的客户端之间(且内网互通)可以实现缓存共享,大概提高热点数据的访问性能。

      • 开放回收站的 Web UI, 用户可以自行在网站上恢复被误删的文件,也可以永久删除文件以清理回收站空间。

      • 支持京东云。

      • 支持美团云。

    • 改进:

      • 改进缓存共享的性能,降低 CPU 和内存使用。

    JuiceFS 4.2.3 (2017/11/15)

    • 新特性:

      • 垃圾回收机制:默认每周会扫描一次对象存储中的数据,清理因为各种意外导致的小量残留对象。

      • 增加一个命令行选项 –gc 来立即执行垃圾垃圾回收操作。

      • 实现客户端的缓存共享机制,处于统一内网的客户端之间可以共享内存和磁盘缓存,大大提高缓存利用率, 改进热点数据的访问性能,降低对象存储的访问成本(请求数)。

    JuiceFS 4.2.2 (2017/11/08)

    • 新特性:

      • 支持快速合并文件,无需拷贝数据,使用方法请看 juicefs merge -h ,读取合并后的文件也需要将客户端需要升级到 4.2.1。

      • 允许挂载到非空目录。

    • 改进:

      • 改进多区域异步复制,带宽不够时不影响写入性能。

      • 给 UFile 增加进程内 DNS 缓存,提高性能和稳定性。

      • 当客户端持续追加写入数据但没有 fsync 或 close 时,每 5 秒强制更新,降低其他客户端读这个文件的更新延时。

    • 错误修正:

      • 解决启用目录缓存时,根目录的文件缓存不能被正确失效的问题。

    JuiceFS 4.2.1 (2017/11/02)

    • 新特性:

      • 调整了元数据的数据结构和写入数据的算法,大大提高了随机写的性能(几倍到几十倍的提升),也为快速文件合并提供了支持。

      • 支持 Kubernetes 的 Flex 存储卷,juicefs 可以作为它的驱动使用,实现了 init, mount 和 unmount 调用。

      • 支持微软 Azure。

      • 增加网易云支持。

      • 默认禁用 xattr, 可以用个 –enable-xattr 启用它。

      • 默认启用到元数据服务和对象存储的传输加密。

      • 在客户端中自动同步复制的对象存储,每周一次,不需要再手动运行 juicefs heal。

    • 改进:

      • 异步将文件中的碎片重写成更大的数据块。

      • 改进文件查询时的数据块缓存,提高小文件读取的性能。

      • 去掉文件不存在的缓存,它不能被及时失效。

      • 复用 HTTP 连接,有助于改善性能和稳定性。

      • 改进 UFile 的错误日志。

      • 延长出错重试时的时间间隔,能够容忍对象存储更长时间的不稳定。

    • 错误修正:

      • 修正升级时覆盖符号链接的问题。

    JuiceFS 4.1.26 (2017/10/5)

    • 新特性:

      • 根据文件系统的名字,自动生成对象存储的桶名(Bucket),并在首次挂载时创建存储桶。

      • 支持非 Root 用户挂载

    • 改进:

      • 使用 musl 编译和静态链接,不再依赖 glibc,它的静态编译有严重Bug。

      • 大大降低随机写时的内存使用。

      • 改善 UFile 的 Copy 操作,提高性能,降低带宽需求。

      • juicefs 自动适应 Python2 或者 Python3 环境,支持绝大多数 Linux 发行版。

    JuiceFS 4.1.25 (2017/9/16)

    • 新特性:

      • juicefs version 显示客户端版本号。

      • 根据客户的版本限制同时使用的客户端数量,免费版最多 10 个并发挂载,标准试用版 100 个,标准 1000 个,企业版无限制。

      • 支持腾讯云 COS(V5 API)。

      • 增加对象存储的慢请求的日志(超过10秒)。

    • 改进:

      • juicefs 出错退出时使用非 0 退出码。

      • 提高对象存储的并发上传请求数到 50,提高写入性能。

      • 及时清理本地缓存,并监控所在分区的空间使用率,避免写满。

    JuiceFS 4.1.24 (2017/9/3)

    • 新特性

      • 使用文件夹的 nlink 属性来表示它的内部 Inode 的数量。

      • 将文件数量调整为 Inode 数量限制,文件夹和符号链接按 256K 计算,避免客户写入大量空文件夹影响服务质量。

      • 在 oplog 增加操作用时,并在日志中记录超过 10 秒的慢操作。

      • 允许用户中断所有文件系统操作,当某个操作很慢或者被卡主时不会影响应用正常退出。

    • 错误修正:

      • 解决写入失败时客户端异常退出的 Bug。

    JuiceFS 4.1.23 (2017/8/4)

    • 改进:

      • 在本地缓存未压缩的数据块,大大提升随机读性能(不需要解压缩整个数据块)。

      • 对象存储的出错重试次数从 3 增加到 10。

      • 挂载时等待挂载成功再退出。

    JuiceFS 4.1.21 (2017/7/17)

    • 改进:

      • 改进加密传输。

      • 改进中国区的客户端下载速度。

    JuiceFS 4.1.20 (2017/7/14)

    • 改进:

      • 改进写入本地缓存的性能。

    JuiceFS 4.1.18 (2017/7/3)

    • 改进:

      • 提升元数据服务的性能,支持 300K QPS 以上。

    JuiceFS 4.1.17 (2017/6/20)

    • 新特性:

      • 支持七牛云存储。
    • 问题修正:

      • 修正导入文件的 Bug。

    JuiceFS 4.1.15 (2017/6/2)

    • 新特性:

      • 自动管理用户的 uid/gid, 实现基于用户名的权限管理,不同机器上相同用户名的用户被正确识别为同一个用户。
    • 改进:

      • 支持将对象存储中的数据块分区写入,可以避免新数据集中写入导致的性能瓶颈(需要创建文件系统时单独设置,不可更改)。

      • 改进元数据写入的性能,实现每秒1万以上的写操作。

    • 问题修正:

      • 修正 untar 时文件的修改时间不对的问题。
    • 新特性:

      • 增加金山云支持。

      • 支持从对象存储快速导入对象,无需拷贝数据,可每秒导入超过 1 万个对象,请参考 juicefs import -h

    • 改进:

      • 实现基于目录的一致性缓存,一旦发生变更会自动失效,大幅提升频繁文件访问时的性能。需要在挂载时使用 –dircache 来启用,默认缓存时间是 5 分钟。

      • 当 syslog 不可用时,不打印日志,而不是退出。

      • 客户端大小从 18MB 缩小到 4MB,缩小下载客户端的时间。

      • 改进复制到另一个对象存储时的效率,降低它对写入性能的影响。

    • 问题修正:

      • 解决客户端在连不上元数据服务后异常退出的问题。

    JuiceFS 4.1.11 (2017/4/26)

    • 新特性:

      • 支持自动复制数据到另外一个对象存储,它可以是不同公有云或是同一个公有云的不同区。

      • 检查并修复被复制的两个对象存储的差异(需要手动运行 juicefs heal)。

    • 问题修正: