存储极客 | 再不拥抱Docker容器,你的存储就out了!

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:
   “存储极客”栏目再次与大家见面啦!在这里,只有一位大咖名叫“存储”,它的粉丝我们称为“存储极客”!存储极客这是一群存储偏执狂

为存储而生,跟存储死磕

各具独家秘笈

有观点,有碰撞,有干货

从8月18起

做客存储极客栏目

与你分享存储里的那点事儿


以Docker为代表的容器,在人们眼中是平台层面的技术。与属于基础架构层面的虚拟机相比,容器看似与底层存储设备没有什么必然的联系,甚至许多情况下使用本地存储就可以了。那么Docker到底有没有企业存储方面的需求?它与传统存储阵列之间有哪些需要配合的地方呢?

从企业存储生态系统到Docker结合点


Copy-On-Write机制的Docker存储卷,支持LVM、ZFS、BTRFS、AUFS和OverlayFS等几种供给格式。

随着每一轮新技术热潮的来袭,从事技术工作的笔者都会有一种“危机感”,毕竟包括企业级在内的IT行业更新太快,不坚持学习就很容易落伍。

从虚拟化、云计算、大数据,一直到软件定义无不如此,我们谨慎地关注着每个概念中有多少炒作的泡沫?当然也会有真正改变用户IT消费方式的变革,包括与传统基础设施,特别是服务器、存储设备的结合点;还有公共云服务、Server SAN/超融合这样的颠覆。

具体到技术和厂商,比如下图中的VMware、微软(Hyper-V和Azure);新一轮还在发展完善中的开源虚拟化管理/云平台OpenStack;还有本文要讨论的重点——Docker容器。

现在有一种比较激进的思想,未来一切都是软件定义的,传统商业存储阵列将会慢慢失去市场。我们看到了VSAN的出现——至少目前它的应用还是有局限,而不是万能的;我们也看到搭车OpenStack/KVM而火热的Ceph开源分布式存储,但它距离成熟易用还有很大的一段距离。因此在当前,虚拟化/云计算平台一直在加强对传统外部共享存储的支持,容器也不例外。


本文中引用了一些来自戴尔的资料,但它们都具有普适性,我们接下来的话题也会围绕通用技术趋势,而不是专属于某一家具体的产品。

上图列出了存储系统与领先的技术合作伙伴间的管理整合,这些是行业内一线厂商基本都要去做的工作。大致包括以下几个方面:

虚拟化整合:VMware VAAI、VASA、VVOL,微软Hyper-V对应的API支持等,由于本文主题在这里不详细介绍了。云平台整合:OpenStack针对块存储设备支持的Cinder driver等。应用保护整合:生成和管理具备Oracle数据库等应用程序一致性的快照/恢复点,也包括Windows VSS、VMware虚拟机的支持。备份软件整合:通过流行的备份软件对生成快照的数据进行保护,从而确保可恢复性,这里列出了赛门铁克(严格说现在算Veritas)和CommVault。如果是基于戴尔SC存储快照的备份,应该还有自家的NetVault备份软件可以支持。(详见:《DellWorld2015快讯:NetVault Backup11智能备份详解》)应用监控整合:如Foglight,是戴尔收购Quest获得的高级应用监控解决方案。我记得EMC等厂商也提供类似的软件产品。Docker容器整合:针对SAN共享块存储设备的容器卷管理系统。

Flocker拥有“无限可能”的卷管理器


目前我们看到包括EMC、戴尔SC系列在内的几家存储厂商/产品家族,都在与ClusterHQ公司的Flocker合作——一个针对Docker应用开源的容器数据卷管理器,它能够像本地存储那样对基于块的共享存储提供良好支持。


Flocker带来了灵活性和扩展性,它提供的工具能够:●迁移数据●运行容器化状态的服务(例如数据库)●可移动性 - 在集群中的任意容器上使用●管理Docker容器和数据卷●卷跟随容器在主机之间(移动)●由控制服务提供的REST API接口


与Flocker结合之后,存储阵列拥有“无限可能”。Flocker可以支持较高版本的CentOS和Ubuntu Linux服务器(不排除有更新增加);可以使用的数据卷除了共享块存储之外,还有“本地”存储——我们理解后者中也包括被虚拟机视为本地存储的Amazon EBS、OpenStack Ceph RBD和Swift中的镜像挂载,还有RackSpace云设施里类似的实现。

