私有云环境|装在笔记本里的私有云环境:网络存储篇(上)( 六 )


文章插图

但是如果使用上面的方式配置,我们所有的客户端之间的信任和关联,都将需要手动配置,为了简单直接一些,这里我们可以再多配置一个“专属于它的服务发现应用”,帮助我们进行一些自动化配置。
这里因为 Traefik 和 Syncthing 服务发现的证书传递存在一些问题,所以最简单的方案是使用 host-mode 中的服务发现配置,将配置复制到同级目录中。
执行 docker-compose -f docker-compose.discosrv.yml up -d ,启动 syncthing 配套的服务发现应用。然后使用 docker-compose -f docker-compose.discosrv.yml logs -f 查看日志,会看到服务输出了类似下面的内容。
discosrv-on-storage| stdiscosrv v1.18.0 "Fermium Flea" (go1.16.5 linux-amd64) docker@syncthing.net 2021-06-21 20:53:50 UTC [noupgrade, purego]discosrv-on-storage| Failed to load keypair. Generating one, this might take a while...discosrv-on-storage| Server device ID is LTOWNZI-DZHR7LD-S43HOB7-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX
然后根据我们配置文件中配置的域名,做一个简单的字符串拼合,就可以得到类似下面的服务发现端口地址了:
https://storage.lab.com:8080/v2/?id=LTOWNZI-DZHR7LD-S43HOB7-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX
将这个地址复制粘贴到所有我们要使用的 syncthing 客户端和服务端的链接配置中,在私有网络中的设备就都能够拥有探测彼此的能力了。
私有云环境|装在笔记本里的私有云环境:网络存储篇(上)
文章插图

软件的使用非常简单,我们在需要进行同步的设备上,参考上文使用容器部署 Syncthing 服务端(客户端)即可,在我们的笔记本或者手机上安装 Syncthing 客户端即可,然后在服务端之间,复制彼此的 ID 进行配对,点击确认就好了。
私有云环境|装在笔记本里的私有云环境:网络存储篇(上)
文章插图

在添加完毕设备之后,我们可以新增共享文件夹,也可以编辑默认文件夹,将文件夹分配给我们已经配对完成的设备。
私有云环境|装在笔记本里的私有云环境:网络存储篇(上)
文章插图

在配置完毕共享服务,以及共享目录之后,随便放置几个大尺寸的文件,来体验一下速度吧。在内网环境下,轻轻松松能达到 50MB/s 或以上的传输速度。
私有云环境|装在笔记本里的私有云环境:网络存储篇(上)
文章插图

搭建网盘应用:NextCloud如果你希望在后续应用之间,有一个类似我们平常使用的网盘界面的工具,可以考虑使用 NextCloud 这款开源软件。关于它的基础搭建之前的文章中有提过:《如何通过容器搭建稳定可靠的私有网盘(NextCloud)》,基础搭建和配置便不再赘述。
私有云环境|装在笔记本里的私有云环境:网络存储篇(上)
文章插图

这里,我们可以参考官方文档,添加一小段配置在 config.php 配置文件中,让它使用我们上文提到的 S3 服务,将所有的数据更可控的进行结构化存储。
'objectstore' => ['class' => 'OCFilesObjectStoreS3','arguments' => ['bucket' => 'nextcloud','autocreate' => true,'key'=> 'YOUR_KEY','secret' => 'YOUR_SECRET','hostname' => 'example.com','port' => 1234,'use_ssl' => true,'region' => 'optional',// required for some non Amazon S3 implementations'use_path_style'=>true],],
最后在写“装在笔记本里的私有云环境”这个系列的内容时,稍不注意文章字数就会超过各种平台允许最大字数,所以不得已将本篇文章进行了分拆。
迄今为止,我们已经完成了存储服务一半的搭建内容。
下一篇文章里,我们将结合目前所有的基础设施,完成对存储服务的监控集成、数据备份、以及试着实现一个最简单的,支持文件缓存、图片处理的 CDN 服务来复用我们已经搭建好的设施。