首页 > 新闻 > 专家观点 >

容器应用千变万化,存储架构不离其宗

2016-08-02 09:43:06   作者:VMware中国研发中心首席架构师张海宁   来源:VMware中国   评论:0  点击:


  容器应用轻盈灵活,怎样的存储才能与其匹配呢?
  本文总结了容器存储的通用架构,节选自笔者参与编写的《软件定义存储:原理、实践与生态》一书,感兴趣的小伙伴们可以通过最下方“阅读原文”查看本书购买方式。
  容器应用的存储需求
  容器是近年兴起的应用开发、交付和运维的方式。随着应用模式的深入,已经从原先无状态为主的应用,逐渐发展到有状态的容器应用。有状态的容器应用必需要有持久化数据的能力,存储模型如下图所示。
  在容器中运行的应用,应用真正需要保存的数据,可以写入持久化的Volume数据卷。由于以微服务架构为主的容器应用多为分布式系统,容器可能在多个节点中动态地启动、停止、伸缩或迁移,因此,当容器应用具有持久化的数据时,必须确保数据能被不同的节点所访问。另一方面,容器是面向应用的运行环境,数据通常要保存到文件系统中,即存储接口以文件形式更适合应用访问。综合上述需求,容器平台较适宜的应是具有共享文件接口的存储系统。
  容器存储的架构
  为了满足容器的存储需求,架构上可分为容器存储控制平面和存储数据平面两部分,如下图所示。
  容器存储控制平面(Container Storage Control Plane)
  控制平面通常由软件实现,主要是接收北向API收到的存储请求,如创建、删除、加载、卸载和迁移数据卷(volume)等,并传递给底层数据平面去完成实际的存储操作。控制平面一般需要满足调用层规范的API,既可以是Docker容器引擎卷插件(Volume Plugin) 的API,也可以是Kubernetes等编排调度平台的Volume API。
  存储数据平面(Storage Data Plane)
  提供数据实际的持久化能力,不仅需要实现容器数据卷的读写、快照、数据保护和复制等存储操作,而且通常还需具备多节点共享数据的能力。数据平面可以基于文件系统如NFS,CephFS等来做数据实际存储,也可以基于块设备如iSCSI等加上文件接口的来实现数据存储功能。从部署架构上看,容器存储可以分为集中式和分布式两种。集中式存储包括传统SAN为代表的块存储和NAS为代表的文件存储。分布式存储主要包括GlusterFS等共享文件系统和Ceph RBD等块设备,在云环境中的还包括各种云存储,如AWS的EBS块存储或S3对象存储。
  容器存储的volume管理
  由于容器技术应用的时间不长,成熟的容器存储方案还在发展过程中。目前,容器的存储大多支持Docker或Kubernetes的Volume,因此我们下文介绍这两种Volume的原理。
  Docker的容器卷插件
  Docker V1.8正式发布了容器卷插件(Volume Plugin) 的规范,允许第三方厂商的数据卷在Docker引擎中提供数据服务,使得外置存储可以超过容器的生命周期而独立存在。这意味着各种存储设备只要满足接口API的标准,就可以接入Docker容器的运行平台中。
  现有的各种存储可以通过简单的驱动程序封装,从而实现和Docker容器的对接。可以说,驱动程序实现了和容器引擎的北向接口,底层则调用后端存储的功能完成数据存取等任务。目前已经实现的Docker Volume Plugin中,后端存储包括常见的NFS, CIFS, GlusterFS和块设备等。
  Kubernetes的数据卷
  Kubernetes是开源的容器集群管理平台,可以自动化部署、扩展和运维容器应用。Kubernetes的调度单位称作“Pod”(豆荚),每个Pod包含一个或多个容器。Pod可部署在集群的任意节点中,存储设备可以通过数据卷(Volume)提供给Pod的容器使用。为了不绑定特定的容器技术,Kubernetes没有使用Docker的Volume机制,而是制定了自己的通用数据卷插件规范,以配合不同的容器运行时来使用(如Docker和rkt)。数据卷分为共享和非共享两种类型,其中非共享型只能被某个节点挂载使用(如iSCSI,AWS EBS等网络块设备),共享型则可以让不同节点上的多个Pod同时使用(如NFS,GlusterFS等网络文件系统,以及可支持多方读写的块设备)。对有状态的应用来说,共享型的卷存储能够很方便地支持容器在集群各节点之间的迁移。
  为了给容器提供更细粒度的卷管理,Kubernetes增加了持久化卷PV(Persistent Volume)的功能,把外置存储作为资源池,由平台管理并提供给整个集群使用。Kubernetes的卷管理架构使得存储可用标准的接入方式,并且通过接口暴露存储设备所支持的能力,从而在容器任务调度等方面实现了自动化管理。
  容器的存储项目和产品
  已经有越来越多的容器存储项目和产品涌现,包括Flocker(控制平面),Portworx(控制平面和数据平面),以及VMware的Virtual SAN + Photon Platform的超融合方案(下图)。限于篇幅,这里仅介绍一下VMware的化方案。VMware推出的光子平台(Photon Platform),帮助用户在ESX集群上快速、规模化地部署多种云原生应用集群:包括Docker Swarm,Mesos,Kubernetes,以及Pivotal Cloud Foundry,是容器化应用集群管理和调度的一大利器。在ESX提供计算能力的同时,底层的分布式存储Virtual SAN把本地磁盘池化,提供Docker Volume的接口,供容器应用使用。这种包含计算和存储能力的超融合集群,具有很强的扩展能力,适合云原生应用运行
  总体而言,面向容器的存储系统还有待发展和成熟,这也是各存储厂商新的机遇。

相关热词搜索: 存储 容器 架构

上一篇:联络中心请努力保留你的座席

下一篇:最后一页

分享到: 收藏

专题