一,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. 矩阵连乘的相乘次数(ZOJ1094)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=94 解题报告: 1.数据结构: ///矩阵行数和列数 struct N ...

  2. DOM节点(二):操作节点

    appendChild() 用于向childNodes列表的末尾添加一个节点. var returnedNode = someNode.appendChild(newNode); 如果传入的节点已经是 ...

  3. 裁剪插件jCrop

    为大家介绍个插件:jCrop.这个插件被我用在了多个项目中,如通过画热力图来查看某块地方用户的浏览数,放大缩小拖动选框来实时预览所选区域的图片病裁剪,设置头像是选框必须要是正方形,它有着丰富的配置参数 ...

  4. P1036 选数

    题目描述 已知 nn 个整数 x_1,x_2,…,x_nx1​,x2​,…,xn​,以及11个整数kk(k<nk<n).从nn个整数中任选kk个整数相加,可分别得到一系列的和.例如当n=4 ...

  5. frcnn_train_data_param的distort_param实现

    frcnn_train_data_param frcnn_train_data_param { source: "./data/train_list.txt" root_folde ...

  6. (python)剑指Offer:数组中重复的数字

    问题描述 在长度为n的数组中,所有的元素都是0到n-1的范围内. 数组中的某些数字是重复的,但不知道有几个重复的数字,也不知道重复了几次,请找出任意重复的数字. 例如,输入长度为7的数组{2,3,1, ...

  7. mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法

    mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法: 语法: TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2) 说明: 返回日 ...

  8. phpMyAdmin提示找不到mcrypt和mbstring模块

    yum install php-mcryptyum install php-mbstringphp -m 查看是否安装成功 service httpd restart 重启服务器 注: 这里可能会出现 ...

  9. javascript原生API总结

    一.查找: getElementById() 方法返回带有指定 ID 的元素(唯一): getElementsByTagName() 返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组). ...

  10. Objective-c 单例设计模式

    Objective-c 单例设计模式 一.什么是单例模式:(Singleton)      单例模式的意图是是的类的对象成为系统中唯一的实例,提供一个访问点,供客户类共享资源.   二.什么情况下使用 ...