Linux 部署 JuiceFS 云服务

JuiceFS 云服务的部署方式遵循以下三个步骤:

  1. 创建文件系统
  2. 安装客户端
  3. 挂载使用

但请注意,JuiceFS 云服务需要在 Web 控制台创建文件系统,并且需要安装专用的「云服务客户端」。

接下来的内容假设你已经在官网控制台创建了文件系统,如果还没有,请参考 JuiceFS 云服务快速上手指南

环境要求

Python

JuiceFS 云服务客户端依赖 Python,建议使用 Python 3.5+ 以上版本 ,最低支持 Python 2.6+。

FUSE

JuiceFS 依赖 FUSE 实现对 POSIX 接口的支持,请检查系统的支持情况。

从 Kernel 2.6.14+ 开始 FUSE 被集成到 Linux 内核,可以使用 uname -r 检查内核版本,使用 fusermount -V 检查 FUSE 版本。

Linux - 图1

注意

有些 Linux 发行版的内核可能没有预编译或没有加载 FUSE 模块,请查阅发行版手册了解如何编译和加载内核模块。

手动部署

第一步 创建文件系统

如果你还没有创建文件系统,请先参照《JuiceFS 云服务快速上手指南》在 Web 控制台创建文件系统。

第二步 下载客户端

提示

「云服务客户端」不同于「社区版客户端」,如果需要同时使用二者,为了避免名称冲突,请修改程序名称进行区分。例如,可以将云服务客户端改名为 juicefs-cloud

首先查看系统已设置的可执行路径:

  1. $ echo $PATH
  2. /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

选择一个合适的路径下载并安装客户端,比如安装到 /usr/local/bin/

  • curl
  • wget
  1. sudo curl -L juicefs.com/static/juicefs -o /usr/local/bin/juicefs && sudo chmod +x /usr/local/bin/juicefs
  1. sudo wget juicefs.com/static/juicefs -o /usr/local/bin/juicefs && sudo chmod +x /usr/local/bin/juicefs

Linux - 图2

第三步 挂载文件系统

挂载文件系统使用 mount 命令,格式如下:

  1. sudo juicefs mount <JFS_NAME> <JFS_MOUNTPONT>

请将 <JFS_NAME> 替换为文件系统名,将 <JFS_MOUNTPONT> 替换为挂载点路径。

提示

初次挂载文件系统,命令行会询问 Token、对象存储 API 秘钥等信息。验证成功会在 $HOME/.juicefs 目录生成文件系统配置文件,再次挂载时会从配置文件自动读取秘钥信息,无需重复输入。

例如,将名为 jfs8 的文件系统挂载到 /mnt/jfs 目录:

  1. sudo juicefs mount jfs8 /mnt/jfs

mount-fs

其中:

  • Token:对应的是文件系统 Token,可以在 Web 控制台文件系统设置中找到。
  • Access Key ID 和 Access Key Secret:是访问该文件系统绑定的对象存储 API 的密钥,可以参考采用的对象存储文档了解如何创建。需要至少为密钥配置这些对象存储访问权限:GetObjectPutObjectDeleteObject,在首次挂载文件系统时 JuiceFS 也会尝试写入、读取一些测试数据(并最终删除),如果密钥权限不足或密钥有误会导致挂载失败。

开机自动挂载

如果不想每次重启都手动挂载,可以将挂载信息写入 /etc/fstab 让它开机自动挂载。

将 JuiceFS 客户端拷贝到 /sbin 目录并重命名为 mount.juicefs,假设客户端在 /usr/local/bin:

  1. $ sudo cp /usr/local/bin/juicefs /sbin/mount.juicefs

编辑 /etc/fstab 配置文件,另起新行添加以下记录:

  1. <NAME-OF-JUICEFS> <JFS_MOUNTPONT> juicefs _netdev 0 0

请将 <NAME-OF-JUICEFS> 替换为文件系统名称,将 <JFS_MOUNTPONT> 替换为挂载点路径。

例如,需要让名为 jfs8 的文件系统开机自动挂载到 /mnt/jfs

fstab

注意

CentOS 6 默认不会在启动时自动挂载网络文件系统,需要运行下面的命令启用自动挂载:

  1. $ sudo chkconfig --add netfs