一,Ironic简述

简而言之,OpenStack Ironic就是一个进行裸机部署安装的项目。
    所谓裸机,就是指没有配置操作系统的计算机。从裸机到应用还需要进行以下操作:
  (1)硬盘RAID、分区和格式化;
  (2)安装操作系统、驱动程序;
  (3)安装应用程序。
    Ironic实现的功能,就是可以很方便的对指定的一台或多台裸机,执行以上一系列的操作。例如部署大数据群集需要同时部署多台物理机,就可以使用Ironic来实现。
    Ironic可以实现硬件基础设施资源的快速交付。

二,Why Provision Bare Metal

Here are a few use-cases for bare metal (physical server) provisioning in cloud; there are doubtless many more interesting ones:

(1)High-performance computing clusters
(2)Computing tasks that require access to hardware devices which can’t be virtualized
(3)Database hosting (some databases run poorly in a hypervisor)
(4)Single tenant, dedicated hardware for performance, security, dependability and other regulatory requirements
(5)Or, rapidly deploying a cloud infrastructure

这个是官网的,快速翻译下:

1,高性能计算;

2,无法使用虚拟化的计算任务;

3,数据库主机;

4,单租户、专用硬件、安全性、可靠性以及其它需求;

5,快速部署云基础设施(比如部署一个虚拟化节点)

三,Ironic在OpenStack项目中的使用

OpenStack是一个用于构建公有云或私有云的开源项目,多数时候被用作IaaS(基础设施即服务)。OpenStack的设计初衷是为用户提供基于虚拟化技术的云应用资源高效共享方案,通过池化基础设施资源,为用户动态的提供计算、存储、网络等服务。
    但是一些应用场景下,仅有虚拟化的服务是不够的,这些场景下用户需要直接使用物理服务器资源,以满足特定需求的可行性及高效性,因此,OpenStack需要支持裸机的直接部署功能。此时,裸机也是IaaS 基础设施的池化资源的一部分。

目前,在OpenStack体系结构中,Ironic还是通过Nova来调用的,模拟Nova的一个虚拟化驱动(其它的虚拟化驱动还有KVM、VMware、Xen等),实现基于Ironic的虚拟化驱动。
    预先配置好PXE、IPMI等服务,完成Ironic的相关配置之后,用户就可以使用Nova API来实现一个物理机实例的创建。Nova用于管理虚拟机的生命周期;Ironic则是用于管理物理机的生命周期,它给Nova提供管理物理机的API接口。

对Nova而言,通过Ironic部署物理机,和部署虚拟机的调用流程是一样的,都是通过Nova的接口来执行创建实例,只是底层的nova-scheduler和nova-compute驱动不一样。虚拟机底层驱动采用的是虚拟化技术,而物理机采用的是PXE和IPMI技术。
 
    作为openstack中的一个独立模块,Ironic需要与keystone、nova、neutron、cinder以及swift进行交互,像Nova创建虚拟机一样,需要对应的认证服务、网络服务、块存储服务、对象存储服务等。

四,Ironic和Hypervisor

在OpenStack中直接部署裸机,Ironic需要直接控制物理机进行硬件部署操作,而虚拟机则是通过Hypervisor部署服务。

Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的"元"操作系统,它可以协调访问服务器上的所有物理设备和虚拟机,也叫虚拟机监视器VMM(Virtual Machine Monitor)。

Hypervisor是所有虚拟化技术的核心。非中断地支持多工作负载迁移的能力是Hypervisor的基本功能。
    当服务器启动并执行Hypervisor时,它会给每一台虚拟机分配适量的内存、CPU、网络和磁盘,并加载所有虚拟机的客户操作系统。

主流的Hypervisor有:VMware的ESXi、微软的Hyper-V或者思杰的XenServer。

Ironic可以直接对物理机执行节点管理,进行物理机节点的添加、删除,进行电源管理,部署系统等操作。由于各个厂商物理机的异构性,针对不同的服务器,Ironic提供了插件机制,不同厂商可以对自己的服务器开发Ironic插件,提供对应的driver。用户可根据使用需求,选择合适的driver。

五,Ironic逻辑结构

下图展示了Ironic服务的基本组件,Ironic服务和其他OpenStack服务之间的调用关系,以及创建一个物理机实例的逻辑调用流程。

Ironic服务由以下组件组成:
(1)基于RESTful的API服务。操作者和其它服务通过API与裸金属管理服务器交互。
(2)Conductor服务。Ironic的核心组件,通过API提供功能调用。Conductor服务和API服务通过RPC通信。
(3)各种驱动程序,支持不同的硬件。
(4)消息队列RabbitMQ。

(5)数据库。用于存储信息资源,除此之外,还包括存储Conductor、节点(物理服务器)和drivers等信息。

