Speedy:来自京东的Docker镜像存储系统

jopen 9年前

镜像是Docker项 目最大的创新点之一,所有的Docker容器都源于镜像。不可否认镜像存储是Docker工作流中的重要一环,Docker Registry是官方提供的开源项目用以保存镜像,同时它也提供了后端存储系统来解决镜像的落地问题,比如Local Filesystem、S3、Swift。</span> Speedy 是由京东开源的一个分布式镜像后端存储系统,在架构设计上更好的解决了扩展性和可用性的问题。</span>  Speedy架构如下图:</span></span>

Speedy本身主要涉及模块:

  • Docker Registry Driver
  • ChunkMaster
  • ChunkServer
  • ImageServer

Docker Registry Driver是一个遵照Docker Registry 1.0协议实现的驱动,完成Docker Registry与后端存储系统的对接工作。ChunkServer与ChunkMaster组成了一个通用的对象存储服务,ChunkMaster是中 心节点,缓存了所有ChunkServer的信息,ChunkServer本身是最终镜像数据落地的存储节点,多个ChunkServer会构成一个组, 拥有唯一的组ID,上传这个组内的所有ChunkServer都成功才算成功,下载可以随机选择其中一个节点下 载。

ImageServer 本身是一个无状态的Proxy服务,它相当于是后面通用对象存储服务的一个接入层,Driver发起的镜像上传、下载操作会直接发给 ImageServer,ImageServer中缓存了ChunkMaster中的存储节点信息,通过这些信息,ImageServer会进行 ChunkServer节点的选择操作,找到一组合适的ChunkServer机器完成镜像的上传或下载操作。

https://github.com/jcloudpub/speedy