前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >libvirt-使用cgroup做资源分割控制

libvirt-使用cgroup做资源分割控制

作者头像
虚拟化云计算
修改2018-04-13 22:31:41
2.3K0
修改2018-04-13 22:31:41
举报
文章被收录于专栏:虚拟化云计算虚拟化云计算

使用libvirt可以把创建的虚拟机放到cgroup划分的资源区中,从而实现所有虚拟机、部分虚拟机、单个虚拟机的资源控制,例如控制虚拟机的cpu使用情况、控制虚拟机在host上内存的使用大小等。

libvirt默认资源划分:

默认的libvirt使用cgroup创建一个名为machine的组:/sys/fs/cgroup/cpuset/machine/。

然后使用libvrit创建的虚拟机都在这个machine组中。

控制或改变machine组中的各个资源就可以控制虚拟机。

例如:

改变/sys/fs/cgroup/memory/machine/memory.limit_in_bytes的大小,就可以改变使用libvirt创建的所有虚拟机的实际占用host的总内存大小。

libvirt指定资源划分:

如果需要把部分虚拟机划分的一个资源组中,单独对这个资源组进行资源的控制,则需要手动创建资源组。

例如建立一个新的资源组名字为openstack.partition,步骤

1.在RESOURCE中建立目录:/sys/fs/cgroup/$RESOURCE/machine/openstack.partition/

(这里RESOURCE的取值为blkio cpu,cpuacct cpuset devices freezer memory net_cls perf_event)

2.根据需求修改/sys/fs/cgroup/$RESOURCE/machine/openstack.partition/中的资源,例如修改/sys/fs/cgroup/memory/machine/openstack.partition/memory.limit_in_bytes的大小。

3.在openstack.partition资源组中创建虚拟机。

libvirt的domain的xml:

代码语言:javascript
复制
<domain type='kvm' id='6'>  ....  <resource>    
<partition>/machine/openstack.partition</partition>  
</resource>  ....</domain>

4.启动虚拟机后,虚拟机的资源就收到了openstack.partition资源组的控制。

可以看到在/sys/fs/cgroup/memory/machine/openstack.partition/目录下多了此虚拟机的文件夹:instance-00000049.libvirt-qemu

注:

1./sys/fs/cgroup/中资源的控制是可以嵌套的,子目录的资源定制可以覆盖掉父目录的资源定制。

2.在上面例子是在ubuntu这种非systemd启动的系统中实践。在centos等systemd启动的系统中配置方式有所区别。

具体可参考libvirt文档:https://libvirt.org/cgroups.html


关注本公众号,了解更多关于云计算虚拟化的知识。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 虚拟化云计算 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档