【编者的话】本文根据 云舒网络 博客整理发布。
作者江松,拥有超过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://www.cloudsoar.com/about ... v1.1/
-------------------------------------------------------------------------------------------------------------
温馨提示:
云舒网络携手Rancher Labs推出【Rancher | 实战群】,在线为您分享Docker技术干货,更有往期回顾精选期刊等你拿!
本群汇集了Rancher技术精英及业内技术派高人,宗旨是为了大家拥有更专业的平台交流Rancher实战技术,实时与Rancher创始团队面对面!同时欢迎各位分享自己的经验、疑难问题,我们将定期邀请分享嘉宾做各类话题分享及回顾,共同实践研究Docker容器生态圈。
加群方法:
1.关注【云舒网络】公众号
2识别下方二维码联系群助手
QQ群号:216521218