容器定义存储(CDS)—春江水暖"Portworx"先知

原创 2016年09月10日 00:03:28


容器定义存储(CDS)—春江水暖"Portworx"先知

容器定义存储(CDS)—春江水暖

在上篇中,我们已经介绍了容器如何改变应用部署方式、为什么要通过CDS实现数据中心"轻量化"。那今天我们就来分析一下基于容器的Portworx存储、一个基于数据和控制面的容器定义存储技术和产品。

Portworx是一家美国存储初创公司,它研发了业界第一个容器定义存储系统Portworx。Portworx提供了全新的、统一的Scale out存储栈,其核心架构是共享的、松耦合的、分布式、基于元数据的块存储层(卷、块设备、全局共享卷和文件访问等)。portworx本身作为容器服务的方式部署,在每个集群节点呈现为PX的容器。

Portworx架构和原理

每个PX容器来识别服务器节点的硬件、检测磁盘类型、容量和整体服务能力和类型。系统根据每个节点的能力匹配业务对存储需求,进行调度和IO分发。

每个PX容器根据授权和集群ID发现其他节点。通过这种方式,每一个PX节点就可以感知整个存储系统的拓扑结构和参与集群的节点(支持数据中心内部和跨数据中心部署)。通过整体拓扑就可以感知整个集群的Region、机架部署情况,当然,也可以感知集群内不同节点的能力。

容器定义存储(CDS)—春江水暖

集群节点信息同步采用Gossip协议(类似留言蜚语,节点状态的变化,通过一传十,十传百的方式传递,而不是有某几个节点逐一传递),通过效率比较高的协议确保整个集群状态的一致性,而且不会存在扩展性或性能瓶颈。

容器定义存储(CDS)—春江水暖

存储控制面

存储的供给方式是通过容调度器来实现,存储资源通过编排网络分配给具体的容器实例,PX已经支持与多种容器调度、编排工具集成,如主流的Kubernetes、Swarm、Mesosphere、Spark等,PX通过控制面协议创建合适的存储卷给上层容器实例使用,基于应用容器的IO等SLA要求,PX可以自动分配满足要求的存储卷。在Kubernetes调度器中,存储卷是以Kubernetes POD的方式提供给应用容器。

卷是以Thin的方式来分配的,可以做到按需灵活伸缩。每个卷的容量是打散在集群节点上的,所以增值特性如,快照、块大小等都可以容器卷的原则来分配。

容器定义存储(CDS)—春江水暖

数据面访问

Portworx提供数据访问路径和位置,一旦把卷配置给正在运行的应用容器后,PX就处在数据路径的位置;并根据上层容器应用对应的储类型(卷、块设备或全局共享卷等)连接到上层容器上。

容器定义存储(CDS)—春江水暖

当上层应用容器写入数据时,数据块和对应的元数据会根据算法分布到不同的节点上增强可靠性。这些卷是容器可寻址卷,可以基于容器寻址,所以具备内容寻址存储的优势。

生命周期管理

每个PX容器维护着应用容器卷的生命周期管理,这些卷可以被克隆、分级存储、或移动到S3公有云上。PX同时维护着每个卷的IO活动历史记录,并向上提供CLI和PXctl命令接口和GUI界面,方便运营维护和系统管理。

Portworx应用场景

Portworx由于在存储容器层针对企业应用做了优化和增强,所以,可以满足主流应用要求,如Hadoop、Spark大数据存储,提供弹性Scale out能力;对内容管理WordPress,可以提供Scale out 文件能力和基于容器的备份;也支持一些如Cassandra、Postgres等非关系数据库;另外,对流计算、视频应用场景也支持PB级的扩展能力。

Portworx提供了业界第一个存储解决方案专为容器。不像传统存储,Portworx容器定义存储是基于应用需求规模实现弹性伸缩。面向容器化应用的软件定义存储,强调Container Defined Storage,实现从控制面到数据面完整的方案,Portworx提出“容器定义的存储”,相比VM存储提出更细SLA要求、容器粒度的企业存储特性要求,容器应用对存储的新要求需要进一步分析。

Portworx其在Docker Hub中有OpenStorage开源项目;另外,提供了开发者和企业级两个版本,开发者版本只包含基于容器的Scale out快存储、分布式的文件访问、基于容器粒度的控制和CLI命令行界面;企业版增加了多集群管理、单一文件命名空间、容量预测和管理、GUI管理界面。

容器定义存储(CDS)—春江水暖

Portworx可运行于服务器或EC2、容器等基础设施,并且支持分离部署和超融合部署,Portworx的主要亮点简单总结如下:

  • 性能无损: 存储运行性能可以和裸金属部署媲美。

  • 存储持久能力: 对容器应用提供了持久数据存储能力。

  • 容器粒度管理: 实现了基于每个应用容器的存储管理服务。

  • 容器粒度增值特性: 基于容器粒度实现远程复制、快照等数据保护功能

  • 节约硬件资源: 相对于虚拟机,削减了存储70%硬件和资源成本。

  • 资源自动化供给: 能应对容器应用突发需求,如容量供给、自动调度等,基于容器I/O进行优先级排队,基于SLA自动供给。