Flocker还可以与Linux上运行的任意数据库一起工作,这里面包括传统关系型的MySQL、PostgreSQL,也有新兴的MongoDB、Redis和RabbitMQ等。上图中并未列出Oracle,应该是因为Oracle已经有并且推荐使用自己的存储管理器ASM,直接控制到磁盘/SSD/LUN一级,Oracle一直不官方支持除自家VM之外的虚拟机环境,我们也没听说过有人在容器中使用。

共享块存储容器迁移、能否做HA?


我们来看一下使用了Flocker之后有何不同。在原生Docker环境,当一台服务器上运行的容器化有状态服务(数据库)迁移至另一台时,其数据卷会留在原地,在新的服务器上启动的容器没有任何数据。也就是说,在迁移之前需要先手动停止容器并复制数据到新的服务器才能使用。

而在使用了Flocker之后,当容器移动时数据卷与它一起移动,您的数据库(容器)能够保持其数据状态。这里大家有没有联想到VMware的vMotion呢?传统并且最实用的vMotion虚拟机迁移是需要vmdk镜像位于共享存储上的,在这里戴尔SC阵列是同样的角色,我想与Flocker合作的其他传统存储厂商也是类似情况。


最后,具体到戴尔的存储是如何与Flocker一同工作呢?如上图,我们看到SC阵列上有一个100TB的LUN 10映射到2台服务器,其中Ubuntu Docker Host 1在上面运行了一个MongoDB容器。当Flocker迁移容器时,会一并发送指令给戴尔存储插件(由存储厂商与Flocker合作开发)迁移卷到Ubuntu Docker Host 2。

这里并不需要真正的数据拷贝,简单理解应该是一个把MongoDB卷从Host 1的容器上解除注册,然后将其注册到Host 2上的过程。

进一步思考,按照从vMotion到vSphere HA的思路,容器是否也可以在两台主机之间做高可用呢?在侦测到Host 1出现故障时,上面提到容器迁移的后半部分——即在备用主机注册共享存储上的数据卷,然后启动容器这一过程,实现起来并不复杂。

 
作者:唐僧
来源:51CTO
相关实践学习
块存储快速入门
块存储是阿里云为云服务器ECS提供的块设备产品。通过体验挂载数据盘、分区格式化数据盘(Linux)、创建云盘快照、重新初始化数据盘、使用快照回滚云盘和卸载数据盘等功能,带您快速入门块存储。
目录
相关文章
|
1月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
针对本地存储和 PVC 这两种容器存储使用方式,我们对 ACK 的容器存储监控功能进行了全新升级。此次更新完善了对集群中不同存储类型的监控能力,不仅对之前已有的监控大盘进行了优化,还针对不同的云存储类型,上线了全新的监控大盘,确保用户能够更好地理解和管理容器业务应用的存储资源。
350 179
|
1月前
|
数据库 Docker 容器
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
251 93
|
15天前
|
网络协议 API Docker
Docker+consul容器服务的更新与发现
通过本文的介绍,我们详细探讨了如何结合Docker和Consul来实现容器服务的更新与发现。通过Consul的服务注册和发现功能,可以高效地管理和监控容器化服务,确保系统的高可用性和可扩展性。希望本文能帮助您在实际项目中更好地应用Docker和Consul,提高系统的可靠性和管理效率。
54 23
|
15天前
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
233 15
|
1月前
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
182 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
1月前
|
存储 监控 对象存储
ACK容器监控存储全面更新:让您的应用运行更稳定、更透明
介绍升级之后的ACK容器监控体系,包括各大盘界面展示和概要介绍。
|
1月前
|
数据库 Docker 容器
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
69 17
|
1月前
|
运维 Java 虚拟化
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
127 12
|
1月前
|
Kubernetes Linux 虚拟化
入门级容器技术解析:Docker和K8s的区别与关系
本文介绍了容器技术的发展历程及其重要组成部分Docker和Kubernetes。从传统物理机到虚拟机,再到容器化,每一步都旨在更高效地利用服务器资源并简化应用部署。容器技术通过隔离环境、减少依赖冲突和提高可移植性,解决了传统部署方式中的诸多问题。Docker作为容器化平台,专注于创建和管理容器;而Kubernetes则是一个强大的容器编排系统,用于自动化部署、扩展和管理容器化应用。两者相辅相成,共同推动了现代云原生应用的快速发展。
248 11
|
存储 测试技术 Docker
Docker Workflow(二):存储问题
本文讲的是Docker Workflow(二):存储问题,【编者的话】作者继续讲述他们的Docker迁移之旅。这次他们的对手是Drupal及其文件存储,且看GlusterFS和Docker是如何配合轻松解决这个原本很棘手的问题。解决了这个问题,我们在开发环境与生产环境一致的目标上又前进了一大步。
1354 0

热门文章

最新文章