共计 2452 个字符,预计需要花费 7 分钟才能阅读完成。
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/… 中下载。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。