一,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. when 让你跳出异步回调噩梦 node.js下promise/A规范的使用

    其实关于promise 的博客,前端时间专门写了一篇关于 promise 规范的文章,promise规范 让 javascript 中的异步调用更加人性化. 简单回忆下: promise/A规范定义的 ...

  2. 正则表达式 /i /g /m /ig /gi

    正则表达式中/i,/g,/ig,/gi,/m的区别和含义   /i (忽略大小写) /g (全文查找出现的所有匹配字符) /m (多行查找) / /ig(全文查找.忽略大小写) 

  3. MCV 的几种表单提交方式

    一,MVC  HtmlHelper方法 Html.BeginForm(actionName,controllerName,method,htmlAttributes){}   其中actionName ...

  4. CUDA三维数组

    http://hpcbbs.it168.com/forum.php?mod=viewthread&tid=1643 根据上面链接的帖子研究了下三维数组,就像他自己说的一样是有问题的,我自己修改 ...

  5. Python测量时间,用time.time还是time.clock

    在计算机领域有多种时间.第一种称作CPU时间或执行时间,用于测量在执行一个程序时CPU所花费的时间.第二种称作挂钟时间,测量执行一个程序时的总时间.挂钟时间也被称作流逝时间或运行时间.与CPU时间相比 ...

  6. 我是如何根据豆瓣api来理解Restful API设计的

    1.什么是REST REST全称是Representational State Transfer,表述状态转移的意思.它是在Roy Fielding博士论文首次提出.REST本身没有创造新的技术.组件 ...

  7. SpringBoot学习14:springboot异常处理方式4(使用SimpleMappingExceptionResolver处理异常)

    修改异常处理方法3中的全局异常处理Controller即可 package bjsxt.exception; import org.springframework.context.annotation ...

  8. H5新增的Web Storage本地存储

    html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage. sessionStorage用于本地存储一个会话(session)中的数据,这些数据只 ...

  9. Map the Debris -freecodecamp算法题目

    Map the Debris 1.要求 返回一个数组,其内容是把原数组中对应元素的平均海拔转换成其对应的轨道周期. 原数组中会包含格式化的对象内容,像这样 {name: 'name', avgAlt: ...

  10. UOJ#179. 线性规划(线性规划)

    描述 提交 自定义测试 这是一道模板题. (这个题现在标程挂了..哪位哥哥愿意提供一下靠谱的标程呀?) 本题中你需要求解一个标准型线性规划: 有 nn 个实数变量 x1,x2,…,xnx1,x2,…, ...