历史问题:

以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的区别的更多相关文章

  1. selenium中driver.close()和driver.quit()的不同点

    driver.quit()与driver.close()的不同:driver.quit(): Quit this driver, closing every associated windows;dr ...

  2. 转载:安装ie driver和chrome driver

    很多同学在使用webdriver的时候总是忘了安装ie driver和chrome driver, 因此在这里简单介绍一下这2个driver的安装方式. IE driver 在新版本的webdrive ...

  3. Could not create the driver from NHibernate.Driver.SQLite20Driver

    使用NHibernate连接Sqlite语句,版本为.net3.5. 升级.net 4.0出现异常,提示”Could not create the driver from NHibernate.Dri ...

  4. vs Qt mysql 打包程序 Driver not loaded Driver not loaded

    vs下开发Qt连接mysql程序,开发过程中操作MySQL没有问题,但打包以后安装在别的电脑上发现竟然无法连接MySQL,打包的时候,所需的libmysql.dll等dll文件拷贝到exe同级目录了, ...

  5. Jenkins的配置从节点中默认没有Launch agent via Java Web Start选项问题

    Jenkins的配置从节点中默认没有Launch agent via Java Web Start,如下图所示,而这种启动方式在Windows上是最方便的. 如何设置才能让出来呢? 1:打开" ...

  6. Jenkins的配置从节点中默认没有Launch agent via Java Web Start,该如何配置使用

    Jenkins的配置从节点中默认没有Launch agent via Java Web Start,如下图所示,而这种启动方式在Windows上是最方便的. 如何设置才能让出来呢? 1:打开" ...

  7. 在Ubuntu上安装Chrome Driver和Firefox Driver

    在Ubuntu上安装Chrome Driver和Firefox Driver 此文章只介绍Chrome Driver(Firefox Driver和该步骤相同) 下载链接:http://chromed ...

  8. driver.get()和driver.navigate().to()到底有什么不同?-----Selenium快速入门(四)

    大家都知道,这两个方法都是跳转到指定的url地址,那么这两个方法有什么不同呢?遇到这种情况,第一反应就是查查官方的文档. 官方文档的说法是:Load a new web page in the cur ...

  9. driver.close()和driver.quit()

    driver.close()关闭当前窗口 driver.quit()退出驱动关闭所有窗口 from selenium import webdriver from time import sleep d ...

随机推荐

  1. 开发步骤Dubbo、spring mvc、springboot、SSM开发步骤

    一.Dubbo开发步骤: 链接:https://pan.baidu.com/s/1pMPO1kf 密码:9zaa 第一: 1.创建consumer工程2.在pom.xml文件下添加配置3.添加appl ...

  2. mavean的依赖传递和排除依赖

    三个mavean项目 A  .B. C 如果B依赖A(A先执行clean package命令) 那么B得pom.xml文件里面就写 <dependency> <groupId> ...

  3. 小白的.Net Core 2.0 ConsoleApp入门(keng)指南(一)

    一.准备工作 准备工作很简单,甚至可以不用Visual Studio,一只.NET CORE和Runtime即可(你有考虑过世界第一IDE的感受吗) 下载:https://www.microsoft. ...

  4. oracle如何操作约束

    自我总结,欢迎怕转! 约束的作用不多说了,直接看怎么用吧. 非空约束: 在创建表时设置非空约束: CREATE TABLE table_name( column_name datatype NOT N ...

  5. Django----模板层

    一.模板层:           python的模板:HTML代码+模板语法      模版包括在使用时会被值替换掉的 变量,和控制模版逻辑的 标签. import datetime t=dateti ...

  6. 将excel文件内容存储到数据库,并可以实时在前端查看(不必生成文件)

    版权声明:本文为博主原创文章,未经博主允许不得转载 本文主要讲前端内容,后端涉及较少,可以认为是使用Java. 首先是excel文件上传,这个较为简单,可以html5的数据接口FormData()进行 ...

  7. Hive metastore表结构设计分析

    今天总结下,Hive metastore的结构设计.什么是metadata呢,对于它的描述,可以理解为数据的数据,主要是描述数据的属性的信息.它是用来支持如存储位置.历史数据.资源查找.文件记录等功能 ...

  8. mysqldump 备份导出数据排除某张表

    就用 --ignore-table=dbname.tablename参数就行,可以忽略多个. /usr/bin/mysqldump -- -uroot -p123456 dbname --ignore ...

  9. intellij idea maven 工程生成可执行的jar

    新建maven 工程 写hello world 修改pom.xml 文件 <build> <pluginManagement> <plugins> <plug ...

  10. Java经典编程题50道之十九

    打印出如下图案(菱形)        *      ***    ******  ********    ******      ***        * public class Example19 ...