macOS 部署 JuiceFS 云服务
JuiceFS 云服务的部署方式遵循以下三个步骤:
- 创建文件系统
- 安装客户端
- 挂载使用
但请注意,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 上更改启动磁盘安全性设置》将系统设置调整为「降低安全性」模式。
手动部署
第一步 创建文件系统
如果你还没有创建文件系统,请先参照《JuiceFS 云服务快速上手指南》在 Web 控制台创建文件系统。
第二步 下载客户端
提示
「云服务客户端」不同于「社区版客户端」,如果需要同时使用二者,为了避免名称冲突,请修改程序名称进行区分。例如,可以将云服务客户端改名为 juicefs-cloud
。
首先查看系统已设置的可执行路径:
$ echo $PATH
/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
sudo curl -L juicefs.com/static/juicefs -o /usr/local/bin/juicefs && sudo chmod +x /usr/local/bin/juicefs
sudo wget juicefs.com/static/juicefs -o /usr/local/bin/juicefs && sudo chmod +x /usr/local/bin/juicefs
第三步 挂载文件系统
挂载文件系统使用 mount
命令,格式如下:
sudo juicefs mount <JFS_NAME> <JFS_MOUNTPONT>
请将 <JFS_NAME>
替换为文件系统名,将 <JFS_MOUNTPONT>
替换为挂载点路径。
提示
初次挂载文件系统,命令行会询问 Token、对象存储 API 秘钥等信息。验证成功会在 $HOME/.juicefs
目录生成文件系统配置文件,再次挂载时会从配置文件自动读取秘钥信息,无需重复输入。
例如,将名为 jfs8
的文件系统挂载到 /mnt/jfs
目录:
sudo juicefs mount jfs8 /mnt/jfs
其中:
- Token:对应的是文件系统 Token,可以在 Web 控制台文件系统设置中找到。
- Access Key ID 和 Access Key Secret:是访问该文件系统绑定的对象存储 API 的密钥,可以参考采用的对象存储文档了解如何创建。需要至少为密钥配置这些对象存储访问权限:
GetObject
、PutObject
、DeleteObject
,在首次挂载文件系统时 JuiceFS 也会尝试写入、读取一些测试数据(并最终删除),如果密钥权限不足或密钥有误会导致挂载失败。
开机自动挂载
在本节内容中,请注意替换如下信息:
NAME
:文件系统名PATH_TO_JUICEFS
:客户端的路径(如:/usr/local/bin/juicefs
)MOUNTPOINT
:挂载路径(如:/mnt/jfs
)
设置共涉及以下 4 个步骤:
在设置开机自动挂载之前,请先通过手动挂载的方式,确保文件系统可以正常挂载;
在
~/Library/LaunchAgents
下创建文件com.juicefs.NAME.plist
:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.juicefs.NAME</string>
<key>ProgramArguments</key>
<array>
<string>PATH_TO_JUICEFS</string>
<string>mount</string>
<string>NAME</string>
<string>MOUNTPOINT</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
加载上一步创建的文件, 测试加载是否成功:
launchctl load ~/Library/LaunchAgents/com.juicefs.NAME.plist
launchctl start ~/Library/LaunchAgents/com.juicefs.NAME
ls MOUNTPOINT
如果没有挂载成功,可以在上述
plist
文件中添加以下配置:<key>StandardErrorPath</key>
<string>/tmp/mycommand.err</string>
<key>StandardOutPath</key>
<string>/tmp/mycommand.out</string>
通过以下命令就可以重新加载更新后的配置,查看输出:
launchctl unload ~/Library/LaunchAgents/com.juicefs.NAME.plist
launchctl load ~/Library/LaunchAgents/com.juicefs.NAME.plist
cat /tmp/mycommand.out
cat /tmp/mycommand.err