Portworx容器定义存储本身很简单,采用基本的分布式方法和商业X86硬件作为融合存储节点,并能实现节点快速伸缩。最主要的就是可以与任何一个Docker调度集成,自动实现存储资源按需供给。

容器定义存储(CDS)—春江水暖

Portworx从控制面和数据面完整地为容器提供存储,数据面供给能力更高、更快、更强;控制面可以广泛对接Docker、Kubernetes、Mesos等计算与集群管理系统。如vSAN/vVol/Cinder,这种比较开放的架构,可以通过PWX CDS 控制器构建面向容器控制面生态。


Portworx认为容器定义存储应具备这些能力(个人观点,可能不是太全面):
1.容器定义存储应该分控制面和数据面实现,控制面基于 Kubernetes、Swarm、Mesosphere、Spark等 容器调度、编排工具自动实现存储分配,满足应用容器的SLA要求;数据面提供更高、更快、更强的存储供给能力,并可以实现基于应用容器寻址的能力。
2.应用容器卷的分配、管理应该是以容器为单位, 所有增值特性如,快照、远程复制等都基于容器的原则来实现。
3.容器定义存储应该是高度自愈、轻量高效、应用容器感知的系统。自愈、高效我觉得传统存储都具备,但是轻量、容器感知还需要加强。Portworx采用容器实现分布式Scale out容器定义存储,可以提供裸金属性能、启动快和资源占用率低等特点。


文章来自ICT架构师技术交流ICT_Architect公众号,关注获取更多精彩内容。


温馨提示:

请搜索“ICT_Architect”“扫一扫”下面二维码关注公众号,获取更多精彩内容。

版权声明:本文为博主原创文章,转载请注明作者和出处。

容器数据存储-Portworx试用

容器的数据卷分为:本地存储、共享存储;使用本地数据卷存储,当该卷所在的机器出现故障,严重可导致数据永远丢失。 Portworx (px-dev)在各个节点上保存多份备份,可以很好解决上面的问题,并可以...
  • kozazyh
  • kozazyh
  • 2016年11月08日 22:45
  • 975

容器定义存储(CDS)—"Portworx"

今天我们就来分析一下基于容器的Portworx存储、一个基于数据和控制面的容器定义存储技术和产品。 Portworx是一家美国存储初创公司,它研发了业界第一个容器定义存储系统Portworx。P...

容器数据存储-Portworx试用

容器的数据卷分为:本地存储、共享存储;使用本地数据卷存储,当该卷所在的机器出现故障,严重可导致数据永远丢失。 Portworx (px-dev)在各个节点上保存多份备份,可以很好解决上面的问题,...

我的AI转型之路与AI之我见(非985211的奋斗路程与视角)

http://blog.csdn.net/sileixinhua/article/details/75203725 前言 我是一名传统网页(PHP+ruby)和应用...

容器定义存储(CDS)—存储技术的"瘦身"革命

容器技术是最快被数据中心所广泛接受和采用的技术之一,从2013年起,据统计Docker的下载量已经快达到30亿次,容器已经彻底改变了应用部署方式,但是IT基础设施的管理却没有及时跟上。...

2B互联网市场:春江水暖谁先知,正是拐点发力时

尽管寒冬已至,但是在市场摸爬滚打的众多2B互联网企业却已经感受到了春江水暖,特别是对于SaaS服务提供商来说。 2016 年对于 2B 互联网市场来说,是冬天,还是春天?众说纷纭。经...

DockOne技术分享(五十七):Docker容器对存储的定义(Volume 与 Volume Plugin)

原文链接:http://www.dockone.io/article/1257 【编者的话】Docker技术自从诞生以来已经带来了一场云计算的革命。其进展速度之快,接受程度之高让人惊叹。国内...
  • i_chips
  • i_chips
  • 2017年11月02日 10:13
  • 164

JDBC:数据库自定义类型与Java类的映射—将对象存储在关系数据库中(一)

最近在使用PostgreSQL数据库,PostgreSQL中可以自定义自己的数据类型。

Docker容器和镜像存储机制—images—目录树结构

http://ju.outofmemory.cn/entry/114344 Docker的存储机制采用了非常灵活的模块化设计,目前支持5种存储引擎,分别为aufs、btrfs、device ...
  • ztguang
  • ztguang
  • 2016年02月01日 00:00
  • 1024

定义“面向对象”的SQLite—在SQLite中存储Object

项目中有一个数据是可以用ORM来解释的,但是却分表存储。个人感觉有点麻烦,于是着手改造数据库。但是Android中使用NoSQL有点麻烦,于是想到了可以使用Java的Serializable特性。  ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:容器定义存储(CDS)—春江水暖"Portworx"先知
举报原因:
原因补充:

(最多只允许输入30个字)