当前位置: 首页 > news >正文

JuiceFS 社区版 v1.2 发布,新增企业级权限管理、平滑升级功能

JuiceFS 社区版 v1.2 今天正式发布,这是自 2021 年开源以来的第三个大版本。v1.2 也是一个长期支持版本(LTS)。我们将持续维护 v1.2 以及 v1.1 这两个版本,v1.0 将停止更新。

JuiceFS 是为云环境设计的分布式文件系统,支持超过 10 种元数据引擎和 30 种以上的数据存储引擎。这些丰富的选择使得用户可以灵活应对多变的企业环境和数据存储需求;同时,JuiceFS 兼容多种访问协议,包括 POSIX、HDFS、S3 和 WebDAV,并可在 Kubernetes 中作为持久卷(PV)使用,从而确保数据在不同应用间能够自由流通。

JuiceFS 社区版采用 “Apache 2.0” 许可,允许用户根据自身需求进行二次改进,用户可以放心将 JuiceFS 应用于各种商业环境。

新功能概览

在过去几年中,JuiceFS 社区版在多个行业和场景中得到广泛应用,尤其是在 AI 和大模型领域。为了应对这些大规模数据场景中的复杂权限管理问题,最新的 1.2 版本中引入了多项新特性,并对一些原有功能进行了优化:

  • 支持 POSIX ACL:通过使用 Linux 自带的 ACL 工具(setfacl/getfacl)可以实现更加强大的用户权限管理;

  • 支持平滑升级:可在相同挂载点再次挂载 JuiceFS ,实现业务无感的平滑升级;此外,这种方式也支持在线调整挂载参数;

  • S3 Gateway 高级功能:新增了“身份和访问管理(Identity and Access Management,IAM)” 与 “事件通知” ,提供更安全、灵活和自动化的数据管理和监控能力,适用于多用户环境和复杂的业务场景;

  • JuiceFS Sync 优化:增强了选择性同步功能,并对多个场景进行了性能优化,以提高大目录和复杂迁移任务的数据同步效率。

适应更多场景

新支持 NFS/Dragonfly/Bunny 作为对象存储,便于用户根据场景需求灵活选择后端存储。目前, JuiceFS 已支持 40+ 对象存储。

更稳定

  • 客户端缓存支持自动坏盘检测和隔离。JuiceFS 利用客户端的本地硬盘进行数据缓存,能有效提升大部分场景下的数据访问速率。新版本中 JuiceFS 新加入了坏盘自动检测和隔离功能,使系统在遇到硬件异常时仍能保持稳定性能,减少对业务的影响;

  • dump 命令和元数据自动备份优化,以改善元数据导出性能。在原来的实现中,为了能更快地将所有元数据导出,客户端会先将所有的键值对加载到内存中,这在较大规模的文件系统中给系统带来了很大的内存压力。在新版本中 JuiceFS 会根据文件数自动选择策略,在其总数大于十万时采用较缓和的逐文件导出的方式。同时,为了兼顾速度,此策略在实现中加入了多并发预取的特性。

更易用

  • 新增 juicefs compact 命令,允许用户手动对指定路径进行 compact 操作。在之前版本中,用户可使用 juicefs gc --compact命令执行全局的 compact 操作,从而在必要时尝试减少对象存储的容量使用。但是,当文件系统规模比较大时,gc 命令往往需要运行很久,用户体验较差。新的 compact命令增强了运维的灵活性;

  • juicefs mount 命令新增 --cache-expire选项,该参数允许用户来指定本地数据缓存的有效时间,一旦设定的时间到期,相关缓存数据将自动被删除。相较于原来只能在缓存盘达到容量阈值时才触发缓存清理,此选项为用户带来了更灵活的缓存管理选项;

  • juicefs warmup 命令优化,支持手动清理指定路径的缓存块,以及检查指定路径的已有缓存比例。这将方便用户能更可靠有效地管理客户端数据缓存,提升业务的缓存命中率;

  • gateway/webdav 支持后台运行,这一改进使得用户可以将其作为守护进程在后台运行,从而提高服务的可用性和稳定性,用户可以更轻松地集成和使用 JuiceFS 在多种网络环境中;

  • 多项易用性优化,如:命令行参数支持更人类友好的格式(如直接使用 128K、4M 等字符串指定分块大小),更多的监控指标,更可靠的 debug 信息收集命令等。

开源第四年,持续快速发展

JuiceFS 社区版于 2021 年 1 月正式开源,目前在 GitHub上已获得 10K 星标 。这个版本新增 issue 数量 410 个,合并的 PR 数量为 464 个,贡献者人数 44 人。

