JuiceFS 搭建与挂载
JuiceFS 简介
JuiceFS 是一个为云服务而生的高性能高可靠性共享文件系统,可将 OSS 对象存储接入本地,像本地磁盘一样使用,也可以同时在不同主机上挂载并进行读写操作。
JuiceFS 将数据与元数据的存储分离开,从而实现分布式文件系统。JuiceFS 存储数据的时候,数据本身会存储于 OSS 对象存储中,元数据存储在 Redis、SQLite 等数据库中。
目前,JuiceFS有两个版本:一个是 2021 年刚刚开源的版本,也就是GitHub上的版本,需要自己在服务器上搭建;另一个是软件即服务版本,由其开发公司直接提供服务。两种版本有不同的客户端,不能混用。在本文档中,我们采用开源版本,在一台阿里云服务器上自己搭建(所用的服务器与 OSS 对象存储服务皆来自阿里云)。
搭建与挂载步骤
安装 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 已创建完毕并能实现挂载