我正在寻找一个可用于以下场景的分布式文件系统解决方案/网络文件系统:
- 我有一个包含多台主机的 Docker Swarm,但每台主机本质上都是独立的,看起来与其他主机没什么不同。我们只是用它们来扩展。这意味着每台主机都运行使系统运行所需的所有工作器,理想情况下,进入系统的一项任务完全在最先启动它的主机上运行。
- 处理任务有几个步骤。每个步骤都会生成一些 1-10GB 大小的大文件。首先,每个主机上的工作人员只会处理已存储在本地的文件。
- 但有时,一台主机可能负担过重,我希望另一台主机上的工作人员接管剩余的处理步骤。为了实现这一点,我需要将文件存储在共享卷中,其他主机上的工作人员可以透明地使用该共享卷访问存储在另一台主机上的文件。
换句话说:每台主机都会在某个位置安装相同的“网络卷”,其中包含一些实际存储在当前主机上的文件(这些文件主要相关),以及一些存储在另一台主机上的文件。但是,工作人员大部分(90-95% 的时间)会访问其主机本地的文件。
我不需要复制(文件只在 30-60 分钟内有用,之后就不再需要了),我特别不想要一个中央存储。
系统的吞吐量是以每任务的分钟数而不是每秒的任务数来衡量的。大文件很少,小文件却很多。此外,文件只写入一次,只读取一两次。
有没有什么好的解决方案?我查看了GlusterFS
、、和EdgeFS
其他一些方法,但似乎都不是合适的选择。InterPlanetary File System
Ceph
答案1
你可以使用 Docker Engine 插件来完成此操作。这些是 docker-engine 支持的卷插件。
- Azure 文件存储插件
- BeeGFS 卷插件
- Blockbridge 插件
- Contiv 音量插件
- Convoy 插件
- DigitalOcean 块存储插件
- DRBD 插件
- Flocker 插件
- Fuxi Volume 插件
- gce-docker 插件
- GlusterFS 插件
- 魂器音量插件
- HPE 3Par 卷插件
- 无限音量插件
- IPFS 卷插件
- Keywhiz 插件
- 本地持久插件
- NetApp 插件 (nDVP)
- Netshare 插件
- Nimble 存储卷插件
- OpenStorage 插件
- Portworx 卷插件
- Quobyte 音量插件
- REX-Ray 插件
- Virtuozzo 存储和 Ploop 插件
- VMware vSphere 存储插件
更多详情请参阅下文关联