【TechWeb报道】7月5日消息,据国外媒体报道,容器技术对数据驱动科学研究有很深的影响,开发人员越来越喜欢这种技术。而容器技术到底是什么呢?今天,我们一起来看看。
要了解容器,我们必需从Linux cgroups和命名空间开始,Linux内核功能可以在容器和主机上运行的其他进程之间创建墙壁。最初由IBM开发的Linux命名空间包装了一套系统资源,并将它们呈现出一个流程,使其看起来像是专用于该进程。
最初由Google开发的Linux cgroup办理一组进程系统资源(如CPU和内存)的隔离和使用。例如,如果您的应用程序占用大量CPU周期和内存,科学计算应用程序则可以将这些应用程序放在cgroup中以限制其CPU和内存使用。
容器技术也叫做Docker,广泛用于科学研究中。加州大学戴维斯分校生物信息学家 C. Titus Brown 介绍说,实验室开发的工具极少能拿来就用,它们通常以必需接受处理和配置的脚本或者源代码的形式存在。大多数软件需要额外的工具和程序库,但用户可能并未安置。即便用户能获得软件并运行它,计算环境的差别也会无意中改变其性能而且影响可重复性。容器通过将运行所需软件要求配置的计算环境的关键要素打包进一个轻量级的虚拟机,减少了这种复杂性。
像FreeBSD Jails和Solaris Zones一样,Linux容器是独立的执行环境,它们拥有独立的CPU、内存块I / O和网络资源,共享主机操作系统的内核。结果像虚拟机那样,,开脱了客户操作系统的所有重量和启动开销。
加州伯克利国家能源研究科学计算机中心计算机专家 Deborah Bard 已帮手很多研究人员在实验室的超级计算机上安置了他们的软件。她回忆说,安置用于望远镜模拟和分析的复杂软件通道之前需要三四天。利用容器则将这一时间缩减到几个小时。在具有Web规模要求的应用程序环境中,与传统办事器虚拟化比拟,容器是一个吸引人的主张。(yoyo)