当前位置: 首页 > 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…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

Go语言多线程问题

打印零与奇偶数&#xff08;leetcode 1116&#xff09; 方法1&#xff1a;使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...