【OpenStack】在OpenStack使用XenServer资源池浅析
来源:互联网 发布:群智能算法 编辑:程序博客网 时间:2024/04/28 14:21
在OpenStack使用XenServer资源池浅析
本blog欢迎转发,但请保留原作者信息:
新浪微博:@孔令贤HW
Blog地址:http://blog.csdn.net/lynn_kong
内容系本人学习、研究和总结,如有雷同,实属荣幸!
OpenStack中的Xen driver类:nova/virt/xenapi/driver.py中的XenAPIDriver类,该类继承的ComputeDriver是所有driver的基类,是所有虚拟机相关功能集合,而XenAPIDriver实现的方法是ComputeDriver类中方法的子集。
创建资源池并添加主机
使用xenserver资源池(支持虚拟机热迁移)前提:
1、有符合创建资源池的xenserver主机,已部署openstack(nova-compute)
2、有共享存储
步骤:
1、在master节点(注意:此时还没有资源池,master节点是我们预定义的某节点)上配置共享存储为默认SR
2、配置所有的slave节点使用该默认SR,通过配置项“sr_matching_filter=default-sr:true”
3、创建host aggregate。aggregate是上层逻辑概念,不对外公开,是管理员的配置对象。aggregate最初就是为了使用xenserver资源池功能而出现,但现在可以通过给aggregate对象添加key-value对,给nova-scheduler提供一种高级调度机制。host和aggregate是多对多的关系。
nova aggregate-create <name-for-pool> <availability-zone>
上述操作只是操作数据表。
4、为配合xenserver的资源池的使用,需要给aggregate提供两个metadata
nova aggregate-set-metadata <aggregate-id> hypervisor_pool=true
nova aggregate-set-metadata <aggregate-id> operational_state=created
上述操作只是操作数据表。
5、将master节点加入aggregate
nova aggregate-add-host <aggregate-id> <name-of-master-compute>
向主机组添加主机的流程如下:
6、加入其它slave节点
nova aggregate-add-host <aggregate-id> <compute-host-name>
slave主机加入资源池后,在每个主机上的nova-compute虚拟机会被关机,待xenserver主机完成加入池的操作后,再把nova-compute虚拟机启动。
上述流程图中的最后一步理解的不是很清楚,不知道为何需要在master节点执行命令。XenServer官方文档中将一个主机加入资源池,是在预加入xenserver主机上执行(而不是在master节点执行):
xe pool-join master-address=<host1> master-username=<administrators_username> master-password=<password>
资源池创建成功后,就可以根据aggregate_metadata创建flavor,使用flavor创建的虚拟机就可以运行在XenServer资源池内的主机上,同时支持手动迁移和热迁移等高级特性。
XenAPIDriver的初始化
所有xenserver主机加入资源池后,XenAPIDriver的初始化操作如下:
l 首先,初始化一个XenAPISession对象。在该对象中保存了调用XenAPI的调用接口、连接master主机的session、xenserver主机的标识
l 初始化VolumeOps。包含卷相关的操作。
l 初始化VMOps。包含了虚拟机相关的操作。
l 一个ResourcePool对象。该对象中包含了xenserver主机的名称,地址,标识以及调用nova-compute的RPC代理。
注意:第一步中的session就是后续所有操作的基础。即虚拟机和卷相关的操作都会发送到master节点,在资源池范围内进行处理。
本博客欢迎转发,但请保留原作者(@孔令贤HW)信息!内容系本人学习、研究和总结,如有雷同,实属荣幸!
- 【OpenStack】在OpenStack使用XenServer资源池浅析
- openstack资源使用情况查询
- Openstack和XenServer——基础架构
- 【OpenStack】metadata在OpenStack中的使用(一)
- 【OpenStack】metadata在OpenStack中的使用(二)
- openstack周期性任务浅析
- openstack周期性任务浅析
- Openstack 使用
- OpenStack
- OpenStack
- OpenStack
- OpenStack
- OpenStack
- openstack
- OpenStack
- openstack
- OpenStack
- Openstack
- 关于vector的一些实用注意
- “手把手教你学linux驱动开发”OK6410系列之01---模块编程
- Vim实用配置与命令
- 网络仪表铺路 智能家居起航
- “手把手教你学linux驱动开发”OK6410系列之02---虚拟字符设备
- 【OpenStack】在OpenStack使用XenServer资源池浅析
- 退格键变成^H的问题
- 关于mac x lion安装xcode出现错误的问题
- dojo.Deferred 管理回调函数
- 浅谈MFC内存泄露检测与内存访问越界检测机制
- “手把手教你学linux驱动开发”OK6410系列之03---LED字符设备驱动
- 调整eclipse操作界面
- apache配置文件详解
- 简单算法 - 找到链表的中间点和倒数第K个节点(普通方法和快慢指针方法开销一样)