跳至主要內容

JuiceFS实现云同步stable diffusion文件

fatSheep大约 4 分钟

JuiceFS实现云同步stable diffusion文件

为什么使用云同步?

因为stable diffusion的模型确实太太太大了,而且好看的模型太多了,所以就像个仓鼠一样收集。但是我们经常会跑在不同的GPU云服务器上,不可能每次都重新下载,另外,服务器的网络也不一定畅通,所以就需要本地使用魔法下载完成后,服务器使用。

为什么使用juiceFS?

其实我一开始使用alist挂载到本地,我觉得也挺不错的,但是毕竟不是专门做这个的,无法保证很好的性能与可用性,还是需要一个专门的分布式文件系统才能用的更安心,所以我选择了juiceFS

JuiceFS优点

下面引自官方:

JuiceFS 是一款面向云原生设计的高性能分布式文件系统,在 Apache 2.0 开源协议下发布。提供完备的 POSIXopen in new window 兼容性,可将几乎所有对象存储接入本地作为海量本地磁盘使用,亦可同时在跨平台、跨地区的不同主机上挂载读写。

JuiceFS 采用「数据」与「元数据」分离存储的架构,从而实现文件系统的分布式设计。文件数据本身会被切分保存在对象存储open in new window(例如 Amazon S3),而元数据则可以保存在 Redis、MySQL、TiKV、SQLite 等多种数据库open in new window中,你可以根据场景与性能要求进行选择。

JuiceFS 提供了丰富的 API,适用于各种形式数据的管理、分析、归档、备份,可以在不修改代码的前提下无缝对接大数据、机器学习、人工智能等应用平台,为其提供海量、弹性、低价的高性能存储。运维人员不用再为可用性、灾难恢复、监控、扩容等工作烦恼,专注于业务开发,提升研发效率。同时运维细节的简化,对 DevOps 极其友好。

完备的POSIX兼容性,也就是我可以在linux下当作本地硬盘一样完美使用,这也太cool了吧~

JuiceFS缺点

说是缺点,其实也只是麻烦点而已,具体点说就是,你需要对象存储元数据存储

对象存储

没错,你不可能把数据凭空存在不存在的地方,所以你需要一个对象存储,经过我货比三家,我用的是阿里云的OSS,

阿里云40g一年只要9r,并且小流量访问不需要加钱(什么叫小流量,只要没有访问量就不需要,比如说我的博客)而且oss可以作为图床,可以作为webdav使用(套个alist),这样就不用担心坚果云因为流量超额使用不了(好几次keepass的密码文件因为流量超额读不出来),各位穷哥们相当于27r可以直接买个3年,40G的网盘,而且满速下载(这不吊打巴巴网盘和黑度网盘)坚果云一个月会员30r,我直接开3年27r,有钱的哥们直接开5年1696678477525.png

元数据

根据官网的说法,之所以速度快就是因为元数据和存储分开存放,既然要追求速度,那就追求到底,直接上独立云服务器redis或者云数据库(不建议开阿里云云服务器,续费贵哭,这里建议腾讯云轻量服务器,有活动三年不到1k,涨价就酌情购买)

部署juiceFS环境

首先建议查看官方文档分布式模式快速上手指南 | JuiceFS Document Centeropen in new window

创建文件系统

juicefs format \
    --storage oss \
    --bucket https://myjfs.oss-cn-shanghai.aliyuncs.com \
    --access-key ABCDEFGHIJKLMNopqXYZ \
    --secret-key ZYXwvutsrqpoNMLkJiHgfeDCBA \
    redis://tom:mypassword@myjfs-sh-abc.redis.rds.aliyuncs.com:6379/1 \
    myjfs

挂载文件系统

juicefs mount redis://tom:mypassword@myjfs-sh-abc.redis.rds.aliyuncs.com:6379/1 ~/jfs

和linux下挂载初始化基本一致

部署stable diffusion

这部分其实没什么好写的,linux下面一个软链接就可以挂载过去,注意写对路径即可

因为我日用linux,win已经忘得差不多了,所以不写win。linux链接命令ln的用法:

  • 创建指向文件或目录的符号链接:
    • ln -s /路径/到/文件或目录 路径/到/符号链接
  • 覆盖现有的符号链接以指向其他文件:
    • ln -sf /路径/到/新文件 路径/到/符号链接
  • 创建文件的硬链接:
    • ln /路径/到/文件 路径/到/硬链接