热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Cgroups在云计算中的应用

云计算是目前计算机业界热门的方向,Cgroups作为一种有效的资源管理方案在云计算中得到越来越大的应用。下面简要介绍一下Cgroups在云计算中一些应用,欢迎补充。首先,我们看一下Cgrou

云计算是目前计算机业界热门的方向,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提供的虚拟机上(这样以来虚拟化开销更大),因此必须考虑更轻量级的方案。基于容器的虚拟化技术正是这样一种选择,既能提供隔离性,又能进行资源控制,而且虚拟化开销很小。


推荐阅读
  • ShiftLeft:将静态防护与运行时防护结合的持续性安全防护解决方案
    ShiftLeft公司是一家致力于将应用的静态防护和运行时防护与应用开发自动化工作流相结合以提升软件开发生命周期中的安全性的公司。传统的安全防护方式存在误报率高、人工成本高、耗时长等问题,而ShiftLeft提供的持续性安全防护解决方案能够解决这些问题。通过将下一代静态代码分析与应用开发自动化工作流中涉及的安全工具相结合,ShiftLeft帮助企业实现DevSecOps的安全部分,提供高效、准确的安全能力。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文讨论了微软的STL容器类是否线程安全。根据MSDN的回答,STL容器类包括vector、deque、list、queue、stack、priority_queue、valarray、map、hash_map、multimap、hash_multimap、set、hash_set、multiset、hash_multiset、basic_string和bitset。对于单个对象来说,多个线程同时读取是安全的。但如果一个线程正在写入一个对象,那么所有的读写操作都需要进行同步。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文介绍了Windows Vista操作系统中的用户账户保护功能,该功能是为了增强系统的安全性而设计的。通过对Vista测试版的体验,可以看到系统在安全性方面的进步。该功能的引入,为用户的账户安全提供了更好的保障。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • Iamtryingtocreateanarrayofstructinstanceslikethis:我试图创建一个这样的struct实例数组:letinstallers: ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • 本文介绍了Hive常用命令及其用途,包括列出数据表、显示表字段信息、进入数据库、执行select操作、导出数据到csv文件等。同时还涉及了在AndroidManifest.xml中获取meta-data的value值的方法。 ... [详细]
author-avatar
CC小乖2502924425_929
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有