匿名上报数据显示,用户各项指标继续快速增长。中文社区已建立了 7 个微信群,人数超 3000。海外用户规模也在稳步增长,根据最新的用户下载 IP 数据,海外用户占比近 50%,其中美国 33%,欧洲 10%,亚洲(不包括中国大陆) 5%。

新增应用案例:

  • 贝壳找房:为 AI 平台打造混合多云的存储加速底座

  • 知乎:多云架构下大模型训练,如何保障存储稳定性

  • BentoML:如何使用 JuiceFS 加速大模型加载

  • 基于 JuiceFS 的大数据平台上云:存储成本省 85%,性能媲美 HDFS

  • 韩国国民搜索 NAVER:为 AI 平台引入存储方案 JuiceFS

  • 机器人行业数据闭环实践:从对象存储到 JuiceFS

  • 基于JuiceFS 的低成本 Elasticsearch 云上备份存储

  • JuiceFS 在自动驾驶行业多云架构中的实践

  • 小米云原生文件存储平台化实践:支撑 AI 训练、大模型、容器平台多项业务

点击此处查看用户案例合集

以下这些功能将在未来的版本中逐步实现,欢迎大家一起来共建:

  • 分布式数据缓存

  • 支持 Kerberos 和 Ranger

  • 用户和组配额

JuiceFS v1.2下载链接:https://github.com/juicedata/juicefs/releases/tag/v1.2.0

在开源的第四年,JuiceFS 从一个新兴品牌成长为大家熟悉的产品,应用场景从支持 Hadoop 上云扩展到 AI 训练、推理等领域。JuiceFS 能成为许多人日常工作的一部分,我们感到非常荣幸。这些都离不开每一位社区成员的参与,感谢你们反馈的问题、解答问题、贡献代码、分享实践经验!

相关文章:

JuiceFS 社区版 v1.2 发布,新增企业级权限管理、平滑升级功能

JuiceFS 社区版 v1.2 今天正式发布,这是自 2021 年开源以来的第三个大版本。v1.2 也是一个长期支持版本(LTS)。我们将持续维护 v1.2 以及 v1.1 这两个版本,v1.0 将停止更新。 JuiceFS 是为云环境设计的分布式文件系统,…...

虚拟3D沉浸式展会编辑平台降低了线上办展的门槛

在数字化浪潮的引领下,VR虚拟网上展会正逐渐成为企业展示品牌实力、吸引潜在客户的首选平台。我们与广交会携手走过三年多的时光,凭借优质的服务和丰富的经验,赢得了客户的广泛赞誉。 面对传统展会活动繁多、企业运营繁忙的挑战,许…...

泛微E9开发 查询页面添加按钮,完成特定功能

