macOS 部署 JuiceFS 云服务

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

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

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

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

环境要求

Python

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

FUSE

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

macOS 默认不支持 FUSE 接口,需要先安装 macFUSE 实现对 FUSE 的支持。

注意

由于 macFUSE 需要安装内核扩展,如果你在 Apple M1 芯片的计算机上安装时发生错误,请参考《在搭载 Apple 芯片的 Mac 上更改启动磁盘安全性设置》将系统设置调整为「降低安全性」模式。

macOS - 图1

手动部署

第一步 创建文件系统

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

第二步 下载客户端

提示

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

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

  1. $ echo $PATH
  2. /opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$HOME/.local/bin:/usr/local/go/bin:/Library/Apple/usr/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

macOS - 图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 也会尝试写入、读取一些测试数据(并最终删除),如果密钥权限不足或密钥有误会导致挂载失败。

开机自动挂载

在本节内容中,请注意替换如下信息:

  • NAME:文件系统名
  • PATH_TO_JUICEFS:客户端的路径(如:/usr/local/bin/juicefs
  • MOUNTPOINT:挂载路径(如:/mnt/jfs

设置共涉及以下 4 个步骤:

  1. 在设置开机自动挂载之前,请先通过手动挂载的方式,确保文件系统可以正常挂载;

  2. ~/Library/LaunchAgents 下创建文件 com.juicefs.NAME.plist

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    3. <plist version="1.0">
    4. <dict>
    5. <key>Label</key>
    6. <string>com.juicefs.NAME</string>
    7. <key>ProgramArguments</key>
    8. <array>
    9. <string>PATH_TO_JUICEFS</string>
    10. <string>mount</string>
    11. <string>NAME</string>
    12. <string>MOUNTPOINT</string>
    13. </array>
    14. <key>RunAtLoad</key>
    15. <true/>
    16. </dict>
    17. </plist>
  3. 加载上一步创建的文件, 测试加载是否成功:

    1. launchctl load ~/Library/LaunchAgents/com.juicefs.NAME.plist
    1. launchctl start ~/Library/LaunchAgents/com.juicefs.NAME
    1. ls MOUNTPOINT
  4. 如果没有挂载成功,可以在上述 plist 文件中添加以下配置:

    1. <key>StandardErrorPath</key>
    2. <string>/tmp/mycommand.err</string>
    3. <key>StandardOutPath</key>
    4. <string>/tmp/mycommand.out</string>

    通过以下命令就可以重新加载更新后的配置,查看输出:

    1. launchctl unload ~/Library/LaunchAgents/com.juicefs.NAME.plist
    1. launchctl load ~/Library/LaunchAgents/com.juicefs.NAME.plist
    1. cat /tmp/mycommand.out
    1. cat /tmp/mycommand.err