用户通过Nova API和Nova Scheduler来启动一个裸金属实例,之后请求会通过Ironic API,连接到Ironic Conductor服务,再到对应的Driver,最后完成实例部署,为用户提供成功部署的物理机服务。

参考:

https://docs.openstack.org/ironic/latest/

http://baike.so.com/doc/6838298-7055555.html

http://ironic-book.readthedocs.io/zh_CN/latest/install/install.html

http://blog.csdn.net/changzhi1990/article/details/50234607

http://blog.csdn.net/wanghuiict/article/details/52800018

http://blog.csdn.net/PeterBupt/article/details/78122185

http://blog.csdn.net/wanghuiict/article/details/52757359

http://blog.csdn.net/yingquan_xu/article/details/50162441

OpenStack-Ironic裸金属简介的更多相关文章

  1. 注册 Ironic 裸金属节点并部署裸金属实例

    目录 文章目录 目录 前文列表 注册(Enrollment)裸机 创建裸金属实例的 Flavor 部署裸金属实例 日志分析 问题:Failed to create neutron ports for ...

  2. Ironic 裸金属管理服务

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

  3. 手动集成 Ironic 裸金属管理服务(Rocky)

    目录 文章目录 目录 前文列表 横向扩展裸金属管理服务节点 配置基础设施 安装 Ironic(BareMetal) 安装 Nova Compute(BareMetal) 配置 Neutron 提供 P ...

  4. Ironic 裸金属管理服务的网络模型

    目录 文章目录 目录 Bare-Metal networking in Neutron 核心网络类型 网络拓扑 抽象网络拓扑图 Neutron Implementation Neutron 了解裸金属 ...

  5. Ironic 裸金属实例的部署流程

    目录 文章目录 目录 逻辑架构 部署架构 前提条件 部署流程 iSCSI Deploy UML PXE Deploy Driver Direct Deploy UML IPA Deploy Drive ...

  6. Ironic 裸金属管理服务的底层技术支撑

    目录 文章目录 目录 底层技术支撑 DHCP NBP TFTP IPMI PXE & iPXE Cloud Init Linux 操作系统启动引导过程 底层技术支撑 PXE:预启动执行环境,支 ...

  7. 使用disk-image-builder(DIB)制作Ironic 裸金属镜像

    export DIB_DEV_USER_USERNAME=centos export DIB_DEV_USER_PASSWORD= export DIB_DEV_USER_PWDLESS_SUDO=Y ...

  8. OpenStack Newton:集虚拟化,裸金属和容器部署的统一云平台(转载)

    2016-10-08木屐大数据在线 国庆长假第六天,OpenStack第十四版本Newton(牛顿?)发布,官方介绍中强调这是一个集虚拟化.裸金属和容器技术的一体化平台,可通过一套API来管理裸金属. ...

  9. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之裸金属-20

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria之裸金属-20 欢迎加QQ群:1026880196 进行交流学习 近期我发现网上有人转载或者复制原创博客 ...

随机推荐

  1. IIS7.5如何限制某UserAgent 禁止访问

    参见Blocking Bots Based on User-Agenthttp://moz.com/ugc/blocking-bots-based-on-useragent http://server ...

  2. Jmeter文件目录,功能简介

    1.Jmeter文件目录:1)bin文件: Jmeter启动:bin/jmeter.bat Jmeter日志文件:jmeter.log Linux的启动文件:Jmeter.sh Jmeter系统配置文 ...

  3. Unable to launch the Java Virtual Machine

    看看国内的回答,http://zhidao.baidu.com/question/119993351.html 再看看国外的,http://www.mkyong.com/oracle/oracle-s ...

  4. Java中的逻辑运算符短路效应

    在Java中逻辑运算符&& 和 ||,它们都存在短路效应. 对于a && b,只有当a和b同时为true时,整个表达式才为true(在java中,首先运算表达式a,如果 ...

  5. C#使用ref和out传递数组

    C#使用ref和out传递数组 一.使用ref参数传递数组 数组类型的ref参数必须由调用方明确赋值.因此,接受方不需要明确赋值.接受方数组类型的ref参数能够修改调用方数组类型的结果.可以将接受方的 ...

  6. 使用phpExcel将数据批量导出

    if(isset($_POST['export']) && $_POST['export'] == '导出所选数据') { //此处为多选框已勾选的数据 $export_id=$_PO ...

  7. Redis连接工具类

    Redis连接工具类 导包 测试一下(junit) package com.test; import org.junit.Test; import redis.clients.jedis.Jedis; ...

  8. logrus学习笔记

    logrus源码:https://github.com/sirupsen/logrus 1.logrus.Entry结构 1.1 类型 type Entry struct { Logger *Logg ...

  9. (一)、Python的简介与安装

    Python简介 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承. ...

  10. Python学习之登陆认证

    需求: 让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后退出程序 可以支持多个用户登录 (提示,通过列表存多个账户信息) 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提 ...