JuiceFS官方文档
JuiceFS 是一款面向云原生设计的高性能共享文件系统,在 Apache 2.0 开源协议下发布。提供完备的 POSIX 兼容性,可将几乎所有对象存储接入本地作为海量本地磁盘使用,亦可同时在跨平台、跨地区的不同主机上挂载读写。
JuiceFS 采用「数据」与「元数据」分离存储的架构,从而实现文件系统的分布式设计。使用 JuiceFS 存储数据,数据本身会被持久化在对象存储(例如,Amazon S3),相对应的元数据可以按需持久化在 Redis、MySQL、TiKV、SQLite 等多种数据库中。
JuiceFS 提供了丰富的 API,适用于各种形式数据的管理、分析、归档、备份,可以在不修改代码的前提下无缝对接大数据、机器学习、人工智能等应用平台,为其提供海量、弹性、低价的高性能存储。运维人员不用再为可用性、灾难恢复、监控、扩容等工作烦恼,专注于业务开发,提升研发效率。同时运维细节的简化,也让运维团队更容易向 DevOps 团队转型。
安装 FUSE
要运行 JuiceFS,必须先安装 FUSE
当下的 linux 发行版一般都默认自带 FUSE,不需要自行安装,若在 /dev 路径下没找到 FUSE,则需要手动安装,具体安装教程可以查看 libfuse 的 github 仓库,含有具体的安装方式介绍
如果是 windows,需要先安装 winFsp
安装 JuiceFS 客户端
JuiceFS 的安装需要到其官网下载客户端,具体可上官网查询
准备 Redis 数据库
首先需要一台阿里云服务器,可以在阿里云的官网上申请云服务器
然后使用命令 sudo apt update 命令,确保软件包索引是最新的
然后使用命令 sudo apt install build-essential tcl 命令安装所需要的工具
然后使用命令 sudo apt-get install redis-server 安装 Redis 数据库
使用命令 which redis-server 可以查看是否安装成功,出现对应路径则说明安装成功了
在命令行使用 redis-server 命令即可运行 redis 数据库,使用命令 ps -ef | grep redis 可以查看 redis 是否在运行
使用命令 redis-cli 可以使用客户端连接上数据库,输入 ping,得到 PONG,则说明连接成功
Redis 默认只能通过 localhost 访问,需要修改对应配置文件 /etc/redis/redis.conf 才可被外部通过公网 ip 访问,具体修改为:
- 把所有 bind 注释掉
- requirepass 可以设置个密码(非必须)
- protected-mode 设置为 no
然后配置本机防火墙,sudo ufw status 可以查看防火墙状态,我们输入 sudo ufw disable 将其关闭
然后需要在阿里云官网的控制台的安全组将 Redis 对应端口 6379 开启,这样就可以了
准备对象存储 OSS
使用阿里云提供的 OSS 对象存储服务,获取方法可以在官网搜索 OSS 跟着文档一步步来,这里不再赘述
创建文件系统
使用命令:
juicefs format --storage oss --bucket <阿里云对应 bucket 链接> --access-key <access key id> --secret-key <access key secret> redis://:<redis 数据库密码>@<redis 服务器公网 ip>:6379 <文件系统名字>
通过上述命令,便可创建 JuiceFS 文件系统,可同时被多台 PC 挂载并读写
挂载文件系统
- linux
使用命令
juicefs mount redis://:@ mnt -v --writeback
-v 表示显示调试信息,--writeback 开启针对小文件上传的写回优化
Ctrl + C
结束程序即可自动卸载, 原挂载文件夹可以删除
- windows
由于 Windows 不自带 FUSE,需要先手动安装 winfsp
使用命令
juicefs mount redis://:@ Z: -v --writeback
Z: 表示挂载到 Z 盘,Windows 下必须挂载到某个空闲的盘符,不能指定任意文件夹
在 cmd 中按下 Ctrl + C
结束程序,即可自动卸载
至此,JuiceFS 已创建完毕并能实现挂载