OpenStack的“神秘组件” 裸金属(Ironic)管理使用


风晓
风晓 2024-01-04 11:00:54 51363
分类专栏: 资讯

OpenStack是目前全球部署最广泛的开源云基础架构,在OpenStack中提供的裸金属服务的项目是Ironic。OpenStack的官网主要介绍裸金属的用途在如下5方面:

(1)高性能计算;
(2)无法虚拟化的硬件设备的计算任务;
(3)数据库主机(一些数据库在hypervisor中运行不佳);
(4)单租户、专用硬件、安全性、可靠性以及其它需求;
(5)快速部署云基础设施。

其本质是在过去的几年中随着如电信工作负载的5G,还有智能化的机器学习和人工智能,甚至是大数据,都在推动人们朝着越来越专业化的设备发展,数据中心和云环境统一建设模式。人们希望通过如OpenStack Ironic对物理硬件上实现自动化和控制,从而减少设备的空闲时间,降低运维人员对硬件安装部署时间。

为什么说OpenStack Ironic是一个神秘的组件:

原因一:Ironic使用了BMC(Baseboard Manager Controller)即基板管理控制器,独立的系统在服务器通过额外的硬件控制器和PXE(Pre-boot Execution Environment)网络启动,直接把事先做好的操作系统磁盘镜像克隆到物理服务器上,免去了使用Kickstart自动安装系统的过程,高效省时;

原因二:Ironic是通过Nova来调用的,是模拟Nova的一个虚拟化驱动,其创建和管理物理服务器资源是和虚拟化实例创建部署流程一样。

揭开OpenStack Ironic神秘的面纱,首先Ironic作为OpenStack一个独立的模块同样可与keystone、nova、neutron、cinder等组件交互,和部署虚拟机的调用流程是一样的,都是通过Nova的接口来执行创建实例,只是底层的nova-scheduler和nova-compute驱动不一样,虚拟机底层驱动采用的是虚拟化技术,而物理机采用的是PXE和IPMI技术。在OpenStack官网的架构时序图如下:


OpenStack Ironic时序图(来源于OpenStack官网)

从时序图中可以看到Ironic组件的流程比较复杂,其主要是考虑与各个组件交互和错误异常的处理,其核心的逻辑流程可以简化为如下:用户通过Nova API和Nova Scheduler来启动一个裸金属实例,之后请求会通过Ironic API,连接到Ironic Conductor服务,由 Ironic Conductor负责和Neutron网络、Glance镜像、Cinder存储等组件交互确定安装服务器的系统、网络规划等,再到对应的Driver,并把信息记录到Ironic DB数据库中,最后完成实例部署,为用户提供成功部署的物理机服务。

OpenStack Ironic部署使用,Ironic部署和Nova等常用的组件部署方式基本一样,主要分为如下流程:

(1)环境准备,如果实验环境最少需要准备两台物理服务器,一台作为 Ironic控制节点也就是我们常说的controller节点,一台作为Ironic Node节点即裸金属的被管理节点,需要注意在Node节点需要具备并开启BMC、PXE功能,如果服务器有RAID需要先创建完成RAID,同时确保网络DHCP能力;

(2)配置Ironic服务,主要是创建数据库,安装和配置Ironic-api和Ironic-conductor服务,配置Nova、Neutron,详细部署可以参考OpenStack Ironic官网部署。Ironic-api和Ironic-conductor服务可以部署在相同或不同主机。用户也可以添加新的Ironic-conductor主机以应对不断增长的bare metal node。不过新增Ironic-conductor服务需要与现有Ironic-conductor保持相同版本。建议每个Ironic-conductor管理100个左右的bare metal裸机节点,以平衡较优的可靠性和性能;

(3)构建或使用现有镜像,部署一个裸机节点需要两组镜像:实施/部署镜像(deploy images)和用户镜像(user images)。Bare Metal Provisioning 使用 deploy images 来准备bare metal(裸机) node,进行clean等操作,为user images的安装做准备。user images 被安装bare metal node上,供用户最终使用。deploy images镜像包括.kernel文件和 .initramfs文件。可以直接下载OpenStack官方发布的镜像(建议初学者优先使用)https://tarballs.opendev.org/openstack/ironic-python-agent/dib/files/中下载。user images镜像可以使用disk-image-builder工具来制作,不过目前此工具仅支持centos/fedora/ubuntu/opensuse等系统。如果想要构建UOS等镜像也可以使用虚拟机软件如vrish,创建好虚拟机后,虚拟机的qcow2磁盘文件可作为user images使用;

(4)设置驱动程序,在正确配置所有服务之后,您应该用Bare Metal服务注册硬件,并确认Compute服务看到可用的硬件。一旦bare metal节点处于available provisioning状态,Compute服务就可以看到。

OpenStack Ironic在部署时可能会遇到各种问题,经过一段时间学习,主要的报错原因分成如下几类:

1)环境部署问题,例如Ironic和Nova服务建议单独部署在不同的节点上;
2)构建或使用现有镜像问题,主要是自己制作的镜像会出现grub.efi找不到问题;
3)配置问题,由于OpenStack官网对于Ironic文档更新会慢与版本更新,导致有些配置有问题,例如报'ServiceTokenAuthWrapper' object has no attribute '_discovery_cache'可修改keystoneauth1/plugin.py。

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=34721
赞同 0
评论 1 条
  • sbni123 2024-08-13 23:49:47

    3)配置问题,由于OpenStack官网对于Ironic文档更新会慢与版本更新,导致有些配置有问题,例如报'ServiceTokenAuthWrapper' object has no attribute '_discovery_cache'可修改keystoneauth1/plugin.py。

    博主你好,请问这个报错,你这边是怎么修改解决的啊,我也遇到了这种情况,能否不吝赐教下哈

    赞同 0 反对 0
    回复

风晓L1
粉丝 1 发表 522 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2966
【软件正版化】软件正版化工作要点  2885
统信UOS试玩黑神话:悟空  2856
信刻光盘安全隔离与信息交换系统  2743
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1277
grub引导程序无法找到指定设备和分区  1244
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  169
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  168
点击报名 | 京东2025校招进校行程预告  164
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  161
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!