JuiceFS实现云同步stable diffusion文件
JuiceFS实现云同步stable diffusion文件
为什么使用云同步?
因为stable diffusion
的模型确实太太太大了,而且好看的模型太多了,所以就像个仓鼠一样收集。但是我们经常会跑在不同的GPU云服务器上,不可能每次都重新下载,另外,服务器的网络也不一定畅通,所以就需要本地使用魔法下载完成后,服务器使用。
为什么使用juiceFS?
其实我一开始使用alist
挂载到本地,我觉得也挺不错的,但是毕竟不是专门做这个的,无法保证很好的性能与可用性,还是需要一个专门的分布式文件系统才能用的更安心,所以我选择了juiceFS
JuiceFS优点
下面引自官方:
JuiceFS 是一款面向云原生设计的高性能分布式文件系统,在 Apache 2.0 开源协议下发布。提供完备的 POSIX 兼容性,可将几乎所有对象存储接入本地作为海量本地磁盘使用,亦可同时在跨平台、跨地区的不同主机上挂载读写。
JuiceFS 采用「数据」与「元数据」分离存储的架构,从而实现文件系统的分布式设计。文件数据本身会被切分保存在对象存储(例如 Amazon S3),而元数据则可以保存在 Redis、MySQL、TiKV、SQLite 等多种数据库中,你可以根据场景与性能要求进行选择。
JuiceFS 提供了丰富的 API,适用于各种形式数据的管理、分析、归档、备份,可以在不修改代码的前提下无缝对接大数据、机器学习、人工智能等应用平台,为其提供海量、弹性、低价的高性能存储。运维人员不用再为可用性、灾难恢复、监控、扩容等工作烦恼,专注于业务开发,提升研发效率。同时运维细节的简化,对 DevOps 极其友好。
完备的POSIX兼容性
,也就是我可以在linux下当作本地硬盘一样完美使用,这也太cool了吧~
JuiceFS缺点
说是缺点,其实也只是麻烦点而已,具体点说就是,你需要对象存储
和元数据存储
对象存储
没错,你不可能把数据凭空存在不存在的地方,所以你需要一个对象存储,经过我货比三家,我用的是阿里云的OSS,
阿里云40g
一年只要9r
,并且小流量访问不需要加钱(什么叫小流量,只要没有访问量就不需要,比如说我的博客)而且oss可以作为图床,可以作为webdav使用(套个alist),这样就不用担心坚果云因为流量超额使用不了(好几次keepass的密码文件因为流量超额读不出来),各位穷哥们相当于27r
可以直接买个3年
,40G
的网盘,而且满速下载(这不吊打巴巴网盘和黑度网盘)坚果云一个月会员30r
,我直接开3年
才27r
,有钱的哥们直接开5年
元数据
根据官网的说法,之所以速度快就是因为元数据和存储分开存放,既然要追求速度,那就追求到底,直接上独立云服务器redis或者云数据库(不建议开阿里云云服务器,续费贵哭,这里建议腾讯云轻量服务器,有活动三年不到1k,涨价就酌情购买)
部署juiceFS环境
首先建议查看官方文档分布式模式快速上手指南 | JuiceFS Document Center
创建文件系统
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 /路径/到/文件 路径/到/硬链接