什么是云原生?如何解决容器原生存储问题?
什么是云原生?
“云原生”是一个被人们经常使用但不是定义很清楚的一个术语。我们认为“云原生应用”应有以下特点:
- 他们不是单独的,它们是离散的、在逻辑上可分离的几个部分,每个单独打包和部署。通常这些都是以容器为单元完成,在某些情况下就像普通的Linux软件包一样。
- 在同一台计算机上不应强制运行其全部软件堆栈。它们可以在任何地方、任何服务器或任何区域内计划运行。它们还应该能够在分布式部署系统中相互感知。
- 通过增加特定计算逻辑的并行实例,应用程序应能够根据需求快速扩展。
- 应用程序所依赖的、用于协调通信或状态保存的服务应该能够根据需要以编程和动态的方式进行探知和修改,且与其物理基础设施无关。
通过明确定义云原生的含义,我们可以更好地定义各种云原生技术组件的职责划分。这些云原生应用组件的实例包括调度软件、网络软件以及存储软件。
如何解决容器原生存储问题?
Portworx开发了一种新的存储体系结构—容器定义型存储。它基于高度分布式环境开始构建。调度软件将其作为容器进行部署和管理,并将存储作为本地卷插件扩展到Docker容器中。
Portworx提供了一种现代化的DevOps应用部署方式。我们可以让调度工具将存储基础设施部署为容器。因此,大规模部署存储将变得十分简单,不需要复杂的手动操作。
Portworx侧重于高负荷负载,及其在普通服务器上的容器粒度操作。Portworx的核心专为现代服务器构建,并利用了NVMe、SSD和更快速网络技术的最新进展。
Portworx体系结构使用户能够在混合云环境中扩展其服务,而不需要在数据路径中使用中央元数据服务器。这对于采用容器定义的工作流来说是至关重要的。为了方便与调度软件,如Kubernetes、Mesos、Swarm等进行本地集成,我们在设计Portworx部署时考虑了以容器为中心的DevOps工作流。Portworx架构还支持以DevOps为中心的内路存储服务,以及容器化的应用。
除了容器的本地存储,Portworx容器定义的存储的主要优势包括:
容器细粒度卷管理:类似数据库这样的有状态型容器化应用,需要在分布式节点上的永久数据。Portworx使用有状态的Stateful Fabric来管理数据卷,即container-SLA-aware,来做到这一点。复制卷数据确保其状态,同时满足容器化应用的性能和可用性。更重要的是,Portworx可在每个容器级别中管理其快照、克隆副本和复制操作,使DevOps能够单独管理微服务,而不是像LUNs那用做传统存储系统的绑定组。使用Portworx管理有态容器Stateful Containers很方便,每个容器级别的数据的可用性和管理也很简单,且高度自动化。
1.主机地址访问型存储: 主机地址访问型存储是在没有任何中央元数据服务器的情况下实现扩展存储。每个卷直接映射到宿主上(即不需要转译)。与当前的存储解决方案相比,Portworx的方法有三个优点:
• 消除了管理和维护中央数据库的需求,简化了存储管理和配置。
• 增加新的节点,使弹性扩展变得更便捷。
• 支持适用于跨数据中心跨云的存储集群云原生架构(私有或公有云)。
- 自动调整: Portworx根据每个服务器的配置参数自动调优最佳数据放置和分层算法。从而免除了手动干预、调优或配置RAID参数或驱动器组的工作。所有的驱动器都将作为一个大的全局池供Portworx使用,而Portworx软件将决定存储的最优配置。
- Lighthouse云监控管理: 您的数据可以保存在您的云中,也可以存储在本地环境,都可以通过Portworx的Lighthouse云监控服务和直观的用户界面来管理。
- 快速同步: 快速同步功能为在多节点环境中的应用性能加速提供同步支撑环境。它允许数据库以更高的IOPS速率运行,并通过减少本地驱动器上的争用来支持更大密度的部署。
- 全局命名空间: 卷可以在运行在不同服务器上的多个应用程序之间共享。
- 云原生扩展,包括:
•自动快照和备份到S3
•数据反馈,云中的虚拟卷可以访问来自不同云或数据中心的数据
•CoS与不同EBS卷类型配对
•Restful APIs可用于查询命名空间的修改情况——避免了在元数据管理中进行昂贵的命名空间操作,如is、find等
随着容器在企业中的部署越来越多,大多数存储供应商感到必须为容器提供支撑,比如Docker的卷插件。但是,连接到Docker的Array忽略了容器的分布式特性,以及需要将容器、调度器和存储作为一个无缝整体的精密架构和易用性。
一些新的用于容器的分布式软件项目可能会避免使用传统存储供应商的方法,但是我们发现分布式软件的尝试在存储数据路径实现方面存在缺陷,这可能会导致严重的性能问题和规模限制。
Portworx为企业客户提供了第一个真正的容器专用型基础设施。因此,它是部署具有严格的、可扩展的、自动化的、分布式存储层的有态容器应用的必要的部分,有助于完善容器的生态系统。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
到底什么是镜像(概念)
镜像到底是什么?镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。 1.UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。Union 文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。UnionFS特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录 2.Docker镜像的加载原理:docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS。bootfs(boot file system)主要包含bootloader和k...
- 下一篇
《Python编程从0到1》笔记2——表达式竟然也有副作用
在表达式的求值过程中,对状态的改变称为表达式的副作用。Python中内建的各种运算符(此处是狭义的含义,如加减乘除比较等运算符,并不包含用户自定义的运算符或函数)是没有副作用的,但各种函数调用时常带有副作用(比如各种输入输出函数)。在使用带有副作用的表达式构建复杂表达式时要格外留意,因为这可能带来程序员容易忽视的行为。如: if expA and expB : ... 这条语句用来测试表达式A B都为真的条件。expA and expB的计算具有短路性质,即如果A为假则整个表达式已然能够判断为假,表达式B不会被求值。如果表达式B包含函数调用,则意味着该函数不一定被调用。 不过总体说来,Python中副作用带来的麻烦并不多。程序员只要不在复杂表达式中嵌套带有副作用的函数即可避免这些容易混淆的情形。这种编码风格也能很容易遵守。[1][1] C程序员往往需要利用各种副作用(比如自增、赋值)写出简洁紧凑的程序,但在Python中,由于语法本身已经提供足够的简洁性,这门语言被刻意设计成避免这些写法。 这是一本很有趣很有趣的Python入门书,墙裂推荐。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Red5直播服务器,属于Java语言的直播服务器