Ironic中pxe driver和agent driver的区别
历史问题:
以pxe_ipmitool 和agent_ipmitool为例,看起来似乎前者不使用ironic-python-agent,后者使用,但是实际上两者都使用ironic-python-agent进行部署,现在的命名其实是历史遗留问题。
在kilo版本之前,pxe_ipmitool 使用ramdisk进行部署,ramdisk中只有bash脚本,没有ironic-python-agent,但是后来为了减少开发和维护的复杂度,Kilo之后,pxe_ipmitool 也使用ironic-python-agent部署。
对比:
Ironic部署裸机时,裸机在内存中使用deploy镜像启动一个自带ironic-python-agent的操作系统。如果使用的pxe_ipmitool 驱动,conductor发送rest请求,使得agent将识别到的第一块磁盘,通过iscsi协议映射到conductor节点上。然后conductor从glance下载对应的镜像,convert成raw格式,写入目标磁盘。如果使用的是agent_ipmitool驱动,conductor发送rest请求,agent自行下载镜像写入裸机磁盘上。
对于qcow2 image:
如果使用agent_ipmitool,每次都要下载到内存中,convert成raw格式,再写入磁盘,对目的节点内存要求更大,如果是disk size 10G的大镜像,那么就要求内存10G以上如果使用pxe_ipmitool , 每次格式转换在conductor节点上做,缓存到conductor节点上,传输的时候通过dd写入网络,对目的机器内存无要求,但是ironic节点压力大,并且需要额外的空间存放ironic缓存的镜像。
对于raw image:
agent_ipmitool支持将raw格式的镜像直接写入磁盘,不需要先cache到内存中,所以对内存无额外要求。这种情况下,唯一的问题是大规模部署时,每个节点都要向glance去下载一次镜像,glance的压力会更大,但是如果是pxe_ipmi driver,对ironic conductor的压力也会更大,所以也不能算是一个缺点。
结论:
agent_ipmitool + raw 镜像看起来是最完美的解决方案,但是可惜的是agent_ipmitool依赖于swift或者ceph radosgw,如果是rbd方式或者filesystem方式存放镜像,agent driver不支持。问了下社区相关人员,他们没有解决这个问题的打算。或者可以通过二次开发解决来这个问题。
Ironic中pxe driver和agent driver的区别的更多相关文章
- selenium中driver.close()和driver.quit()的不同点
driver.quit()与driver.close()的不同:driver.quit(): Quit this driver, closing every associated windows;dr ...
- 转载:安装ie driver和chrome driver
很多同学在使用webdriver的时候总是忘了安装ie driver和chrome driver, 因此在这里简单介绍一下这2个driver的安装方式. IE driver 在新版本的webdrive ...
- Could not create the driver from NHibernate.Driver.SQLite20Driver
使用NHibernate连接Sqlite语句,版本为.net3.5. 升级.net 4.0出现异常,提示”Could not create the driver from NHibernate.Dri ...
- vs Qt mysql 打包程序 Driver not loaded Driver not loaded
vs下开发Qt连接mysql程序,开发过程中操作MySQL没有问题,但打包以后安装在别的电脑上发现竟然无法连接MySQL,打包的时候,所需的libmysql.dll等dll文件拷贝到exe同级目录了, ...
- Jenkins的配置从节点中默认没有Launch agent via Java Web Start选项问题
Jenkins的配置从节点中默认没有Launch agent via Java Web Start,如下图所示,而这种启动方式在Windows上是最方便的. 如何设置才能让出来呢? 1:打开" ...
- Jenkins的配置从节点中默认没有Launch agent via Java Web Start,该如何配置使用
Jenkins的配置从节点中默认没有Launch agent via Java Web Start,如下图所示,而这种启动方式在Windows上是最方便的. 如何设置才能让出来呢? 1:打开" ...
- 在Ubuntu上安装Chrome Driver和Firefox Driver
在Ubuntu上安装Chrome Driver和Firefox Driver 此文章只介绍Chrome Driver(Firefox Driver和该步骤相同) 下载链接:http://chromed ...
- driver.get()和driver.navigate().to()到底有什么不同?-----Selenium快速入门(四)
大家都知道,这两个方法都是跳转到指定的url地址,那么这两个方法有什么不同呢?遇到这种情况,第一反应就是查查官方的文档. 官方文档的说法是:Load a new web page in the cur ...
- driver.close()和driver.quit()
driver.close()关闭当前窗口 driver.quit()退出驱动关闭所有窗口 from selenium import webdriver from time import sleep d ...
随机推荐
- android studio获取sha1签名
转载 :http://blog.csdn.net/kezhongke/article/details/42678077
- MySQL刷新事务日志级别设置
标签(linux): mysql 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 # if set to 1 , InnoDB will flush (fsync ...
- SpringMVC空字符串转为null
空字符串转为null 现在我遇到这样一个需求,那就是我想要吧前端传过来的值变为空,因为所谓前端的校验,其实都不是校验,如果前端传给后台一个表单,可是表单未填入值,我们后台进行判断的时候 既需要判断nu ...
- 开发快速定位需求(Coding之前的工作)
自我总结,求高人指点,欢迎拍砖! 目的:快速定位feature需求,避免浪费不必要的时间 需求目的:它要用来解决什么问题?(客户需求,bug fixed,学习新技术) 需求对象:它针对的对象是谁?(明 ...
- JAVA关键字Volatile的特性
一.简述: 关键字Volatile是JAVA虚拟机提供的最轻量级的同步机制,但是它并不容易完全被正确.完整的理解,以致于许多程序员在遇到需要处理多线程数据竞争的时候一律使用synchronized来进 ...
- React原理探索- @providesModule 模块系统
@providesModule是什么 react抛出组件化的概念后,对于开发者而言,为了提高代码的可读性与结构性,通过文件目录结构去阐述组件嵌套关系无疑是一个很好的办法,但是目录级别的加深,同时让re ...
- CenOS 上安装 Redis 服务器
1.构建 Redis 因为 Redis 官方没提供 RPM 安装包,所以需要编译源代码,则需要安装 GCC & MAKE. 终端输入: yum install gcc make 从官网下载 t ...
- BZOJ 1022: [SHOI2008]小约翰的游戏John [SJ定理]
传送门 $anti-nim$游戏,$SJ$定理裸题 规定所有单一游戏$sg=0$结束 先手必胜: $1.\ sg \neq 0,\ 某个单一游戏sg >1$ $2.\ sg = 0,\ 没有单一 ...
- Jquery里面种的 JSON.parse() 与JSON.stringify() 的区别
JSON.parse()与JSON.stringify()的区别 JSON.parse()[从一个字符串中解析出json对象] Demo: //定义一个字符串 var data='{"N ...
- zzcms8.2#任意用户密码重置#del.php时间盲注#复现
00x0 引言 早上起来,发现seebug更新了一批新的洞, 发现zzcms8.2这个洞好多人在挖,于是我就默默的踏上了复现之路(要不是点进去要买详情,我何必这么折腾~) 环境:zzcms8.2(产品 ...