物理服务器的配置和维护是现代IT基础设施的基本组成部分。对于运行大规模网络服务或需要高性能的专用人工智能/机器学习工作负载的组织来说,服务器部署自动化有助于提高运营效率。通过PXE进行网络引导和增强的iPXE引导是在这些场景中常用的方法。
本教程将解释PXE和iPXE技术,包括它们的工作原理以及在裸金属配置中的重要作用。本文将进一步阐述PXE和iPXE之间的区别,同时探讨配置和脚本编写方面的问题。我们将解决安全问题,并提供自动化操作系统部署的逐步设置说明。阅读完本文后,您将了解如何在您的基础设施中实现PXE或iPXE引导。
注意,本教程不仅适用于 DigitalOcean 云平台的 NVIDIA H100/H200 GPU 裸金属服务器。如果你使用了其它的裸金属服务器,都可以参考本教程进行配置。如果你的团队需要 DigitalOcean 的裸金属服务器,可联系 DigitalOcean 中国区独家战略合作伙伴卓普云的团队商谈合作、咨询迁移建议。
准备工作
- 要理解裸金属配置中的PXE引导和iPXE引导操作,需掌握IP地址分配、DHCP及TFTP协议。
- 读者应熟悉BIOS、UEFI引导机制和远程操作系统部署的网络引导协议。
- 了解PXE与iPXE的区别,以及PXE服务器与客户端的交互,对掌握配置过程至关重要。
- 了解裸金属专用服务器、自动化操作系统部署及其在大规模基础设施管理中的作用将大有裨益。
- 熟练掌握iPXE命令、Linux shell及类似Wireshark的网络工具,有助于解决PXE/iPXE配置问题。
什么是网络引导
网络引导(Netwokr Booting)使计算机能够从网络而不是本地存储设备加载其操作系统和必要组件。运营大规模服务器群的公司,尤其是裸金属专用服务器,可以使用网络引导来部署或重新配置操作系统。
什么是PXE
PXE代表预引导执行环境。这种网络引导协议采用客户端-服务器模型,使客户端能够通过网络获取其引导加载程序和附加文件。英特尔在1998年将PXE引入作为行业标准技术。它允许计算机通过网络卡启动引导过程,然后再访问安装操作系统的本地存储设备。这种能力使数据中心和裸金属服务器环境受益,通过允许服务器配置而无需手动部署CD或USB驱动器。

什么是iPXE
iPXE是一种开源网络引导固件解决方案,提供了超出标准PXE功能的实质性改进。它从gPXE发展而来,而gPXE最初是Etherboot的一个分支。iPXE提供了传统PXE实现中缺乏的高级功能。iPXE的GitHub存储库包含其源代码和文档。其高度可配置性允许开发人员将其编译成多种格式,包括EFI(可扩展固件接口)应用程序和PXE映像。他们还可以将其嵌入到网络接口卡(NIC)的只读存储器(ROM)中。
PXE/iPXE引导的核心组件
PXE和iPXE都有一些基本组件。让我们考虑其中的一些组件:
- 动态主机配置协议(DHCP):DHCP服务器分配IP地址并指示在哪里可以找到引导文件。
- 引导加载程序:客户端在引导时加载的初始软件。它可以包括PXE系统的pxelinux.0和iPXE系统的ipxe.lkrn或undionly.kpxe。
- 引导配置文件:这些配置文件指定要加载的内核和initramfs(初始RAM磁盘)以及必要的引导选项和环境变量。
- 操作系统镜像/安装介质:这些是在裸金属硬件上安装操作系统所需的 essential 文件。
- PXE服务器:PXE服务器向客户端提供引导配置文件。
- 简单文件传输协议(TFTP):TFTP是一种 minimal 文件传输协议,专为引导目的而设计。
- 网络引导程序(NBP):客户端软件启动引导过程。
有了这些组件,您可以管理需要 minimal 人工干预的复杂配置过程。因此,它可以让您高效、可靠地维护裸金属专用服务器配置。
PXE的工作原理
PXE引导需要客户端固件、DHCP服务器、TFTP服务器以及其他提供实际操作系统文件的服务器之间的同步协作。以下是典型的PXE引导工作流程的逐步说明:

客户端PXE请求
当配置为网络引导的机器启动时,其网络接口卡(NIC)固件(PXE ROM)将接管。NIC发送一个DHCP发现广播消息,表明其支持PXE引导功能(这是通过在消息中嵌入特定于PXE的DHCP选项来实现的)。客户端请求网络配置服务,并打算启动PXE引导。
DHCP提供 + PXE信息
在接收到请求后,网络DHCP服务器(或代理DHCP服务)回复一个DHCP提供消息,其中包含网络详细信息和分配的IP地址。它还包括PXE引导信息:网络详细信息包括PXE引导服务器名称(通常与TFTP服务器地址匹配)和引导文件标识符(通常称为NBP或网络引导程序)。例如,DHCP回复说:“分配IP地址11.1.1.5,从服务器11.1.1.1获取引导文件pxelinux.0。”
客户端通过TFTP下载NBP
一旦客户端确定了正确的引导文件位置,它将使用简单文件传输协议(TFTP)从引导服务器检索文件。NBP文件可能是一个轻量级引导加载程序,如PXELINUX(来自Syslinux),一个iPXE映像,或作为Windows部署服务(WDS)等。
执行NBP
客户端将NBP下载到内存后,PXE固件将控制权交给NBP。NBP继续加载实际的操作系统或安装程序。如果PXELINUX作为NBP,它将通过TFTP检索一个PXELINUX配置文件,以显示引导菜单或直接开始加载Linux内核,使用initrd映像。
操作系统加载
这个最终阶段的具体情况完全取决于网络引导程序(NBP)的性质。主要目标是将目标操作系统(OS)内核加载到内存中执行,并在需要时加载初始RAM磁盘(initrd)。PXE引导过程通常需要NBP或第二阶段引导加载程序通过TFTP下载操作系统内核和initrd文件。一旦操作系统接管,网络引导过程即视为完成。
iPXE如何增强了PXE
iPXE增强了基本的PXE,提供了一个更强大且更用户友好的解决方案。使用iPXE主要有两种方式:

本机iPXE配置
这涉及将网络接口卡(NIC)的固件或ROM替换为iPXE。相比之下,链式加载iPXE利用原始PXE固件作为第二阶段加载iPXE。一旦iPXE在客户端设备上开始运行,它提供了以下功能:
- 扩展协议支持:除了TFTP,iPXE还支持HTTP、FTP、iSCSI、FCoE等协议。
- 高级脚本编写:PXE的脚本引擎允许用户编写引导脚本,用于执行复杂任务,如条件引导、菜单系统和动态配置文件检索。
- 嵌入式引导脚本:将脚本嵌入iPXE二进制文件中,允许您实现完全自动化的引导过程,无需依赖其他配置文件。
- 安全性和身份验证:结合HTTPS支持、802.1x身份验证和加密检查,允许在高安全环境中进行安全的引导操作。
- 直接从云存储引导:iPXE允许通过各种通信协议从远程资源加载内核或操作系统映像。
- 增强的调试和命令:内置命令(如链式加载、imgfetch、自动引导等) enables 对引导过程的高级控制。
简而言之,当需要高级网络引导选项时,iPXE是比PXE的更好的替代品。
示例:使用iPXE引导自定义Linux环境
您可以使用iPXE创建如下所示的脚本:

最低0.47元/天 解锁文章
1257

被折叠的 条评论
为什么被折叠?



