whole disk和partition 镜像

whole disk镜像部署可以支持windows,但是不能自定义分区(可以通过cloud-init实现),分区表是做镜像的人确定好的,partition image支持按照flavor中规定的root,swap分区来自动进行磁盘分区。
partition image方式部署的机器将kernel和ramdisk都存放在tftp server上,每次启动都需要访问tftp,whole disk部署的服务器启动时不需要访问tftp server。
更新:partition image也支持从本地启动,需要设置特别的元数据,文档在https://docs.openstack.org/project-install-guide/baremetal/draft/advanced.html#local-boot-with-partition-images

coreos deploy image和 ramdisk deploy image

coreos image是社区媒体dailybuild使用的,也是社区推荐的选项,ramdisk image支持更多的元素,比如raid部署(使用agent_ilo)。
spec:https://specs.openstack.org/openstack/ironic-specs/specs/kilo-implemented/whole-disk-image-support.html

raid的进展

hardware raid目前只有ilo和drac的服务器支持raid部署,需要build专门的包含hpe raid管理软件的ramdisk镜像支持,社区正在做software raid的方案,通过agent启动后使用raid-md来做raid,
软raid: https://blueprints.launchpad.net/ironic/+spec/inband-raid-configuration
现有的raid支持: https://docs.openstack.org/developer/ironic/deploy/raid.html

console的实现,原理,scott和shellinabox的区别

通过SOL(serial over lan),即通过网络转发串口的方式来将console暴漏给用户,ironic使用的是ipmitool 的sol activate命令。默认是通过shellinabox展示给user,可以通过网页查看,像nova看虚拟机一样,也可以通过scott,暴露出来的是ip+端口,可以通过telnet访问。

root@ubuntu:~# ipmitool -I lanplus -H 172.16.6.222 -U root -P password sol activate
[SOL Session operational. Use ~? for help]

LTS debian ttyS1

debian login:

裸机和ironic控制器的网络通信

裸机管理有两种情况,一种是通过flat网络通信,裸机和控制器在同一个二层网络里,网络架构比较简单,这里不展开了。

但是更合理的情况是,裸机使用multi tenancy来管理网络,Ironic裸机和控制器在不同的vlan里,裸机部署时需要向控制器tftp服务请求镜像,这就需要在三层打通部署tftp所在的控制器网络和部署网络。如果是通过partion image部署,裸机部署完成后,每次开机时,也要向tftp请求镜像(使用partition image且不从本地启动的情况下),这样就又需要打通tftp到instance vlan。不过如果通过whole disk方式部署裸机就不需要这么麻烦了,whole disk部署的服务器启动时不需要访问tftp server.

通过物理交换机配置比较麻烦,我们可以通过neutron router上打通不同vlan,下面上海二楼的环境为例。

当前的环境如下:

  1. 控制器位于172.16.140.51上,物理网关地址为172.16.140.1
  2. 裸机的部署网络配置为vlan 160,172.16.160.0/24网段,只是在交换机上创建了对应的vlan,没有物理网关
  3. 控制器上部署了tftp服务,dns服务,ironic服务,neutron服务

操作步骤:

  1. 创建neutron vlan140网络,网关声明为172.16.140.100 这里要避开物理网关
  2. 创建neutron vlan160网络,网关声明为172.16.160.1
  3. 创建router,不设置网关,既不激活snat
  4. 在router中添加到vlan140网络的接口,接口ip不输入或者输入网关172.16.140.100
  5. 在router中添加到vlan160网络的接口,接口ip不输入或者输入网关172.16.160.1
  6. 在控制器上添加一条路由router add -net 172.16.160.0/24 gw 172.16.140.100

这样就使得控制器172.16.140.51能和部署网络172.16.160.0/24互通,能够完成部署工作。如果是使用wholedisk的镜像进行部署,那么这样的网络已经足够。如果需要部署partition格式的镜像,还需要按照上面的方式打通instance网络。

