1. 介绍

在openstack 中提供裸金属服务的项目是ironic, 它可以作为一个单独的服务使用,也可以与openstack 其他服务(例如:keystone, nova, neutron, glance, swift)集成在一起使用。在为裸机正确配置了计算和网络服务后,可以通过计算服务的API配置裸机和虚拟机,但是,由于物理服务器和交换机硬件的不同特性,实例操作集受到限制,例如,不能在裸机实例上执行实时迁移。

2. 为什么需要裸机

以下是在云环境进行裸机(物理服务器)配置的一些用例:

  • 高性能计算集群

  • 需要访问无法虚拟化的硬件设备的计算任务

  • 数据库主机(一些数据库在hypervisor中运行不佳)

  • 单租户,专用硬件以提高性能,安全性,可靠性和其他需求

  • 快速部署云基础架构

3. 裸金属服务的关键技术

  1. PXE, 它是由Intel和Microsoft开发的Wired for Management(WfM)规范的一部分。PXE使系统的BIOS和网络接口卡(NIC)可以代替磁盘从网络引导计算机。引导程序是系统将OS加载到本地内存中以便由处理器执行的过程。这种允许系统通过网络引导的功能简化了管理员的服务器部署和服务器管理。

  2. DHCP, 它是在Internet协议(IP)网络上使用的标准化网络协议,用于动态分配网络配置参数,例如接口和服务的IP地址。BIOS使用PXE,使用DHCP为网络接口获取IP地址,并找到存储网络引导程序(NBP)的服务器。

  3. NBP, 它等效于GRUB(GRand Unified Bootloader) 或LILO (LInux LOader) -传统上用于本地引导的加载器。像硬盘驱动器环境中的引导程序一样,NBP负责将操作系统内核加载到内存中,以便可以通过网络引导操作系统。

  4. TFTP, 它是一种简单的文件传输协议,通常用于在本地环境中的计算机之间自动传输配置文件或启动文件。在PXE环境中,TFTP用于使用来自DHCP服务器的信息通过网络下载NBP。

  5. IPMI,它是系统管理员使用的标准化计算机系统接口,用于计算机系统的带外管理和对其操作的监视。它是一种仅通过与硬件而非操作系统的网络连接来管理可能无响应或断电的系统的方法。

4. 安装支持裸金属的openstack 环境

以CentOS 7为例,使用packstack 安装S版openstack:

yum install centos-release-openstack-stein -y

安装 openstack-packstack:

yum install openstack-packstack -y

使用packstack生成answer文件, 并制定neutron使用openvswitch, os-ironic-install=y选项表示安装ironic相关服务:

packstack --gen-answer-file=answer.txt --os-neutron-ml2-mechanism-drivers=openvswitch --os-neutron-l2-agent=openvswitch --os-ironic-install=y

安装openstack, 使用上面生成的answer文件

packstack --answer-file answer.txt

一般等待半个小时左右即可安装完成,具体视网络情况而定,待安装好之后检查 /etc/nova/nova.conf 里面的 compute_driver, 指定os-ironic-install=y之后这里的值为ironic.IronicDriver. 登录安装好的openstack 管理员界面,在[管理员]-[系统]中会有[裸金属Ironic配置向导]。

5. 安装配置DHCP服务

在openstack裸金属环境中使用DHCP服务,有两种方式进行安装,一种是使用neutron创建网络并开启dhcp服务,另一种是独立安装dhcp服务,独立安装使用一下命令:

yum install dhcp -y

安装好之后修改配置文件:

vim /etc/dhcp/dhcpd.conf

修改 option domain-name-servers 8.8.8.8, 4.4.4.4;以及subnet 配置,然后重启dhcp服务。

