这是 JuiceFS v1.0 正式发布前的第二个 beta 版本,共有 16 位社区伙伴贡献了 150+ 次提交 。本次更新以 Bug 修复和稳定性提升为主,辅以大量的文档更新和测试用例优化,并带来了以下新功能:

一、新增:BadgerDB 作为元数据引擎

由社区开发者秦牧羊(@diluga)发起贡献,在 JuiceFS 插件式元数据引擎架构上新增对 BadgerDB 数据库的支持,为 JuiceFS 元数据存储引擎家族再添新成员!

BadgerDB 是一个 Go 语言开发的嵌入式、持久化的单机 Key-Value 数据库,它类似 SQLite 无需安装即可直接使用:

# 创建文件系统
$ juicefs format badger://$HOME/badger-data test-volume
# 挂载文件系统
$ juicefs mount -d badger://$HOME/badger-data /mnt/jfs

与 SQLite 不同之处在于,BadgerDB 的数据库不是单文件,而是一个目录。在上例中,BadgerDB 在home目录创建 badger-data 数据库目录,挂载文件系统时自然也要使用这个目录的路径。

二、一键启动 WebDAV 服务器

经过开源社区的共同努力,我们在稳定支持 FUSE-POSIX、S3-Gateway、HDFS、CSI Driver 等存储访问协议的基础上,新增了 WebDAV 访问协议,与 S3 网关的启用方式类似,使用新增的 webdav 子命令可以一键启动 WebDAV 服务器:

$ juicefs webdav redis://127.0.0.1:6379/1 localhost:9007

使用任何支持 WebDAV 协议的客户端访问 localhost:9007 即可读写 JuiceFS 文件系统。

三、支持只读模式连接 Redis Replicas

对于 Redis 引擎读写压力较大的场景,现在支持让部分客户端以只读模式连接 Sentinel 管理的 replicas,从而降低 master 节点的负载:

$ juicefs mount redis://mymaster,sentinel.local:26379?route-read=replica /mnt/jfs/ --read-only

即在 URL 中添加参数 route-read=replica 指定该客户端自动从 Redis replicas 读取元数据。

需要注意的是,由于 Redis replica 使用异步更新机制,设置了只读的客户端有时可能会读到较旧版本的元数据。

四、更清晰的客户端帮助信息

随着用户规模的不断扩大,我们发现想让各种经验背景的用户都能更好地使用 JuiceFS,一方面需要友好的文档,另一方面要增强 JuiceFS 客户端本身的命令帮助信息。特别是后者,如果问题可以在命令行里得到解决就能大大提升用户的使用体验。

有鉴于此,在本次更新的版本中我们针对客户端的帮助信息做了以下改进:

  1. 清晰的分类

    • ADMIN:用来管理 JuiceFS volumes,如 format、destroy、gc 等
    • INSPECTOR:用来检视 JuiceFS 的内部状态,如 stats、profile 等
    • SERVICE:用来启动特定的服务,如 mount、gateway 等
    • TOOL:用做特定需求的独立工具,如 bench、warmup 等
  2. 详尽的说明:大部分命令增加了具体说明和使用示例

五、防止误操作

社区群组的讨论向我们证明了一件事:即便是经验丰富的老手,也不免会“做傻事”!特别是在创建和修改文件系统时,一些不经意的误操作可能会覆盖旧数据或导致错误的设置。

针对这些可能涉及数据安全的操作,我们一直在完善相应的安全检查机制,本次新增的安全机制有:

  1. 唯一性检查:检查并禁止在同一个 Bucket 上创建同名文件系统。
  2. 防止非法参数:修改文件系统参数时,config 命令会尽量提前判断新参数是否合理,避免不合法的参数配置。
  3. 隐藏敏感信息:当连接元数据引擎需要密码时,隐藏掉 ps 显示的进程密码参数。

