OpenStack-Ironic裸金属简介
一,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裸金属简介的更多相关文章
- 注册 Ironic 裸金属节点并部署裸金属实例
目录 文章目录 目录 前文列表 注册(Enrollment)裸机 创建裸金属实例的 Flavor 部署裸金属实例 日志分析 问题:Failed to create neutron ports for ...
- Ironic 裸金属管理服务
目录 文章目录 目录 Ironic 软件架构设计 资源模型设计 全生命周期的状态机设计 Inspection 裸金属上架自检阶段 Provision 裸金属部署阶段 Clean 裸金属回收阶段 快速体 ...
- 手动集成 Ironic 裸金属管理服务(Rocky)
目录 文章目录 目录 前文列表 横向扩展裸金属管理服务节点 配置基础设施 安装 Ironic(BareMetal) 安装 Nova Compute(BareMetal) 配置 Neutron 提供 P ...
- Ironic 裸金属管理服务的网络模型
目录 文章目录 目录 Bare-Metal networking in Neutron 核心网络类型 网络拓扑 抽象网络拓扑图 Neutron Implementation Neutron 了解裸金属 ...
- Ironic 裸金属实例的部署流程
目录 文章目录 目录 逻辑架构 部署架构 前提条件 部署流程 iSCSI Deploy UML PXE Deploy Driver Direct Deploy UML IPA Deploy Drive ...
- Ironic 裸金属管理服务的底层技术支撑
目录 文章目录 目录 底层技术支撑 DHCP NBP TFTP IPMI PXE & iPXE Cloud Init Linux 操作系统启动引导过程 底层技术支撑 PXE:预启动执行环境,支 ...
- 使用disk-image-builder(DIB)制作Ironic 裸金属镜像
export DIB_DEV_USER_USERNAME=centos export DIB_DEV_USER_PASSWORD= export DIB_DEV_USER_PWDLESS_SUDO=Y ...
- OpenStack Newton:集虚拟化,裸金属和容器部署的统一云平台(转载)
2016-10-08木屐大数据在线 国庆长假第六天,OpenStack第十四版本Newton(牛顿?)发布,官方介绍中强调这是一个集虚拟化.裸金属和容器技术的一体化平台,可通过一套API来管理裸金属. ...
- 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之裸金属-20
自动化kolla-ansible部署ubuntu20.04+openstack-victoria之裸金属-20 欢迎加QQ群:1026880196 进行交流学习 近期我发现网上有人转载或者复制原创博客 ...
随机推荐
- 2018.7.23 oracle中的CLOB数据类型
Oarcle中的LOB类型 1.在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这 ...
- JSONObject数组排序工具类
依赖jar <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</a ...
- Spring boot 集成Spring Security
依赖jar <dependency> <groupId>org.springframework.cloud</groupId> <artifactId> ...
- npm包发布过程
在上一章节中,我封装了一个基于react的树状组件,后来想把它发布到npm上,下面主要介绍一下发布过程中遇到的问题: 1.去注册npm账号,注册地址(https://www.npmjs.com), 再 ...
- 你不得不掌握的thinkphp5
thinkphp官网在去年的时候发布了tp的颠覆版本thinkphp5,tp5确实比之前的版本好用了很多,增加了很多的一些特性,它采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖, ...
- 【洛谷P1996】约瑟夫问题
约瑟夫问题 链表模拟大概是正解 #include<iostream> using namespace std; struct node{ //单链表 int d; node *next; ...
- Windows/Linux下查看系统CPU使用最高的线程
参考:https://blog.csdn.net/qq_27818157/article/details/78688580 jstack -l 31372 > c:/31372.stack
- ES6 extends继承及super使用读书笔记
extends 继承 extends 实现子类的继承 super() 表示父类的构造函数, 子类必须在 constructor中调用父类的方法,负责会报错. 子类的 this 是父类构造出来的, 再在 ...
- 腾讯首页分辨手机端与pc端代码
腾讯首页分辨手机端与pc端代码 自己在做网页的时候在腾讯网首页借鉴的代码. 代码: <!-- 移动适配JS脚本 --> <script type="text/javascr ...
- MyFirstDay_答案_1.**猫(自己整理)
1>***猫: python基础类: 字符串反转的常用处理方式: # 方法一:使用字符串切片 s = "hello python" result = s[::-1] prin ...