# option definitions common to all supported networks...option domain-name "example.org";option domain-name-servers 8.8.8.8, 4.4.4.4;default-lease-time 600;max-lease-time 7200;# Use this to enble / disable dynamic dns updates globally.#ddns-update-style none;# If this DHCP server is the official DHCP server for the local# network, the authoritative directive should be uncommented.#authoritative;# Use this to send dhcp log messages to a different log file (you also# have to hack syslog.conf to complete the redirection).log-facility local7;# No service will be given on this subnet, but declaring it helps the# DHCP server to understand the network topology.# This is a very basic subnet declaration.subnet 192.168.102.0 netmask 255.255.255.0 {  range 192.168.102.110 192.168.102.130;  option domain-name-servers 8.8.8.8;  option routers 192.168.102.100;  option broadcast-address 192.168.102.101;  next-server 192.168.102.100;  filename "pxelinux.0";}

6. 安装TFTP 服务

yum install tftp-server xinetd -y

修改配置文件:

vim /etc/xinetd.d/tftp

将wait 项修改为yes, disable项修改为no, 修改server_args 指定启动文件目录/tftpboot, 指定map-file 文件位置。然后重启tftp服务。

service tftp{  protocol        = udp  port            = 69  socket_type     = dgram  wait            = yes  user            = root  server          = /usr/sbin/in.tftpd  server_args     = -v -v -v -v -v --map-file /tftpboot/map-file /tftpboot  disable         = no  # This is a workaround for Fedora, where TFTP will listen only on  # IPv6 endpoint, if IPv4 flag is not used.  flags           = IPv4}

进入/tftpboot 目录,创建map-file, 并输入一下内容:

re ^(/tftpboot/) /tftpboot/\2re ^/tftpboot/ /tftpboot/re ^(^/) /tftpboot/\1re ^([^/]) /tftpboot/\1

在/tftpboot 目录下创建 pxelinux.cfg 目录:

mkdir pxelinux.cfg

将/usr/share/syslinux 目录下的chain.c32, mboot.c32, memdisk, menu.c32, vesamenu.c32 文件拷贝到/tftpboot 目录下,拷贝pxelinux.0 到/tftpboot目录下。修改 /tftpboot 目录的用户和组权限为ironic:

chown -R ironic:ironic /tftpboot

下载Ironic Python Agent (IPA), U版本对应下载ipa-centos8-* , U版以前的版本下载ipa-centos7-*, 选择对应的initramfs 和kernel 文件下载,在下载完成之后使用openstack image create 命令将镜像上传到glance 服务中: 
下载IPA:

https://tarballs.opendev.org/openstack/ironic-python-agent/dib/files/

上传镜像:

openstack image create --container-format aki --disk-format aki --visibility public ./ipa-centos7-master.kernel deploy-vmlinuzopenstack image create --container-format aki --disk-format aki --visibility public ./ipa-centos7-master.initramfs deploy-initramfs

7. 网络配置

在neutron中配置tenant网络:

# /etc/neutron/plugins/ml2/ml2_conf.ini[ml2]type_drivers=geneve,flat,vlan,vxlantenant_network_types=vlan,flatmechanism_drivers=openvswitch,baremetal[ml2_type_flat]flat_networks=extnet

安装ironic-neutron-agent:

yum install python3-ironic-neutron-agent -y

在neutron中创建flat 类型的网络, 注意物理网络和实际存在的网络名称要对应。

8.配置裸金属节点

可在nova.conf 文件中修改以下选项:

# vim /etc/nova/nova.confcompute_driver=ironic.IronicDriver           # 驱动修改为ironic类型update_resources_interval=10                 # 调整更新资源时间为10秒running_deleted_instance_action=reap         # 删除裸金属实例后更新相应资源running_deleted_instance_poll_interval=10[ironic]auth_url=http://controller:5000project_name=servicesproject_domain_name=Defaultusername=ironicuser_domain_name=Defaultpassword=ironic-user-passwdauth_plugin=password

添加裸金属节点,如果在ironic-ui页面操作,点击注册节点按钮,填写节点名称,资源类,选择驱动类型ipmi, 添加属性,驱动详情,驱动接口信息后,点击注册按钮,对应名称操作及参数详情如下:

openstack baremetal node create --driver ipmi \--name BM100 \--deploy-interface iscsi  \--raid-interface agent  \--driver-info ipmi_username=root  \--driver-info ipmi_password=calvin  \--driver-info ipmi_address=192.168.102.8 \--driver-info ipmi_port=623 \--driver-info deploy_kernel=bd6fa6c5-03f6-4f8f-a0b5-22f7590f52b5 \--driver-info deploy_ramdisk=89b8fd13-70a6-4590-ae99-52b440dccc65 \--driver-info cleaning_network=f9c73aba-9b65-453a-a408-7224f1834f08 \--driver-info provisioning_network=f9c73aba-9b65-453a-a408-7224f1834f08 \--resource-class BAREMETAL_TEST \--property cpus=24 \--property memory_mb=32768  \--property local_gb=1117 \--property cpu_arch=x86_64

参数解释:

--driver 驱动类型--name 裸金属节点名称--deploy-interface 部署接口--raid-interface RAID接口--driver-info 对应驱动信息,包含IPMI驱动认证信息,  例如:ipmi_address,ipmi_username, ipmi_password,ipmi_port,  部署内核deploy_kernel, 虚拟镜像deploy_ramdisk,  清理网络 cleaning_network, 配置网络provisioning_network。--resource-class 资源类,需要和flavor 元数据对应,  例如:对应flavor元数据需要有 resources:CUSTOM_BAREMETAL_TEST--property 指定裸金属节点的配置信息,包含cpu, 内存,磁盘,cpu体系结构

添加完节点之后此时节点状态处于注册状态,需要手动将节点配置状态修改为management 状态,然后再修改为available状态,此时节点才是可被调度的状态,同时在虚拟机管理器页面中会生成一条记录,这条记录与裸金属节点对应。

9.创建裸金属flavor

openstack flavor create --ram 8192 --vcpus 2 --disk 100 baremetal-flavoropenstack flavor set --property resources:CUSTOM_BAREMETAL_TEST=1 baremetal-flavoropenstack flavor set --property resources:VCPU=0 baremetal-flavoropenstack flavor set --property resources:MEMORY_MB=0 baremetal-flavoropenstack flavor set --property resources:DISK_GB=0 baremetal-flavor

10.创建裸金属实例

openstack server create --flavor baremetal-flavor --nic net-id=$net_id --image $image bm-test# 其中net_id 为flat网络的id,image 为用户需要的目标镜像

创建裸金属实例过程中会在裸机上引导安装操作系统,最终裸机节点状态会修改为active, 裸金属Ironic配置向导页面,云主机ID对应刚创建的实例ID。

了解新钛云服

新钛云服正式获批工信部ISP/IDC(含互联网资源协作)牌照

TiOps,支持多云环境安全远程运维,疫情期间免费对外开放,助力远程安全办公!

深耕专业,矗立鳌头,新钛云服获千万Pre-A轮融资

新钛云服,打造最专业的Cloud MSP+,做企业业务和云之间的桥梁

新钛云服一周年,完成两轮融资,服务五十多家客户

上海某仓储物流电子商务公司混合云解决方案

新钛云服出品的部分精品技术干货

国内主流公有云VPC使用对比及总结

万字长文:云架构设计原则|附PDF下载

刚刚,OpenStack 第 19 个版本来了,附28项特性详细解读!

Ceph OSD故障排除|万字经验总结

七个用于Docker和Kubernetes防护的安全工具

运维人的终身成长,从清单管理开始|万字长文!

OpenStack与ZStack深度对比:架构、部署、计算存储与网络、运维监控等

什么是云原生?

IT混合云战略:是什么、为什么,如何构建?

OpenStack裸金属使用总结相关推荐

  1. OpenStack裸金属ironic组件web-console界面定制

    OpenStack裸金属ironic组件web-console界面定制 1.web-console介绍 随着业务不断更新,部分业务堆基础设施的硬件要求也越来越高,普通的云主机会存在极端情况下资源抢占的 ...

  2. OpenStack 裸金属

    一,Ironic简述 转自 :https://blog.csdn.net/huyoufu200920201078/article/details/77961632 简而言之,OpenStack Iro ...

  3. OpenStack ironic裸金属部署(裸金属作为独立服务)

    前言 OpenStack裸金属官网文档有坑,百度支持又很少,笔者经过长时间研究,终于将详细的步骤整理成这篇博客,一定可以部署成功. 第1章 环境 1.1 操作系统环境 cat /etc/redhat- ...

  4. 【重识云原生】计算第2.6节——裸金属方案

    <重识云原生系列>专题索引: 第一章--不谋全局不足以谋一域 第二章计算第1节--计算虚拟化技术总述 第二章计算第2节--主流虚拟化技术之VMare ESXi 第二章计算第3节--主流虚拟 ...

  5. 基于OpenStack Ironic与DPU的网易数帆裸金属方案实践

    背景 目前,所有号称性能损耗小的VM技术,实际上都会有5-15%甚至更高的损耗.作为替代方案,如Gartner在2015年发布的报告"Market Trends: The Rise of B ...

  6. OpenStack Ironic 裸金属的配置及使用

    环境 当前OpenStack版本为 Rocky 操作系统为 CentOS 7.6 api节点即控制节点 conductor节点即裸金属计算节点 控制节点 node1.node2.node3 计算节点 ...

  7. 【干货】裸金属服务Ironic项目介绍

    在其字面意义上更强调了它是一种未安装操作系统或者刻意剥离操作系统的一种概念,更确切的表面他是CPU.RAM.local_gb的计算资源产品集合. 1.Ironic项目和组件介绍 Ironic是Open ...

  8. tftp 服务器 ip_360Stack裸金属服务器部署实践

    女主宣言 裸金属特性是一种将物理设备作为资源提供给租户的云计算服务,租户通过该服务可申请.管理和配置相应的物理设备资源,本文将介绍360Stack裸金属服务器的部署实践. PS:丰富的一线技术.多元化 ...

  9. 360Stack裸金属服务器部署实践

    女主宣言 裸金属特性是一种将物理设备作为资源提供给租户的云计算服务,租户通过该服务可申请.管理和配置相应的物理设备资源,本文将介绍360Stack裸金属服务器的部署实践. PS:丰富的一线技术.多元化 ...

最新文章

  1. Mendeley Desktop 很好用的一个文件管理软件
  2. jquery里面的$(this)和this都什么时候用,有什么区别
  3. greenfoot推箱子游戏_推箱子小游戏V2.0更新
  4. c#_导出table功能
  5. Installing Flex Data Services on JBoss
  6. freecplus框架简介
  7. [笔记] SRAM Controller
  8. spring框架_Spring框架
  9. Icode编程>>>Python编程>>>1级训练场>>>基础训练【1】
  10. win10禁止易升最有效的办法
  11. 数据挖掘算法和实践(三):朴素贝叶斯(mushrooms蘑菇数据集)
  12. APP性能测试——内存测试
  13. 大话卫星导航中的信号处理系列文章——目录
  14. 幼儿园科学室创设特点
  15. 新出炉的 100+ 篇技术热文,在微信热传,别错过哦
  16. 【ChatBot开发笔记】聊天机器人准备工作——初识NLTK库、语料与词汇资源
  17. UI设计的15个设计要点,让你的作品更完美
  18. DC-DC电源芯片的选取和使用要点
  19. 个人计算机专业报告,计算机专业个人实习报告
  20. win10java卸载有残留_win10打开方式仍残留已卸载软件如何解决

热门文章

  1. hd printer lexmark / dazifuyin / dayin / fuyin
  2. perl正则表达式匹配中文
  3. 第一周知识总结--umeng第三份登录
  4. Unity3D 解决检测碰撞某类物体的一种方法
  5. Unity入门常见错误之碰撞检测方法无法触发
  6. c语言编程编写计算器图形,c语言编写的图形计算器.DOC
  7. python用变量的值声明新的变量
  8. oracle 11g下载_oracle11下载
  9. 一个有意思的小故事,希望以后也有这种修养,也能这样厚道
  10. C r e a t e P r o c e s s的b I n h e r i t H a n d l e s参数