一,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. java常用输出技巧,debug

    package control; import javax.swing.JFrame; public class DebugTest { public static void main(String[ ...

  2. 第19章 通讯的基本概念—零死角玩转STM32-F429系列

    第19章     通讯的基本概念 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege ...

  3. 第2章-如何安装KEIL5—零死角玩转STM32-F429系列

    第2章     如何安装KEIL5 集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章内 ...

  4. 前端面试题二(来自前端网http://www.qdfuns.com/notes/23515/fa8b1e788ac39b04108fc33e5b543c4a.html)

    HTML&CSS 1.请描述一下 cookies,sessionStorage 和 localStorage 的区别? cookie是网站为了标示用户身份而储存在用户本地终端(Client S ...

  5. 2、SpringBoot------数据转换

    开发工具:STS 代码下载链接:https://github.com/theIndoorTrain/Springboot/tree/083bb312526653d27ca56abf4f586e097c ...

  6. Python基础之字符串(str)常用操作

    1.字符串常用的方法 len()返回字符串的长度 ##Python3 >>> print(len('ab12我')) 5 ##Python2 >>> print(l ...

  7. 牛客小白月赛1 I あなたの蛙が帰っています 【卡特兰数】

    链接:https://www.nowcoder.com/acm/contest/85/I题目描述 あなたの蛙が帰っています!  蛙蛙完成了一趟旅行,回家啦!但它还是没有去它心中非常想去的几个地方.总共 ...

  8. 手机丢了怎么办?MZ给你来支招

    1致电运营商挂失手机 2致电银行冻结手机网银 3手机绑定支付宝的拨95188挂失 4微信用户登录110.qq.com冻结账号 5修改微博.微信.QQ等密码 6到手机运营商处补手机卡. 一定要记住啊!手 ...

  9. Google Compute Engine VM自动调节

    现象:利用google云搭建VM服务,在搭建实例组有一个"自动调节"功能,可以自动添加/删除MV,当自动添加VM时可能新添加的VM就是一个新的VM,你部署的代码或者环境都没了.现在 ...

  10. 数据库中where与having的区别

    从整体声明角度分析: “where”是一个约束声明,在查询数据库结果返回之前对数据库的查询条件做一个约束,即返回结果之前起作用,“where”后面不能跟聚合函数: “having”是一个过滤声明,在查 ...