一、网络启动概述:什么是网络启动、PXE与iSCSI协议简介、网络启动的应用场景与优势

1.1 什么是网络启动

网络启动,说白了就是让一台没有硬盘、没有U盘、没有任何本地存储设备的机器,通过网络从远程服务器获取操作系统并启动起来。

你想想看,传统装系统得插光盘、插U盘,或者硬盘里得有个引导扇区。但网络启动不一样——网卡通电后,直接向网络发请求,服务器把启动文件推过来,机器就能跑起来了。

我在项目中遇到过不少这样的场景:几十台新服务器到货,没有一台装了系统。挨个插U盘?那得干到第二天。网络启动一配好,半小时全部上线。

核心概念:网络启动 = 客户端无本地存储 + 网络获取引导程序 + 远程加载操作系统。

这里涉及两个关键协议:PXE 和 iSCSI。它们分工不同,但经常配合使用。

1.2 PXE协议简介

PXE(Preboot eXecution Environment)是 Intel 在 1999 年提出的标准。它定义了一套机制:机器在开机后、操作系统加载之前,网卡通过 DHCP 获取 IP,再从 TFTP 服务器下载一个启动文件(比如 pxelinux.0),然后由这个文件去加载内核、initrd,最终启动系统。

我刚开始接触 PXE 时,总觉得它很神秘。后来拆开看,其实就是三步:

  1. DHCP 拿地址——客户端广播请求,DHCP 服务器返回 IP 和下一个服务器的地址。
  2. TFTP 下载引导程序——客户端根据 DHCP 返回的 bootfile 参数,去 TFTP 服务器拉文件。
  3. 引导程序加载内核——pxelinux.0 读取配置文件,找到 vmlinuz 和 initrd.img,启动安装程序或系统。

个人经验:PXE 最常用的场景是批量安装操作系统。我曾在数据中心用 PXE 同时给 200 台服务器装 CentOS,配合 Kickstart 无人值守文件,全程不需要人碰键盘。

但 PXE 有个局限——它只负责启动阶段。系统起来之后,根文件系统还是得从本地硬盘或 NFS 挂载。如果你想彻底不要硬盘,那就得请出 iSCSI。

1.3 iSCSI协议简介

iSCSI(Internet Small Computer System Interface)是把 SCSI 指令封装在 TCP/IP 包里传输的协议。简单说,它让客户端通过网络访问远程的块设备,就像插了一块本地硬盘一样。

你可能会问:这和 NFS 有什么区别?NFS 是文件级别的共享,你看到的是目录和文件;iSCSI 是块级别的,你看到的是一个裸设备,可以分区、格式化、装系统。

对比项 iSCSI NFS
共享层级 块设备(裸盘) 文件系统
客户端视角 本地磁盘 网络挂载点
能否装系统 可以 不可以(需额外 initramfs 支持)
性能开销 较低(直接读写块) 较高(文件系统层转换)
典型场景 无盘工作站、SAN 存储 共享文件、Web 资源

我记得有一次帮客户搭建无盘办公环境,40 台瘦客户机全部通过 iSCSI 启动 Windows。每台机器分配一个独立的 iSCSI LUN,服务器上用 RAID 10 保证性能。效果?用了三年没出过问题。

注意:iSCSI 对网络延迟和带宽敏感。如果交换机有瓶颈,或者网卡不支持巨帧,磁盘 I/O 会明显变慢。我曾经遇到过因为交换机端口协商成百兆,导致 iSCSI 启动慢到怀疑人生的案例。

1.4 PXE + iSCSI 的经典组合

在实际生产环境中,PXE 和 iSCSI 经常搭配使用。流程是这样的:

  • 客户端通过 PXE 启动,从 TFTP 下载 iPXE(增强版 PXE 固件)。
  • iPXE 支持 iSCSI 协议,它可以直接连接 iSCSI 目标,把远程磁盘当作启动盘。
  • 客户端从 iSCSI 磁盘读取引导记录,加载操作系统。

这样做的好处很明显:你既享受了 PXE 的灵活部署,又获得了 iSCSI 的无盘持久化能力。机器重启后,所有数据还在 iSCSI 服务器上。

下面这张图展示了 PXE + iSCSI 的完整启动流程:

PXE + iSCSI 网络启动流程图 PXE + iSCSI 网络启动流程 客户端(无盘) ① DHCP 获取 IP + 启动文件 ② TFTP 下载 iPXE 固件 ③ iPXE 执行 iSCSI 登录 ④ 连接 iSCSI 目标 / 读取磁盘 ⑤ 操作系统启动 说明: 传统 PXE 只支持 TFTP 下载, iPXE 扩展了 iSCSI、HTTP 等 协议,是实现无盘启动的关键。

1.5 网络启动的应用场景

这些年我接触过的网络启动项目,大致可以分为以下几类:

  • 批量系统安装——数据中心新服务器上架,PXE + Kickstart 无人值守安装,一小时搞定上百台。
  • 无盘工作站——学校机房、呼叫中心、医院挂号窗口,所有客户端无硬盘,统一从服务器启动。维护成本极低。
  • 磁盘less服务器——某些高性能计算节点或容器宿主机,完全依赖 iSCSI 或 SAN 存储,本地只留网卡。
  • 应急恢复与救援——系统崩溃了,硬盘还在,但引导坏了。通过网络启动一个最小 Linux 环境,进去修复。
  • 边缘计算与 IoT——树莓派或工控机从网络启动,系统镜像统一管理,升级只需改服务器端。

一个真实案例:某高校计算机实验室,200 台 PC 全部配置为 PXE + iSCSI 无盘启动。学生每次登录都是全新系统,重启后所有个人数据清空。管理员更新软件只需修改服务器上的镜像,客户端下次启动自动生效。用了五年,硬盘故障率为零。

1.6 网络启动的优势

为什么我要花这么多精力研究网络启动?因为它带来的好处是实实在在的:

优势 说明
集中管理 所有客户端的系统镜像、软件配置都在服务器上,改一处生效全部。
降低硬件成本 客户端不需要硬盘,甚至不需要 SSD。故障率最高的部件直接去掉。
快速部署 新机器插上网线,开机即用。不需要逐台安装系统、打补丁。
数据安全 客户端不存数据,所有数据集中存储在服务器端。丢失一台机器,数据不会泄露。
灵活升级 升级操作系统或软件,只需更新服务器镜像。客户端重启后自动生效。

我的建议:如果你管理的机器超过 20 台,或者你对数据安全有较高要求,网络启动绝对值得投入时间去研究。前期配置确实有点复杂,但一旦跑起来,后续的维护工作量会直线下降。

1.7 本章小结

网络启动不是什么黑科技,它只是把传统本地启动的流程搬到了网络上。PXE 负责引导阶段,iSCSI 负责提供持久化存储,两者结合就能实现真正的无盘运行。

嗯,这里要注意一点:网络启动对网络基础设施有要求。交换机不能有环路,DHCP 不能冲突,TFTP 和 iSCSI 的带宽要够。这些细节我们会在后面的章节逐一展开。