块存储、对象存储和文件系统: 它们对容器而言意味着什么?

当管理员首次开始使用Docker容器时,一般会使其感到惊讶的是, 容器自己采用的是非永久性存储。当容器被移除时, 容器的存储也被移除了。数据库

固然,若是没有办法实现永久存储,则容器应用程序的使用将会很是受限。幸运的是,有些方法在容器化的环境中能够实现持久存储。尽管容器自己的原生存储是非持久性的,但能够将容器链接到容器外部的存储区。此操做容许持久性数据的存储,由于当容器中止时,该外部存储不会被移除。服务器

决定如何为容器实现持久存储的第一步是肯定您将使用的存储系统的基础类型。在这方面, 一般有三种主要选项:文件系统存储、块存储和对象存储。这篇文章中,我将解释每种类型的存储之间的差别, 以及使用它们为容器环境设置存储时各会带来什么。分布式

文件系统存储

文件系统存储是将数据存储为文件,这一存储形式已存在数十年了。每一个文件都有一个文件名, 而且一般具备与其关联的属性。一些经常使用的文件系统包括NFS和NTFS。性能

当涉及到配置容器以持久存储数据时,文件系统存储是实现持久存储数据的最广泛的方法之一。最为人所知的文件系统储存示例(与容器相关)多是基于主机的持久性。阿里云

基于主机的持久性背后的想法很是广泛。容器驻留在主机服务器上。这个主机服务器包含它本身的操做系统和它本身的文件系统。能够将容器配置为在主机服务器的文件存储的专用文件夹内存储持久数据。Docker容器一般使用联合文件系统将容器层组合成一个内聚的文件结构。基于主机的持久性绕过了须要持久存储的数据的联合文件系统,并借助主机上使用的同一文件系统存储数据。云计算

普通主机持久性引发的主要问题是,它彻底破坏了容器的可移植性。当使用主机持久性时,依赖项资源(持久存储)驻留在宿主服务器的原生文件系统的容器外。为了解决此问题, 已经建立了其余的主机持久性。例如,经过多主机持久性使用分布式文件系统,来复制跨多个主机服务器的持久性存储。操作系统

结论:文件系统存储多是最笨拙的方法,由于文件系统在设计之初并无把可移植性归入考虑范围。然而,正如前文我所提到的,有一些方法能够实现容器友好型的文件存储系统,而这一般要经过跨多个服务器分布文件系统来实现。设计

块存储

块存储是容器的另外一个存储选项。如前所述,文件系统存储将数据组织为文件和文件夹的层次结构。相反,块存储存储块中的数据块。块仅经过其地址识别。块没有文件名,也没有本身的元数据。只有当块与其余块组合造成完整的数据块时,它们才具备意义。对象

因为其性能,块存储一般用于数据库应用程序。块存储也一般用于提供快照功能,它容许将volume回滚到特定时间点,而无需还原备份。图片

对于容器,块存储有时以容器定义的存储的形式实现。容器定义的存储是一种软件定义的存储形式,但专门用于容器化环境中。此存储一般在专用存储容器内部实现。

Rancher Labs推出了本身的分布式块存储项目,名为Project Longhorn。Longhorn背后的基本思想相对简单。

存储系统能够包含多个块存储volumes,而且这些volumes中的每个只能由单个主机加载。在这种状况下,Longhorn试图将块存储控制器划分为大量较小的块存储控制器,每一个存储控制器均可以映射到不一样的块存储volume。若是全部这些块存储volumes都驻留在物理磁盘的公共池中,那么Longhorn方法将容许编排引擎根据须要建立块存储volumes。例如,能够在建立容器的同时自动建立块存储volume。

结论:块存储比文件系统存储更灵活,这样更容易适应容器环境的块存储。惟一的挑战是确保块存储数据在由多台主机组成的环境中可用。这能够经过分布式存储来解决。

对象存储

对象存储与文件系统存储或块存储不一样。它不是经过块地址或文件名引用数据,而是将数据存储为对象并由对象ID引用。对象存储的优势在于它具备很强的伸缩性,而且在将属性与对象相关联方面具备高度的灵活性。使用对象存储的缺点是它执行起来不如块储存。

因为对象存储主要是为实现可伸缩性而设计的,所以它是公共云提供商的热门选择。Docker容器能够连接到Amazon Web Services或Microsoft Azure上的对象存储,但这样作须要专门设计容器化应用程序以利用对象存储。而典型的应用程序可能被设计为经过文件系统或SCSI调用访问数据,对象存储须要基于HTTP的REST调用,例如Get或Put。所以,应该将对象存储保存在须要大规模可伸缩存储的应用程序或需跨地域的存储上。

结论:因为依赖于REST调用,对象存储可能更复杂。但对象存储提供的可伸缩性使它成为一个很好的选择, 由于在容器环境中,大规模可伸缩性经常是你们优先考虑的。

9月27日,北京海航万豪酒店,容器技术大会Container Day 2017即将举行。

CloudStack之父、海航科技技术总监、华为PaaS部门部长、恒丰银行科技部总经理、阿里云PaaS工程总监、民生保险CIO······均已加入豪华讲师套餐!

11家已容器落地企业,15位真·云计算大咖,13场纯·技术演讲,结合实战场景,聚焦落地经验。免费参会+超高规格,详细议程及注册连接请戳 输入图片说明

相关文章
相关标签/搜索