Cgroups在云计算中的应用
来源:互联网 发布:魔晶幻想战魂进阶数据 编辑:程序博客网 时间:2024/05/23 19:19
http://bubble.pinklover.net/?p=1483
Cgroups在云计算中的应用
云计算是目前计算机业界热门的方向,Cgroups作为一种有效的资源管理方案在云计算中得到越来越大的应用。下面简要介绍一下Cgroups在云计算中一些应用,欢迎补充。
首先,我们看一下Cgroups的娘家Google(Cgroups最早是Google工程师提出的)。在推出PaaS产品GAE几年后,Google终于推出了自己的IaaS的产品Google Compute Engine,跟Amazon进行全面的竞争。跟Amazon EC2采用Xen虚拟机不同的是,GCE采用的KVM虚拟机。KVM虚拟机是一种将Linux 内核当成Hypervisor的虚拟化技术,一个KVM虚拟机作为一个进程运行在Linux 内核上。由于KVM虚拟机是Linux的一个进程,因此Google采用了Cgroups机制来进行资源管理,控制每个KVM虚拟机可以使用的物理资源,报告CPU占用率,CPU核心,内存等。下面Google IO 2012的图可以说明这一点:
然后我们再来看Redhat的OpenShift。OpenShift是Redhat推出的PaaS产品。PaaS主要服务之一就是为App提供一个运行环境。为了保证服务质量,PaaS厂商都会采取一定的技术手段,保证不同的App之间不会互相影响。因此,App的运行环境一般是隔离,资源受控的。Cgroups作为一种资源管理方案,这里正是用武之地。
下面我们来一下Redhat官方doc上的一段话:The basic PaaS resource container is called a gear, which uses Security-enhanced Linux (SELinux), control groups (cgroups), quotas, and other Linux technologies to limit the amount of memory and disk available to what is called a cartridge。
cartridge是OpenShift为App提供的运行环境,而cartridge本身是出于一个叫gear的资源容器中的。而redhat则是通过selinux、Cgroups和quotas来构建这样一个安全隔离、资源受控的资源容器的。
最后我们再来看vmware的Cloud Foundry。Cloud Foundry是vmware推出的PaaS产品。Cloud Foundry中,DEA是App的运行环境,全称是DropletExecution Agent。一台虚拟机上会运行一个或多个DEA。一个DEA可以启动多个App(又称Droplet)。最初的时候,DEA是没有采用任何隔离手段的,用户的App是原生跑在机器上的。后来他们开发出了Warden,一个程序运行容器。这个容器提供了一个孤立的环境,Droplet只可以获得受限的CPU,内存,磁盘访问权限,网络权限。而Warden在Linux上的实现的底层机制就是Cgroups。利用Cgroups管理App可以使用的物理资源。
总结一下,Cgroups作为一种资源管理手段,可以在云计算的多个应用场景使用。
由于Cgroups是Linux内核提供的一种机制,开销很小,也不要对内核打额外的补丁,使用起来也很方便。对于IaaS厂商来说,需要强隔离,高灵活性(满足用户安装各种OS的需求),基于容器的虚拟化技术不能很好地满足要求,Cgroups却可以提供很好的资源控制,再结合传统系统虚拟化技术也能提供很好的解决方案,就如同GCE一样。
而对于PaaS厂商来说,只要是在一台机器(无论是物理机还是虚拟机)上部署多个App,就需要多个相互隔离,资源受控的运行环境。现在主流的PaaS厂商基本上都是支持在一台机器上部署多个App(Amazon Elastic Beanstalk是一个Instance上跑一个App,不需要考虑这个问题)。如果采用传统的虚拟化技术则有较大的开销,而有些PaaS本身就构建在IaaS提供的虚拟机上(这样以来虚拟化开销更大),因此必须考虑更轻量级的方案。基于容器的虚拟化技术正是这样一种选择,既能提供隔离性,又能进行资源控制,而且虚拟化开销很小。
- Cgroups在云计算中的应用
- Cgroups在云计算中的应用
- Hadoop平台在云计算中的应用
- 云计算在检验医学中的应用
- 云计算在企业中的应用调查
- 云计算在企业中的应用(1)
- 云计算在企业中的应用(2)
- M-Brace ---- F# 在云计算中的应用
- 新浪云计算丛磊:NoSQL在SAE中的应用
- 浅谈云计算技术在企业信息化建设中的应用
- 建筑节能技术在云计算数据中心建设中的应用
- 云计算在科研和教学中的应用
- OSF SDN在云计算网络虚拟化中的应用
- OpenFlow多级流表在云计算网络中的应用
- 青云QingCloud 在不同场景化中的云计算应用
- 云计算技术在虚拟办公系统中的应用
- sum(..) over(..)在计算权重中的应用
- 栈在表达式计算中的应用
- 基于消息的分布式架构
- 四种常用HTML5移动应用框架的比较
- PermissionSet 具有名称的权限集和只读权限集 基于特性的PermissionSetAttribute
- .NET生成静态页面并分页
- 国际:如何识别真正的程序员
- Cgroups在云计算中的应用
- telnet 简单客户端学习
- 推荐一系列优秀的Android开发源码
- 输出北京时间(php默认的是格林威治时间)
- 利用Spring AOP与action注解为系统增加日志功能
- VC——线程同步
- .NET中唯一一个非CAS代码访问权限类:PrincipalPermission
- poj 2540 Hotter Colder(线性规划可行区域)
- 12个有趣的C语言面试题