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

ICT架构师技术交流 2016-09-09 20:08

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

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

Portworx架构和原理

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

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

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

存储控制面

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

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

数据面访问

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

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

生命周期管理

每个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管理界面。

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

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

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

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

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

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

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

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

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”“扫一扫”下面二维码关注公众号,获取更多精彩内容。

容器定义存储(CDS)—春江水暖Portworx先知相关推荐

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

     容器定义存储(CDS)-存储技术的"瘦身"革命 ICT架构师技术交流 2016-09-09 19:42 容器技术是最快被数据中心所广泛接受和采用的技术之一,从2013年起,据 ...

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

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

  3. 【CDS技术揭秘系列 总篇】阿里云的云定义存储来了

    简介: 全新发布的云定义存储 CDS 和传统的存储阵列.分布式存储.软件定义存储的区别在哪里?阿里云存储团队如何看待将来存储的发展趋势?本文邀请了 CDS 研发团队的核心技术负责人为大家揭开围绕着阿里 ...

  4. PPT | Docker定义存储-让应用无痛运行

    为什么80%的码农都做不了架构师?>>>    编者注: 本文为9月27日晚上8点有容云平台存储架构师张朝潞在腾讯课堂中演讲的PPT,本次课堂为有容云主办的线上直播Docker Li ...

  5. 14 WM配置-主数据-定义存储单位类型(Storage Unit Type)

    业务背景:存储单位类型 可以理解为 仓库日常业务中使用到的所有 容器的类型,之前定义的仓位类型就是 可用可用的类型定义,是参考存放的堆码类型和料箱类型来定义的.现在定义的就是这些堆码类型和料箱类型 即 ...

  6. 《C++Primer》第九章-顺序容器-学习笔记(1)-顺序容器定义与操作

    <C++Primer>第九章-顺序容器-学习笔记(1) 文章目录 <C++Primer>第九章-顺序容器-学习笔记(1) 摘要 顺序容器的定义 容器元素的初始化 将一个容器初始 ...

  7. 与容器服务 ACK 发行版的深度对话最终弹:如何通过 open-local 玩转容器本地存储

    记者: 各位阿里巴巴云原生的读者朋友们大家好,又跟大家见面了.今天是我们的老朋友『阿里云容器服务 ACK 发行版』最后一次做客探究身世之谜系列专栏,在之前的访谈中,它为我们带来了精彩的讲解,感兴趣的朋 ...

  8. 容器持久化存储训练营”启动倒计时!3天攻破K8s难点

    根据 CNCF 最新调查结果,企业在生产环境中使用 Kubernetes 的比例从 78% 提高到了 83%,Kubernetes 作为云原生的核心平台,吸引了越来越多的开发者去了解.学习和掌握. 在 ...

  9. 如何攻破容器持久化存储挑战?

    简介:云原生趋势下,应用容器化比例正在快速增长,Kubernetes 也已成为云原生时代新的基础设施. 背景 云原生趋势下,应用容器化比例正在快速增长,Kubernetes 也已成为云原生时代新的基础 ...

最新文章

  1. 提升软文营销曝光量可从这几方面着手操作
  2. matlab 求x y关系,怎么用MATLAB建立数据间的函数关系
  3. js 导出到excel
  4. (二)使用xshell连接ubuntu
  5. sql 统计每月入职离职人数_入职登记表算合同吗?这里面有大学问
  6. 微信扫码下载iosAPP
  7. 原码、反码、补码详述
  8. feign post 传递空值_别再问 GET 和 POST 有什么不同了
  9. jqueryAjax的使用
  10. 老卫带你学---keras中文文档
  11. python经典书籍推荐-7本经典的Python书籍,你都读过了么?
  12. 职高的计算机平面设计一般学什么,职高形象设计学什么
  13. 小程序跳转公众号关注页面的两种方法
  14. 亲历骗子通过闲鱼、江苏猎宝网络科技股份有限公司进行诈骗!
  15. 各大容器常用的库(2021-12-10更新)
  16. OpenCV实现简单的录屏功能
  17. SSD或者机械硬盘的读取速度查询
  18. 免费备份工具FreeFileSync
  19. “野蛮人”姚振华是如何炼成的?
  20. 包子笔记 - 摆脱穷人思维

热门文章

  1. 使用obs时显示已从服务器,小鹅通OBS
  2. 昆明理工大学知道计算机答案,昆明理工大学 计算机基础教材参考答案(1-6章)
  3. 黑马程序员mysql答案_干货|MySQL常见问题及答案汇总
  4. 吃一堑长一智!象棋游戏java编程
  5. 【自动控制原理】燃烧卡路里_系统分析实例-笔记
  6. 预计2017年底Lyft美国市场份额将占1/3
  7. 大象又要跳舞了,中国移动的用户再度加速增长
  8. 【资料合集】2018云栖大会•南京峰会回顾合集:PDF下载
  9. 计算机更换主板后是否需要安装驱动程序,更换主板后是否需要重新安装win10系统...
  10. 设计影视资源网+商城的android app——引导页(第一次进入,第二次已删除)