查询页面添加按钮,完成特定功能 1、关联知识(查询页面实现新增按钮)2、功能实现2.1. 点击按钮,输出选中的checkbox的值2.2. 点击按钮,打开一个自定义对话框 3、实现方法 1、关联知识(查询页面实现新增按钮&…...

初学51单片机之数字秒表

不同数据类型间的相互转换 在C语言中,不同数据类型之间是可以混合运算的。当表达式中的数据类型不一致时,首先转换为同一类型,然后再进行计算。C语言有两种方式实现类型转换。一是自动类型转换,另外一种是强制类型转换。 转换的主…...

SpringBoot整合justauth实现多种方式的第三方登陆

目录 0.准备工作 1.引入依赖 2.yml文件 3. Controller代码 4.效果 参考 0.准备工作 你需要获取三方登陆的client-id和client-secret 以github为例 申请地址&#xff1a;Sign in to GitHub GitHub 1.引入依赖 <?xml version"1.0" encoding"UTF-8&quo…...

【Java算法】滑动窗口

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【算法工作坊】算法实战揭秘 &#x1f456;一. 长度最小的子数组 题目链接&#xff1a;209.长度最小的子数组 算法原理 滑动窗口 滑动窗口算法常用于处理数组/字符串等序列问题&#xff0c;通过定义一…...

C# —— 属性和字段

属性和字段的区别 1.都是定义在一个类中&#xff0c;属于类成员变量 2.字段一般都是私有的private&#xff0c;属性一般是公开的Public 3.字段以小驼峰命名方式 age&#xff0c;属性一般是以大驼峰命名 Age 4.字段可以存储数据&#xff0c;属性不能存储数据&#xff0c;通过属性…...

【计算机视觉】人脸算法之图像处理基础知识(四)

图像的几何变换 图像的几何变换是指在不改变图像内容的前提下对图像的像素进行空间几何变换。主要包括图像的平移变换、镜像变换、缩放和旋转等。 1.插值算法 插值通常用来放缩图像大小&#xff0c;在图像处理中常见的插值算法有最邻近插值法、双线性插值法、二次立方、三次…...

探索 Spring Boot 集成缓存功能的最佳实践

在线工具站 推荐一个程序员在线工具站&#xff1a;程序员常用工具&#xff08;http://cxytools.com&#xff09;&#xff0c;有时间戳、JSON格式化、文本对比、HASH生成、UUID生成等常用工具&#xff0c;效率加倍嘎嘎好用。 程序员资料站 推荐一个程序员编程资料站&#xff1a;…...

微信小程序使用方法

一.在网页注册小程序账号&#xff08;在未注册的情况下&#xff09; 1.如果你还没有微信公众平台的账号&#xff0c;请先进入微信公众平台首页&#xff0c;点击 “立即注册” 按钮进行注册。我们选择 “小程序” 即可。 接着填写账号信息&#xff0c;需要注意的是&#xff0c;…...

前后端分离的后台管理系统源码,快速开发OA、CMS网站后台管理、毕业设计项目

那有没有一款软件解-决这种现状呢?答案是肯定的。引入我们的软件——eladmin。 介绍 ELADMIN,一个简单且易上手的 Spring boot 后台管理框架,已发布 Mybatis-Plus 版本,为开发者提供了一个全-面、高-效的解-决方案。 特点 高-效率:前后端完全分离,项目简单可配,内置代码…...

[深度学习]--分类问题的排查错误的流程

原因复现&#xff1a; 原生的.pt 好使&#xff0c; 转化后的 CoreML不好使&#xff0c; 分类有问题。 yolov8 格式的支持情况 Format Argument Suffix CPU GPU 0 PyTorch - .pt True True 1 Tor…...

微信小程序简易录音机

首先先创建一个项目&#xff08;想必大家都会啦那就直接开干&#xff09; 首先上html结构 <view class"wx-container"><view id"title">录音机</view><view id"time">{{hours}}:{{minute}}:{{second}}</view>&l…...

Ollama深度探索:AI大模型本地部署的全面教程

目录 引言一、Ollama概述1、定义与定位2、核心功能3、技术优势4、应用场景 二、安装与配置1、系统要求2、安装方法3、配置指南4、启动Ollama服务 四、快速开始1、启动Ollama2、部署运行模型3、REEST API 五、自定义模型1、定制化的必要性2、使用Modelfile定制模型3、参数调整4、…...

文心一言 VS 讯飞星火 VS chatgpt (285)-- 算法导论21.2 4题

四、请给出图 21-3 所示操作序列的一个运行时间的渐近紧确界&#xff0c;假定使用链表表示和加权合并启发式策略。如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 图 21-3 没有直接给出&#xff0c;但通常这种操作序列可能与某种数据结构&#xff08;如并查集或…...

基于springboot实现影院订票系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现影院订票系统演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本影院订票系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在…...

Linux 常用命令合集

进入root模式 su -> 回车 -> 输入root用户密码关闭系统 方法1&#xff1a; shutdown -h now 方法2&#xff1a; init 0 方法3&#xff1a; telinit 0按预定时间关闭系统 shutdown -h hours:minutes &取消按预定时间关闭系统 shutdown -c重启 shutdown -r now重启…...

Vue3插件安装

一、volar插件安装 volar&#xff1a;Vue文件的语法提示和高亮提醒。volar已经更名为Vue - Official&#xff0c;其安装步骤如下。 (1)打开vscode&#xff0c;点击扩展面板&#xff0c;在搜索窗口中输入volar&#xff0c;选择Vue - Official进行安装。 &#xff08;2&#xff0…...

Redis精要

一、什么是缓存击穿、缓存穿透、缓存雪崩&#xff1f; 缓存穿透 【针对大量非法访问的请求&#xff0c;缓存中没有&#xff0c;直接访问DB】 缓存穿透指的查询缓存和数据库中都不存在的数据&#xff0c;这样每次请求直接打到数据库&#xff0c;就好像缓存不存在 一样。 对于系…...

国产24位I2S输入+192kHz立体声DAC音频数模转换器CJC4344

CJC4344是一款立体声数模转换芯片&#xff0c;内含插值滤波器、multi bit数模转换器、输出模拟滤波器。CJC4344系列支持大部分的音频数据格式。CJC4344基于一个带线性模拟低通滤波器的四阶multi-bitΔ-Σ调制器&#xff0c;而且本芯片可以通过检测信号频率和主时钟频率&#xf…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列&#xff1f;2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇&#xff1a;Apollo Client 配置与缓存 上一篇&#xff1a;GraphQL 入门篇&#xff1a;基础查询语法 依旧和上一篇的笔记一样&#xff0c;主实操&#xff0c;没啥过多的细节讲解&#xff0c;代码具体在&#xff1a; https://github.com/GoldenaArcher/graphql…...

6.9-QT模拟计算器

源码: 头文件: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMouseEvent>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);…...