设为首页 收藏本站
查看: 2126|回复: 0

[经验分享] Docker和超融合的结合

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-7-4 10:18:58 | 显示全部楼层 |阅读模式
我们说Docker是无状态的,其主要在于对计算资源的弹性伸缩。在我们不需要运行Docker或者Docker出现损坏的时候我们只需要将其进行销毁即可。即类似于之前网上有篇文章所说的,容器就像是农场里面的饲养的一头奶牛,当我们想吃牛肉了或者奶牛生病了不能够再生产奶,那我们就直接换掉就好了。容器技术基于这样的思想,和公有云的按需使用、弹性伸缩一致。所以Docker等容器技术相比较虚拟机而言,能够得到如此大力推广和发展,实是因为Docker等容器技术将计算资源的按需使用、弹性伸缩做到了极致。

但是我们的应用是有状态的,这个和Docker的无状态是如何结合的。在这里我们所述的状态,就是应用程序运行所需的数据、配置等等信息。所有我在这里所理解的是,在基于Docker的时代,我们不但将应用从操作系统中抽象分离出来,同时还将我们的应用和数据以及配置相分离。这样做到的好处就是容器是奶牛任君挑选,随时还可以再换一批。同时,将其中应用的数据和配置信息单独分离出来存放在永久性的存储当中,这其中通过某一机制和Docker进行互联,在启用Docker之后,Docker自动的去拿到所属的数据以及配置信息组成一个完成的运行环境。Docker推出的Volume数据卷就是这么一种机制的实现形式。相比较应用虚拟化而言,Docker和应用虚拟化的区别我认为就是:Docker将应用和操作系统镜像了分离,而应用虚拟化没做到的就是应用和操作系统的分离。因此在应用虚拟化时代我们得小心呵护这台虚拟机,就类似于宠物一样,怕它坏了怕它生病了。

同时在Docker容器时代,如果我们的永久存储放置在本地的服务器磁盘上,那么显然这个问题和虚拟机时代所面临的问题一样,本机的磁盘损坏的情况下我们的永久存储数据丢失。同时,在进行Docker的跨主机迁移的时候,或者说我们在多台主机内启用相同容器的时候,位于A主机上的Docker容器还通过网络去B主机上读取永久性的数据存储吗?或者是每台主机上都复制同步一份Docker的永久性存储?既然大家不管在哪儿都可能需要去读取到永久性的存储空间,那么我将这个空间放置在大家都能够去读取的地方不就可以了吗!因此解决Docker的永久性存储最好的办法就是存储是共享的。因为数据都是存储在共享存储里了,所以容器在集群的另外一个服务器重新启动或者创建一个新的容器的时候,只需要挂载同样的数据卷就可以了。

就如上述所说,虚拟机是宠物得爱护和照顾。容器是奶牛随时可以再换一批。那么在Docker时代,我们的宠物就变成了—Docker的数据以及配置文件,即应用的有状态部分。我们提供容器时,它们必须对应用进行配置和映射,包括配置安全性和网络设置,存储等其它权限或访问应用数据以及其它部分的应用层次。这也意味着在容器时到我们并未远离宠物,而是我们的喜好不一样咯,这一次的宠物是一系列配置文件——说明如何协调应用程序而不是应用程序以基础设施为中心的展现。

那么Volume解决了容器的数据持久化存储问题,但它仅仅是一个数据接口,容器本身并不负责持久化数据的管理。对于这只新的宠物,我们采用新的手段来进行爱护和照顾呢?

问题就到共享存储上面来了。传统的共享存储不管你是什么高端,在应用层级将应用本身(无状态部分)和数据以及配置(有状态部分)相分离,那么必可避免的出现IO延迟。数据具有的惯性和延迟令应用很难远程访问数据,除非数据访问协议允许特殊容迟(latency tolerant)。因此应用和数据天然的优势还是应用的数据在本地。这是一个方面,在另一个方面,传统的存储的数据保护是通过RAID、快照以及数据备份等手段来进行保护。这些手段在数据出现问题时都需要手动进行数据的恢复操作。说了这么多其实还表达的就是传统的存储还是在以养宠物的方式来维护存储。那么我们可不可以以养奶牛的方式来维护存储。

答案是显而易见的。目前最火的技术超融合,其思想就类似于养奶牛的方式维护存储,只不过我们认为养的方式有所不同,超融合是同时养几头相同的奶牛,在其中一头奶牛死亡后还有其他的奶牛可以继续提供牛奶。

现在对于Docker的存储永久性问题,主要依靠外部存储来解决,其中一种解决方案是把容器数据持久保存在可靠的分布式存储中,比如GlusterFS、Ceph等等。分布式存储如GlusterFS、Ceph等主要解决的是数据的管理性问题。比如采用多副本技术以及自恢复技术,将数据自动进行应用本地的迁移、数据损坏的自动修复等等。而恰恰超融合架构中最根本的变化是存储,由原先的集中共享式存储(SAN/NAS)转向软件定义存储,特别是分布式存储(包括Object/Block/File存储),比如NDFS/Ceph。但是这只解决了Docker永久性数据的一个问题,即数据管理问题。

那么Docker的永久性数据还面临另外一个什么问题?

容器里面直接跑的应用,它天生比虚拟机VM更接近应用,最能通过应用感知对存储的深层次需求,从而动态配置不同的存储策略。因此,为容器提供状态持久化的外部存储系统,应该是面向应用的存储系统,它针对不同类型应用的容器提供精细的存储策略,并进行动态智能应用感知。应用感知存储基于性能、可用性、可恢复性、法规遵从要求及其价值来调整存储,以适应存储对应的单个应用。它是一种将存储技术融合到一个平台的智能系统,并能理解不同的应用及它们的使用模式。该系统可以优化数据布局、数据行为和服务质量(QoS)水平,以确保最佳性能。应用感知磁盘按照关键任务次序识别并存储数据。例如,公司日常销售库存系统应用数据都存储在磁盘外部边缘,以确保快速访问。 CRM数据保存到性能中等的磁盘中部,而电子邮件归档可以存储在磁盘高容量的中心部分。

应用感知存储+分布式存储我觉得就可以解决Docker面临的永久性存储问题了,而应用感知存储+分布式存储其实在超融合系统里面都会有涉及,我们可以将以上这两个应用感知存储+分布式存储融合成为超融合存储,实质上超融合存储里面就存在了这样的技术融合。因此我们的解决方案就是容器计算+超融合架构。这也是Docker和超融合结合天生具有的优势。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-239169-1-1.html 上篇帖子: Docker创建支持sshd服务镜像 下篇帖子: Docker创建支持MySQL服务的镜像
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表