openstack kilo新特性解读和分析(1) -凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 3234637
  • 博文数量: 258
  • 博客积分: 9440
  • 博客等级: 少将
  • 技术积分: 6998
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-03 10:28
个人简介

-- linux爱好者,业余时间热衷于分析linux内核源码 -- 目前主要研究云计算和虚拟化相关的技术,主要包括libvirt/qemu,openstack,opennebula架构和源码分析。 -- 第五届云计算大会演讲嘉宾 微博:@marshal-liu

文章分类

全部博文(258)

文章存档

2016年(1)

2015年(4)

2014年(16)

2013年(22)

2012年(41)

2011年(59)

2010年(40)

2009年(75)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: 云计算

2015-05-12 18:26:54

1. hyper-v支持增强
支持第二代虚拟机(通过提供新的固件),通过定义在openstack中的属性(hw_machine_type={hyper-gen1,hyper-gen2})来决定是创建一代虚拟机,还是二代虚拟机,默认为一代,另外,虚拟机的格式要求是vhdx,而且二代虚拟机不再允许挂在ide设备,只能挂在scsi设备。
  目前只有以下操作系统支持创建二代虚拟机:
  (1)windows server 2012/windows 8 and above
  (2)newer linux kernel
  二代虚拟机的主要优势:  a) 支持安全引导   b) 减少启动时间  c) 支持跟分区的在线扩展(live resize) d) 使用uefi代替bios
  另外一个比较游泳的特性就是:下电hyper-v的主机的时候,先关闭运行在上面的虚拟机的功能。

  2. nfv相关功能的增强(目前全部在nova实现)
    openstack社区专门成立了telcoworkinggroup用来负责nfv相关功能的定义,需求提出,代码review和patch,开发进度跟踪等等职责。

2.1 numa感知的调度(numa based scheduling)
    主要用来解决带有pci 设备绑定的虚拟机尽量从同一个numa node分配cpu和内存资源,来提高虚拟机的性能。典型的应用场景就是nfv,比如pci网卡passthrough等
2.2 绑定guest vcpu到物理机的cpu(spinning vcpu to host pcpu)
   这个功能通过flavor的补充属性来实现的,比如给flavor增加如下属性:
   hw:cpu_policy=shared|dedicated (shared为默认策略 )
   hw:cpu_threads_policy=avoid|seperated|isolate|prefer
   默认情况下,所有的vcpu都被虚拟成1core and 1 thread的socket,但是如果有了cpu绑定,物理cpu的拓扑将会影响guest cpu的拓扑,比如一个2 vcpu的guest被绑定到一个2个thread的core上,那么这个guest cpu的拓扑就是1 socket,1 core和2 threads。
   cpu_threads_policy将会影响的guest的调度,调度的时候会考虑到物理cpu的thread,比如:
   (1)avoid: 调度器将不会将guest调度到带有超线程特性的物理机上
   (2)separate: 如果物理机的core支持超线程,那么同一guest的vcpu将会被分到不同的core上
   (3)isolate: 如果物理机的core支持超线程,那么同一guest的vcpu将会被分到不同的core上,并且其他guest的vcpu不再允许调度到当前的core上
   (4)prefer: 如果物理机支持超线程,那么同一个guest的vcpu将尽可能的被调度到相同的core上。
   这个功能会引入很多应用场景,管理员希望对host根据不同的特性进行分组,比如dedicated cpu的一组,shared cpu的host一组; 再比如dedicated ram的host一组,share ram的host一组,所以还需要借助host aggregate的功能。(dedicated ram相关具体参见:)

3. 大页内存支持(large page support)
    这个功能主要是为了提高guest os的性能,通过给guest os分配large page的内存来实现,原理是:内存页越大,那么tlb hit rate将会越高。
    同时由于large page本身独占的特性,即large page不会被swap out,那么如果某个large page被分配给了某个进程,那么这个进程将独占这个large page映射的物理内存,即不会再给其他进程使用,也不会被os使用。基于这些特性,所以large page support的功能非常适合性能要求比较高的场景,在openstack环境里,就非nfv莫属了。
    在x86体系结构下,page size默认为4k,large page size可以是2m或者1g,一般采用2m。
    通过flavor的属性:hw:mem_page_size=large|small|any|2mb|1gb,来决定guest os是否使用large page,以及large page size。
    这里需要注意,small默认的page size,就是4k,any对于libvirt来说,首先会使用large page,如果不支持,就使用small page.
    ------------------------------------------------------------
   email: ustc.dylan@gmail.com
   微博:@marshal-liu



阅读(8261) | 评论(2) | 转发(2) |
给主人留下些什么吧!~~

rzxtest0062015-05-15 20:40:41

good.很好

|

2015-05-14 20:49:31

heihei

|
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图