历时 1 个月,涉及 80 多项变化,JuiceFS v0.13 终于和大家见面了!🎉
下面就让我们一起来看一看新版本发生了哪些变化吧:
开放支持 SQL 元数据引擎
本次升级除了常规的 BUG 修复,带来的最大变化是开始支持使用 SQL 数据库作为元数据引擎,以下为 JuiceFS 现已支持的元数据引擎:
- Redis
- MySQL
- MariaDB
- TiDB
- SQLite
相比之下 ,关系型数据库要比 Redis 数据库的性能略低 ,但关系型数据库能够提供更好的数据持久化和扩容能力,因此更适合那些对数据的总量和安全性更敏感的场景,比如文件备份。
在功能性上,MySQL、MariaDB 以及 TiDB 都能提供与 Redis 数据库几乎一致的功能特征,比如多客户端共享存储、数据强一致性等。而且 MySQL 及其协议兼容的数据库产品都有庞大的用户基础和完善的配套生态,可以非常容易的上手使用和管理。
值得一提的是,对 SQLite 数据库的支持,让 JuiceFS 进一步扩大了适配的应用场景。作为全球最流行的单文件数据库,SQLite 简单易用,使用前无需配置,非常适合单设备或个人的小规模使用。比如,你可以用“SQLite + 对象存储”的组合快速创建一个 JuiceFS 存储,挂载到本地电脑当做私有网盘来使用。
新增子命令
JuiceFS 本次版本升级还新增了一系列实用的子命令:
profile
status
warmup
profile
该命令被设计用来监测 JuiceFS 的工作状况,基本用法如下:
$ juicefs profile MOUNTPOINT/LOGFILE
假设 JuiceFS 存储挂载在 /jfs
文件夹,则可以使用以下命令实时监测该该目录上的操作:
$ juicefs profile /jfs
也可以指定 JuiceFS 存储根目录下的 .accesslog
日志文件,从而对历史操作进行重放:
$ cat /jfs/.accesslog > /tmp/jfs-oplog
# later
$ juicefs profile /tmp/jfs-oplog
status
该命令可以用来查看一个 JuiceFS 存储的详细信息,比如名称、元数据地址、存储类型、Bucket、压缩算法等。基本用法如下:
$ juicefs status [command options] Metadata-database-URL
例如:
$ juicefs status mysql://user:passwd@(localhost:3306)/juicefs
2021/05/20 14:50:38.500683 juicefs[3259538] <INFO>: Meta address: mysql://user@(localhost:3306)/juicefs
[xorm] [info] 2021/05/20 14:50:38.503441 PING DATABASE mysql
2021/05/20 14:50:38.504942 juicefs[3259538] <WARNING>: The latency to database is too high: 1.504649ms
{
"Name": "juice-test",
"UUID": "1324d1bf-98f0-4e97-a4c1-60bd7c04debf",
"Storage": "minio",
"Bucket": "https://192.168.1.8/mybucket",
"AccessKey": "minioadmin",
"BlockSize": 4096,
"Compression": "none",
"Shards": 0,
"Partitions": 0
}
warmup
该命令可以手动指定为特定的目录或文件创建本地缓存,这样就可以有针对性的加快 JuiceFS 存储中特定数据的访问速度。
$ juicefs warmup -h
NAME:
juicefs warmup - build cache for target directories/files
USAGE:
juicefs warmup [command options] [PATH ...]
OPTIONS:
--file value, -f value file containing a list of paths
--threads value, -p value number of concurrent workers (default: 50)
--background, -b run in background (default: false)
--help, -h show help (default: false)
其他变化
除了前面介绍的内容之外,JuiceFS v0.13 还带来了以下新功能:
- Windows 版本的 Java SDK
- JuiceFS 存储支持分片(shards),可将文件块分散存储在多个 Bucket 。
- 添加
/.stats
虚拟文件,统计存储量。 - 新增最小化编译选项
make juicefs.lite
,让客户端仅支持本地和 S3 存储,编译后的客户端体积可减少 2/3。
更多变化可以查看 GitHub release 页面。