Openstack Ironic Bare metal 实操
概述:
纸上得来终觉浅,绝知此事要躬行
Ironic作为Openstack中的一个模块,和Openstack其他模块相互配合工作,用来操作和管理裸机。
虽然官方提供了较全的文档,对我来说,不自己实操一遍终究觉得很多细节无法把握。
如果把Ironic放到庞大的系统去理解,毕竟繁琐,不适合初学者;所幸的是Ironic本身是一个相对独立的模块,有模块自己的操作命令。
如果使用相关命令操作一遍,结合文档理解,清晰了然。
Ironic原理:
根据上图Ironic主要功能:
- 接收外部模块命令
- 控制裸机启停
- 控制裸机下载各阶段镜像
Ironic状态机:
ironic的状态机是有限状态机,不是各状态之间可以随意跳转,而是有严格的关系;理解状态机变迁对Ironic原理, 和操作有很大帮助。对几个重要状态简单说明:
enroll: 裸机刚注册时的状态;
managable:裸机注册后需要检查裸机IPMI带外管理工具(控制启停等操作)是否可用,检查过程叫verifying。IPMI可用,进入manageble状态;
inspecting:managable下一步可以是inspecting;inspecting不是必须要做;inspecting裸机会下载ironic的镜像,简称IPA,进行信息收集,称为收集带内信息;收集完又会回到managable;
available:裸机已进入资源池,随时可分配;managable的裸机要通过cleaning状态,清空裸机上硬盘等资源(provide命令出发cleaning);清空后机器将进入available状态。
active:裸机已部署好客户镜像,可供客户使用;available状态的主机要通过deploying(部署),安装上客户的镜像后,进入active状态;
操作:
- 首先是注册裸机信息:
baremetal node create --driver ipmi \--driver-info deploy_kernel=http://http_ip:http_port/images/ironic-python-agent.kernel \--driver-info deploy_ramdisk=http://http_ip:http_port/images/ironic-python-agent.initramfs \--driver-info ipmi_address=ipmi_ip \--driver-info ipmi_username=ipmi_username \--driver-info ipmi_password=ipmi_password \--property boot_mode=bios \--deploy-interface ramdisk \--boot-interface ipxe \--name node_0
http_ip和http_port:提供镜像下载服务的IP和端口
ironic-python-agent.key/initramfs:是Irnoic自带的官方镜像,配合完成clean(清理),inspect(带内采集)等工作
ipmi_ip/ipmi_username/ipmi_password:裸机上设置的ipmi信息
以上命令成功后会返回一条node的UUID信息,UUID要在后续反复使用。
也可以通过以下命令查看node的UUID信息:
baremetal node list
录入信息后,裸机处于enroll状态
- 创建裸机端口:
baremetal port create --node node_uuid node_mac_address
node_uuid:创建node时生成的uuid
node_mac_address:裸机的网卡mac地址;如果裸机上有多个网卡,就输入和Ironic Pxe服务相连的网卡;(Pxe简单说用于下载镜像,可以参考我的相关文章)
- 进入managable状态:
managable顾名思义是可管理的意思,触发Ironic对裸机IPMI(带外管理,操作重启)功能进行检查,检查通过,进入managable状态;
baremetal node manage node_uuid
查询执行结果
状态verifying正在对ipm功能进行检查
managable表示检查完毕
如果状态无法变迁,多半是IPMI不通,可以用ipmi命令自行检查:
ipmitool -I lanplus -H ipmi_ip -U user -P password power status
- 清理裸机
Ironic状态机章节也提过,裸机在注册后,在提供给客户使用之前,都要做好清理工作,放入资源池;也就是触发裸机的清理工作,进入available状态
baremetal node provide node_uuid
等待裸机下载镜像并清理完成,清理完成后将进入available状态
- 部署裸机
当裸机需要部署镜像开始使用时:
先指定裸机要使用的镜像信息,我以ramdisk为例:
baremetal node set node_uuid \
--instance-info kernel=http://http_ip:http_port/your.vmlinuz \
--instance-info ramdisk=http://http_ip:http_port/your.initrd \
--instance-info image_source=http://http_ip:http_port/your.initrd
ramdisk和image_source:信息相同,这是Ironic版本要求导致
your.vmlinuz your.initrd:分别对应你的内核和内存文件系统,如何获取和制作,参考我的文章《PXE实现ubuntu内存文件系统》
触发部署:
baremetal node deploy node_uuid
通知Ironic开始部署相应裸机;查询等待部署完成;完成后裸机将进入active状态;
- 回收裸机:
baremetal node undeploy node_uuid
这个过程裸机也会经历清理,最后到available状态
- 删除裸机:
把裸机从Ironic管理中删除,只有当裸机处于available或managable状态时才可以操作
baremetal node delete node_uuid
如果需要收集裸机的带内信息可以用node inspect命令;本文示范了一个主要的操作流程;想要进一步了解的同学可以查看官方文档自行操作;
https://docs.openstack.org/ironic/latest/user/states.html
Openstack Ironic Bare metal 实操相关推荐
- 基于OpenStack Ironic与DPU的网易数帆裸金属方案实践
背景 目前,所有号称性能损耗小的VM技术,实际上都会有5-15%甚至更高的损耗.作为替代方案,如Gartner在2015年发布的报告"Market Trends: The Rise of B ...
- OpenStack Ironic 裸金属的配置及使用
环境 当前OpenStack版本为 Rocky 操作系统为 CentOS 7.6 api节点即控制节点 conductor节点即裸金属计算节点 控制节点 node1.node2.node3 计算节点 ...
- OpenStack Ironic实现裸机部署
实习将近一个月了,期间不断努力,终于算是把OpenStack Ironic项目实现裸机部署的过程理解了一遍,并在小规模集群上成功实践.整理一些这段时间工作的内容,就算是一个阶段性的小项目总结了. Ir ...
- openstack ironic standalone 方式部署
基本原理 http://docs.openstack.org/developer/ironic/#introduction Ironic 原来属于nova项目,叫做Nova "bare me ...
- UnrealEngine5实操--基础概念(持续补充)
UnrealEngine5实操--基础概念 Unreal 术语 UE5 上手指南 关卡快速搭建 视口标准按键操作 Editor 视角移动速度调节 Unreal Editor 快速测距 Actor 操作 ...
- 理论+实操:docker入门初体验,申请阿里镜像加速器
文章目录 一:Docker概述 1.1 docker概念: 1.2 docker设计的目标: 1.3 docker的组成: 1.4 docker的使用场景 1.5 docker版本: 二: docke ...
- 「动手学深度学习」在B站火到没谁,加这个免费实操平台,妥妥天花板!
论 AI 圈活菩萨,非李沐老师莫属. 前有编写「动手学深度学习」,成就圈内入门经典,后又在B站免费讲斯坦福 AI 课,一则艰深硬核讲论文的视频播放量36万,不少课题组从导师到见习本科生都在追番. 如此 ...
- 华为昇腾师资培训沙龙·南京场 |华为昇腾 ACL 语言开发实践全程干货来了!看完就实操系列...
自今年疫情以来,AI 技术加速进入了人们的视线,在抗疫过程中发挥了重要作用,产业发展明显提速,我国逐步走出了一条由需求导向引领商业模式创新.市场应用倒逼基础理论和关键技术创新的发展道路,AI 人才的争 ...
- 完整代码+实操!手把手教你操作Faster R-CNN和Mask R-CNN
点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」全日程揭晓,请扫码咨询 ↑↑↑ 机器视觉领域的核心问题之一就是目标检测(Object Detection),它的任务是找出图像当中所有感 ...
最新文章
- 不会编程也能做这么酷炫的视频风格迁移?这个工具冲上Reddit热榜,还能在线试玩...
- Postman Could not get any response
- linux blind函数,Linux网络编程入门
- c++ linux 线程等待与唤醒_C++并发编程 等待与唤醒
- 解析Redis操作五大数据类型常用命令
- 用DeBug的方式,带你掌握HBase文件在Snapshot的各种变化
- swag您的装置不支持_新品发布---微机保护装置
- sql加载配置文件时出错:_SQL复制:基本设置和配置
- Initializer Lists
- linux 索引,Linux学习笔记-索引类命令
- 数据类型选方法【SPSS 073期】
- python数据库模糊查询_python中的mysql数据库like模糊查询
- java毕业答辩ppt_java网上商城系统毕业设计答辩.ppt
- 这些好用的音频、视频素材网站,你值得拥有。
- VMware16安装MacOS Big Sur系统
- Cousera - Deep Learning - 课程笔记 - Week 6
- 联想小新Air15-2021安装elementaryOS5.1(基于ubuntu18.04)
- 【设计模式】装饰者与继承装饰者与代理间的小九九
- 逻辑左移、逻辑右移、算术左移、算术右移、循环左移、循环右移
- 弘辽科技:拼多多想自立门户,正式上线多多钱包