OpenStack Ironic 常见问题的更多相关文章

  1. Ironic , Openstack Baremetal Hypervisor

    Ironic , Openstack Baremetal Hypervisor,首发于UnitedStack Inc.. 转自: http://ju.outofmemory.cn/entry/4876 ...

  2. enable multi-tenancy on openstack pike

    Multi-tenancy 是openstack ironic从Ocata版本开始支持的新特性,通过network-generic-switch插件控制交换机,Ironic可以实现在不同租户间机网络隔 ...

  3. Enable multi-tenancy on ironic

    Multi-tenancy 是openstack ironic从Ocata版本开始支持的新特性,通过network-generic-switch插件控制交换机,Ironic可以实现在不同租户间机网络隔 ...

  4. packstack安装ironic

    KVM Centos7.3虚机 安装openstack Pike版本, 其它版本安装方法类似. packstack目前对NetworkManager 还不支持,我们修改下配置: systemctl d ...

  5. Data Center Manager Leveraging OpenStack

    这是去年的一个基于OpenStack的数据中心管理软件的想法. Abstract OpenStack facilates users to provision and manage cloud ser ...

  6. Ironic 裸金属管理服务

    目录 文章目录 目录 Ironic 软件架构设计 资源模型设计 全生命周期的状态机设计 Inspection 裸金属上架自检阶段 Provision 裸金属部署阶段 Clean 裸金属回收阶段 快速体 ...

  7. 简单聊聊 Ironic

    上一篇文章里我简单介绍了一下「裸金属」的概念,提到了 OpenStack 中的核心项目 Ironic,今天简单来聊聊它. Ironic 项目的吉祥物 Bare Metal 所以用 Bear 来做吉祥物 ...

  8. 十件你需要知道的事,关于openstack-trove(翻译)

    开源数据库即服务OpenStack Trove应该知道的10件事情 作者:Ken Rugg,Tesora首席执行官 Ken Rugg是Tesora的创始人,CEO和董事会成员. Ken的大部分职业都是 ...

  9. [资料] Ceph存储系统,关于Redhat和Suse企业版存储知识汇总

    版权声明:很多其它内容,请关注[架构师技术联盟]公众号 https://blog.csdn.net/BtB5e6Nsu1g511Eg5XEg/article/details/81117091 wx_f ...

随机推荐

  1. 一张表搞清楚php is_null、empty、isset的区别

    isset 判断变量是否已存在 empty 判断变量是否为空或为0 is_null 判断变量是否为NULL 变量 empty is_null isset $a="" true fa ...

  2. Java 生产者消费者模式详细分析

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  3. backupMysql.sh

    #!/bin/sh #!/bin/bash function backup() { for i in $* do mysqldump -h$hostip -P$port -u$username -p$ ...

  4. oracle如何操作约束

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

  5. [C#] C# 与 MongoDB 的 CURD

    C# 与 MongoDB 的 CURD static void Main(string[] args) { //建立连接 var client = new MongoClient(); //建立数据库 ...

  6. 个性化推荐调优:重写spark推荐api

    最近用spark的mlib模块中的协同过滤库做个性化推荐.spark里面用的是als算法,本质上是矩阵分解svd降维,把一个M*N的用户商品评分矩阵分解为M*K的userFeature(用户特征矩阵) ...

  7. OpenStreetMap数据清洗(SQL&MonogoDB版本)

    目标:通过网上下载的OpenStreetMap.xml数据格式,将该文件的格式进行统计,清洗,并导出成CSV格式的文件,最后倒入到SQLite中 本案例中所需的包 import csv import ...

  8. 浏览器通过file://访问文件和通过http://访问文件有什么区别

    1.file协议用于访问本地计算机中的文件,就如同在Windows资源管理器中打开文件一样,注意它是针对本地(本机)的,简单来说,file协议是访问你本机的文件资源.http访问本地HTML,是在本地 ...

  9. 利用回调实现Java的异步调用

    异步是指调用发出后,调用者不会立刻得到结果,而是在调用发出后,被调用者通知调用者,或通过回调函数处理这个调用. 回调简单地说就是B中有一个A,这样A在调用B的某个方法时实际上是调用到了自己的方法. 利 ...

  10. NOIP 2017 Day 0. 游记

    刚从曲师大试机回来... 不巧,我抽到了和去年一样的考场,还是那么难用的XP,还是那么难用的键盘. 似乎在考场上有一股奇怪的力量,我本来在自己电脑上打板子打的没那么快,但是试机的那段时间..说出来你们 ...