Cloud Foundry中warden的架构与实现

        在Cloud Foundry中,当应用开发者的应用由Cloud Foundry的组件DEA来运行时,应用的资源隔离与控制显得尤为重要,而warden的存在很好得解决了这个问题。


        Cloud Foundry中warden项目的首要目的是提供一套简易的接口来管理隔离的环境,这些隔离的环境可以被称为“容器”,他们可以在CPU使用,内存使用,磁盘使用以及设备访问权限方面做相应的限制。


        本文将从四个方面进行探讨分析warden的实现:

  1. warden的功能介绍及框架实现
  2. warden框架的对外接口及实现
  3. warden框架的内部模块及实现
  4. warden的运行示例

warden的功能介绍及框架实现


warden功能介绍

        
        由于Cloud Foundry v1中DEA组件运行应用程序时,自身设计存在一定的缺陷,即同一个DEA上运行的应用不能很好的实现运行过程中资源的隔离与限制,故在Cloud Foundry v2中引入了warden这一模块。

        warden专门接收DEA组件发送的关于应用的管理请求,在处理这部分管理请求时,借助轻量级虚拟化技术,将宿主机操作系统进行虚拟化,在容器内部执行请求的具体内容。warden的具体使用效果为应用程序之间互不感知,资源间完成隔离,各自的资源使用存在上限。假设Cloud Foundry不存在应用程序资源的隔离与限制机制,则在同一个DEA上运行的多个应用程序,在负载增加的时候,会出现竭力竞争资源的情况,当资源消耗殆尽时,大大降低应用程序的可用性与安全性。

        在资源隔离与限制方面,warden主要提供3个维度的用户自定义隔离与限制:内存、磁盘、网络带宽;另外warden还提供以下维度的资源隔离与限制,但仅提供默认值,不提供用户自定义设置:CPU、CPUACCT、Devices。

        同时,warden作为一个虚拟化容器,还提供众多的API命令,供用户完成对warden container的管理。主要的命令如下:copy in、copy out、create、destroy、echo、error 、info、limit_bandwidth、limit_disk、limit_memory、limit_cpu、link 、list、message、net in、net out、ping、run、spawn、stop和stream等 。这些命令的功能介绍可以简单参见: James Bayer对于warden与docker的比较文档

warden框架实现


        在涉及warden框架的具体实现时,需要先申明和warden相关的多个概念:
  • warden:在Cloud Foundry中实现应用资源隔离与控制的框架,其中包括,warden_client、warden_server、warden_protocol和warden container;
  • warden server:warden框架中server端的实现,主要负责接收client端请求,以及请求的处理执行;
  • warden client:warden框架中client端的实现,被Cloud Foundry中被dea_ng组件调用ÿ
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值