Docker容器和存储系统系列一

 

摘要:

 

要想在生产环境中部署Docker,开发运维人员必须还要问自己关于数据存储的几个问题。Docker的数据存储组织形式是什么?Docker目前的存储生态圈各个公司的技术特点?Docker的出现对未来存储后端要求会带来哪些技术变革?

 

注:文章由江松原创,有容云整理发布,转载请注明出处。

 

作者背景:

 

江松,拥有超过16年的国内外企业级软件基础架构研发经验,对企业级存储,云计算都有很深的技术造诣和行业理解。

 

自诉:

我是一名老程序员了,今天给大家分享的是Docker容器和存储系统系列的东西。分享之前要说的一点是:今天的分享是从一个技术人的角度出发的。

 

做产品和自用或者做项目服务是不一样的。产品就是交付用户后,对所发生的所有可能的情况基本都有比较明确的判断。而作为技术人员,对将要遇到的问题和对问题考虑的角度都是不确定也不尽相同的。

 

Docker技术自从诞生以来已经带来了一场云计算的革命。其进展速度之快,接受程度之高让人惊叹。国内已经有不少介绍Docker技术的文章,它的生态,网络,管理,构建,应用都有方方面面的资料。然而,要想在生产环境中部署Docker,开发运维人员必须还要问自己关于数据存储的几个问题。

  1. Docker的数据存储组织形式是什么?
  2. Docker目前的存储生态圈各个公司的技术特点?
  3. Docker的出现对未来存储后端要求会带来哪些技术变革?

 

关于Docker存储的介绍目前国内比较少,作为一名在存储和云计算领域扎根多年的IT人,我希望能够亲自研究这些课题,抛砖引玉,分享讨论。其中的观点不一定都是正确的,但是希望能够引起更多人的思考和共鸣。

 

一.Docker的整体数据存储的方式

 

首先今天分享的是这个系列的第一节,即Docker的整体数据存储的方式。要说明这个问题,我们可以先看看容器和VM的区别,看看他们对存储有哪些不一样的要求。

 

容器和VM,几乎所有人都会说容器就是一种比VM更轻更优的虚拟化技术。其实,我的理解不太一样,我认为容器和VM最大的不同在于容器不是VM。这个,不是废话么。仔细分析一下,容器的重点其实不在虚拟化技术,它叫container, 并没有Virtual这个词。它的关注核心已经从冷冰冰的machine,上升到了如何更好的去承载应用。这个是有本质区别的。VM关注的是如何让Machine更加高效,VM发展的再厉害,它也是一种更高级的Machine。它看待后端存储其实是和一个物理Machine看待后端存储是一致的。而容器呢,它希望后端存储对它来说是透明的,不用它关心的,它更加关心的是应用数据的组织形式。

 

下面这个表是我做的一些对比


VM相关的存储技术已经有很多的介绍了。这里我们继续把和容器相关的存储知识简单展开的讨论一下。

 

容器的Root Image存储就是实现分层的文件组织和写时复制CoW,如AUFS,Device Mapper,ZFS。这些技术满足了容器的核心价值,即极快的创建速度,极小的存储资源消耗以及容器迁移的便捷性。他们又分成了三类,

AUFS,Overlay : 联合文件系统。

DeviceMapper:CoW块存储。

ZFS,btrfs: CoW文件系统。

 

Docker并不推荐采用Root Image的存储方式来存储应用数据。因为应用数据对安全,可用性,共享,性能等方面的要求和Root Image的要求是完全不一样的。后面我们还会专门介绍。Docker采用了Volume这样一个独立的数据访问接口,应用通过Volume去访问相关的数据,Volume的实现和CoW的分层文件系统完全独立。Volume通过Rancher Convoy或者Flocker这样的存储驱动去管理和访问具体的存储设备。

 

 

在下面的章节里,我会对Volume接口做重点的介绍。敬请期待。

 

本文电子书下载:

云盘下载:http://pan.baidu.com/s/1jHfP9Dc

网页下载:http://www.youruncloud.com/help/115.html

博客期刊:http://www.youruncloud.com/blog/0_3.html

 

 

分享:Docker容器和存储系统系列一

有容云-构筑企业容器云 www.youruncloud.com

调查问卷

1、您所在的公司在IT方面面临哪些挑战? (最少选1项)

技术架构老旧过时,业务需要IT从传统架构转向互联网架构
需要管理使用多个云,避免vendor locked-in
IT资产(例如虚拟机或者物理服务器)的资源利用低,成本高昂难以承受
业务有强烈弹性需求 (比如,短期内用户访问量剧增)
使用微服务架构
开发、测试、生产环境不统一,企业内缺乏统一交付标准
运维工作复杂、自动化程度低,产品交付周期长
缺乏服务于内部其他业务部门或者第三方应用,且具备完善的计费及权限模块的PaaS平台
其他

2、您所在的公司在使用哪些私有、公有云解决方案?(最少选1项)

OpenStack
CloudStack
VMware
AWS
Azure
阿里云
金山云
腾讯云
UCloud
青云
其他

3、您是如何看待开源软件的?您所在的公司是否有使用开源软件?


没有,但有意向
没有,不接受

4、请问您所在的公司所属行业是?

传统金融、新金融
运营商
互联网
其他

5、您所在的公司在使用哪些容器管理方案?(最少选1项)

Kubernetes
Mesos
Docker Swarm
Rancher
没有

6、您所在的公司在使用容器管理方案时,认为其最需要改善的功能项是?(最少选1项)

网络管理方案
存储管理方案
易用性
完整性
没有
           

文章归档