修复的 Bug

  • cmd: fix buffer-size in gc and fsck (#1316)
  • cmd/bench: convert PATH to absolute path (#1305)
  • meta: return EROFS as soon as possible (#1477)
  • meta/redis: fix leaked inodes in Redis (#1353)
  • meta/tkv: fix divide by zero error when dumping meta (#1369)
  • meta/tikv: fix scan of tikv, limiting the upperbound (#1455)
  • meta/memkv: fix scanKeys, returning a sorted list (#1381)
  • meta/sql: delete warning message for empty directory (#1442)
  • meta/sql: fix return value of mustInsert (#1429)
  • vfs: fixed deadlock when truncate a released file handle. (#1383)
  • vfs/trash: fix access to trash dir (#1356)
  • vfs/backup: skip dir objects when scanning meta backups (#1370)
  • vfs/backup: fix incorrect inode number when using subdir (#1385)
  • utils: fix the contention between progress bar and logger (#1436)
  • Windows: fix rename fails because the chunk file is still open (#1315)
  • Windows: fix mkdir on windows platform (#1327)
  • SDK: hadoop: fix umask apply (#1338, #1394)
  • SDK: hadoop: fix libjfs.so load bug (#1458)
  • other: fix legend of "Operations" panel in Grafana template (#1321)

如有帮助的话欢迎关注我们项目 Juicedata/JuiceFS 哟! (0ᴗ0✿)

JuiceFS v1.0 beta2 发布|进一步提升稳定性的更多相关文章

  1. JuiceFS v1.0 beta3 发布,支持 etcd、Amazon MemoryDB、Redis Cluster

    JuiceFS v1.0 beta3 在元数据引擎方面继续增强,新增 etcd 支持小于 200 万文件的使用场景,相比 Redis 可以提供更好的可用性和安全性.同时支持了 Amazon Memor ...

  2. JuiceFS V1.0 RC1 发布,大幅优化 dump/load 命令性能, 深度用户不容错过

    各位社区的伙伴, JuiceFS v1.0 RC1 今天正式发布了!这个版本中,最值得关注的是对元数据迁移备份工具 dump/load 的优化. 这个优化需求来自于某个社区重度用户,这个用户在将亿级数 ...

  3. JuiceFS v1.0.0 Beta1 发布,加强数据安全能力

    在 JuiceFS 开源一周年之际,我们迎来了首个里程碑版本 JuiceFS v1.0.0 Beta1,并将开源许可从 AGPL v3 修改为 Apache License 2.0. JuiceFS ...

  4. PyRedisAdmin v1.0 Beta 发布,Redis 在线管理工具 - 开源中国社区

    PyRedisAdmin v1.0 Beta 发布,Redis 在线管理工具 - 开源中国社区 PyRedisAdmin v1.0 Beta 发布,Redis 在线管理工具

  5. [译]ABP v1.0终于发布了!

    ABP v1.0终于发布了! 今天是个大日子!经过约3年的不断开发,第一个稳定的ABP版本,1.0,已经发布了.感谢为该项目做出贡献或试用过的每个人. 立即开始使用新的ABP框架:abp.io/get ...

  6. 查收新年礼物丨DevEco Studio 3.0 Beta2发布,20个新变化详解

    HUAWEI DevEco Studio是开发HarmonyOS应用和原子化服务的一站式集成开发环境(IDE),为开发者提供工程模板创建.开发.编译.调试.发布等功能. 2021年12月31日,新版本 ...

  7. mysql awr v1.0.1发布

    现发布mysql awr v1.0.1 修复问题: 1.galera cluster下flush table/index_statistcs时如果系统中业务ddl频繁可能会导致很多进程处于prepar ...

  8. Omi v1.0震撼发布 - 令人窒息的Web组件化框架

    原文链接--https://github.com/AlloyTeam/omi 写在前面 Omi框架经过几十个版本的迭代,越来越简便易用和强大. 经过周末的连续通宵加班加点,Omi v1.0版本终于问世 ...

  9. Rookey.Frame v1.0 视频教程发布了

    经过昨天几个小时的折腾, Rookey.Frame v1.0开发视频教程终于发布了,由于是第一次做视频有很多地方做的不够好,后续我会慢慢改进,争取将视频教程做好. 本期发布视频: (一)Rookey. ...

  10. Omi v1.0震撼发布 - 开放现代的Web组件化框架

    原文链接--https://github.com/AlloyTeam/omi 写在前面 Omi框架经过几十个版本的迭代,越来越简便易用和强大. 经过周末的连续通宵加班加点,Omi v1.0版本终于问世 ...

随机推荐

  1. 领域驱动设计(DDD)实践之路(四):领域驱动在微服务设计中的应用

    这是"领域驱动设计实践之路"系列的第四篇文章,从单体架构的弊端引入微服务,结合领域驱动的概念介绍了如何做微服务划分.设计领域模型并展示了整体的微服务化的系统架构设计.结合分层架构. ...

  2. @Constraint注解,做特殊的入参校验

    // @Constraint 是 Java 中的注解之一,用于标记自定义的约束注解.约束注解通常用于数据验证,用来限制字段的取值或格式,确保数据的合法性. @Constraint(validatedB ...

  3. Serverless Devs 重大更新,基于 Serverless 架构的 CI/CD 框架:Serverless-cd

    近日,Serverless 开发者平台 Serverless Devs 重磅发布基于 Serverless 架构的轻量级 CI/CD 框架--Serverless-cd.Serverless-cd 是 ...

  4. kafka集群三、增加密码验证

    系列导航 一.kafka搭建-单机版 二.kafka搭建-集群搭建 三.kafka集群增加密码验证 四.kafka集群权限增加ACL 五.kafka集群__consumer_offsets副本数修改 ...

  5. 四、java对mongo数据库增删改查操作

    系列导航 一.linux单机版mongo安装(带密码验证) 二.mongo集群搭建 三.java连接mongo数据库 四.java对mongo数据库增删改查操作 五.mongo备份篇 mongoexp ...

  6. 【新手友好】用Pyspark和GraphX解析复杂网络数据

    从零开始 在本文中,我们将详细介绍如何在Python / pyspark环境中使用graphx进行图计算.GraphX是Spark提供的图计算API,它提供了一套强大的工具,用于处理和分析大规模的图数 ...

  7. P4913【橙】

    蕾姆了,上一道题做的好烦,结果直接把上一题的代码稍微改改就直接五分钟做出了另一道题,就是这道橙题.虽然只是一道橙题,但上一题代码得以复用显得自己没浪费那么多时间,显得自己还是有不少收获的.心里平摊多了 ...

  8. Ribbon默认负载均衡规则替换为NacosRule

    近期博主在参与一个 Spring Cloud 搭建,版本为 Hoxton.SR12,服务注册发现组件为 Nacos 的老项目时,发现项目负载均衡组件 Ribbon 的负载均衡规则在某些场景下不够完美, ...

  9. C#利用控件实现柱形图分析

    数据 { using (SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=;database=db_TomeOne&quo ...

  10. C语言基础之理论概述

    C语言介绍 C语言是一种高级程序设计语言,由贝尔实验室的Dennis Ritchie在1972年开发.C语言是结构化编程语言,支持变量.数据类型.运算符.表达式.流程控制语句和函数等基本程序设计元素. ...