文档章节

PPT | Docker定义存储-让应用无痛运行

有容云
 有容云
发布于 2016/09/29 11:08
字数 841
阅读 24
收藏 2

编者注:

本文为9月27日晚上8点有容云平台存储架构师张朝潞在腾讯课堂中演讲的PPT,本次课堂为有容云主办的线上直播Docker Live时代●Online Meetup-第三期:Docker定义存储--让应用无痛运行中,文中跟大家讨论了如何为容器选择合适的存储方案,具体详情见以下PPT分享内容。

 

 

Q&A

 

Q:Docker使用外部存储,把外部存储直接给宿主机挂载,容器再使用宿主机挂载的外部存储效率会不会更高?

A:这种方式正是volume plugin的实现方式,容器直接mount宿主机的目录,避免通过容器网络访问外部存储,性能肯定会更高。

 

Q:如何具体定制volume_plugin?不同主机挂同一个lun,这样可以直接给volume 使用  同一业务 只要块存储速度可以那就不会影响业务 包括峰值和低值的应用 只是增加中间处理容器的数量,这样可不可行?

A:为了方便实现volume plugin,docker提供go-plugins-helper包(https://github.com/docker/go-plugins-helpers),提供基础的功能,仅仅需要实现一个接口volume.Driver,并启动http server便可。例子:GlusterFS就是使用这个包,基于glusterfs提供volume。https://github.com/calavera/docker-volume-glusterfs;

不同主机挂同一个lun,再格式化文件系统,每个主机都由自身的文件系统元数据并不会立刻flush到块设备,所以多个主机挂同一个lun并不可行。

 

Q:对于一个容器,每次run都会下载大量的数据,如果多大50GB的话,如何去处理?

A:将大量的数据存储在外部共享存储系统中,通过块或文件的方式挂载给容器使用,就可避免加载大量数据到本地。

 

Q:对于容器存储也好或虚拟机、云主机存储也好,都是大同小异,看你业务用途如何,再根据现有资源来决定是块存储还是分布式文件或是对象存储?

A:确实存储接口并没有什么根本性的改变,容器和虚拟机在存储的角度来看最大的区别就是容器中运行的是应用,而虚拟机运行的是操作系统,使得容器存储更加贴近应用,能够根据具体应用的特性提供更合适的存储服务。

 

Q:假如有一个lun,要对应一个host上的很多的container,我是把所有的container mount 到同一个目录的不同子目录速度快,还是先对这个lun进行分区格式化,然后在不同的container对不同的分区速度快呢?

A:把所有的container mount 到同一个目录的不同子目录,表示多个进程对应1个文件系统;先对这个lun进行分区格式化,然后在不同的container对不同的分区,表示1个进程对1个文件系统;对于非IO密集型的进程,应该是后者更快,每个文件系统都带有cache,所以性能会更高一些。而对于IO密集型的进程,估计性能差别不大。

 

© 著作权归作者所有

有容云
粉丝 2
博文 52
码字总数 38431
作品 0
深圳
私信 提问
“不落地,无容器”系列技术沙龙 北京站

容器技术发展至今,已由最初的多为个体研发人员和互联网公司所用,发展为逐步被企业采用了。然而,企业用例通常和其他情况非常不同。 在生产环境中部署容器化的应用程序,有哪些经验、哪些坑...

RancherLabs
2017/03/16
14
0
“不落地,无容器”系列技术沙龙 北京站

容器技术发展至今,已由最初的多为个体研发人员和互联网公司所用,发展为逐步被企业采用了。然而,企业用例通常和其他情况非常不同。 在生产环境中部署容器化的应用程序,有哪些经验、哪些坑...

RancherLabs
2017/03/16
49
0
SQL Server 2017 正式发布:同时支持 Windows 和 Linux

微软在去年 3 月首次对外宣布了 Linux 版的 SQL Server,并于今年 7 月发布了首个公开 RC 版。前几日在美国奥兰多召开的微软 Ignite 2017 大会上,微软宣布 SQL Server 2017 将于10月2日正式...

局长
2017/10/03
8.5K
43
盆盆的原创Azure Stack文档和视频

自打2015年5月微软Build大会宣布研发Azure Stack,一直到前不久微软Tech Sumit上CEO亲自宣布Azure Stack上市,盆盆一直都是这个产品的最忠实拥趸,也在华来四上发表了大量的原创技术文章。在...

ahpeng
2018/08/21
0
0
Docker之旅:在Docker容器中创建第一个程序

Docker的概念 Docker是开发人员和系统管理员 使用容器开发,部署和运行应用程序的平台。使用Linux容器来部署应用程序称为集装箱化。容器不是新的事物,但它们用于轻松部署应用程序。 一、测试...

王木东
2018/05/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

在docker容器中使用非root用户执行脚本 (

应用容器化之后,在docker容器启动时,默认使用的是root用户执行命令,因此容器中的应用默认都是使用root用户来运行的,存在很高的安全风险,那么如何能够使用非root的业务用户来运行应用呢,...

dragon_tech
9分钟前
2
0
那些能帮助你提升十倍开发效率的优质工具

Java世界中存在着很多工具,从著名的IDE(例如Eclipse,NetBeans和IntelliJ IDEA)到JVM profiling和监视工具(例如JConsole,VisualVM,Eclipse Memory Analyzer等)。 在本文中,我将重点介...

乱世当空
10分钟前
4
0
JavaScript面试题总结系列(二)

2. JavaScript对象 2.1 内置对象 Object是JavaScript中所有对象的父对象; 数据封装类对象:Object、Array、Boolean、Number、String; 其他对象:Function、Arguments、Math、Date、RegExp、...

张森ZS
18分钟前
2
0
Mac部署hadoop3(伪分布式)

环境信息 操作系统:macOS Mojave 10.14.6 JDK:1.8.0_211 (安装位置:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home) hadoop:3.2.1 开通ssh 在"系统偏好设置"->"共享......

程序员欣宸
18分钟前
4
0
windows下disruptor源码由gradle工程转maven工程

github上下载disruptor源码工程,版本为3.3.2。 下载gradle的1.12版本的zip包。注意高版本的gradle会编译报错的,因为在disruptor工程中build.gradle文件中显示的gradle版本为1.12。 配置win...

zjg23
22分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部