关于iPXE在服务器自动部署的应用_java


你是否好奇过这么一个问题,大型互联网企业的数据中心成千上万的服务器,操作系统是怎么部署的?


其实无论生活亦或工作,laptop、Windows是我们再熟悉不过的,当你按下开机键,不知道是否有注意到在启动过程中,有一个选项:

Boot From Network

从网络启动,就是实现操作系统自动部署的第一步。


本文通过对iPXE的简单介绍,引申到我们为何选择它,偏了解性质,涉及较多专业术语,3分钟可读完。

P1

PXE and iPXE


关于iPXE在服务器自动部署的应用_java_02


预启动执行环境(Preboot eXecution Environment,PXE)也被称为预执行环境,提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统

--- From baidu.com


大部分情况下,我们购买的笔记本电脑都是预装好系统在本地硬盘,但是数据中心的服务器采购回来都是裸设备,通过网卡上的PXE ROM我们可以直接在网络环境中找到Server并读取相应的启动文件到机器的内存中并启动。


iPXE 又是什么呢?其实就是进化的PXE,它不仅包含PXE原本的特性,同时新增了很多新的特性,比如:

  1. 支持http协议从web server启动

  2. 支持iSCSI协议从SAN存储启动

  3. 支持从无线网卡启动

除此之外还有许多其他特性,当然最重要的是,它是一个开源的程序,可以自定义适配修改,既可以选择烧录到网卡ROM,也可以在网卡默认的PXE ROM进行重定向到iPXE。

P2

PXE部署过程


基本的部署过程大致如下:

关于iPXE在服务器自动部署的应用_java_03

P3

为何选择iPXE


通过上面的部署图可以看到,实际上即使不使用iPXE,仅使用原生的PXE也是可以实现自动部署的,但是我们增加了返回iPXE启动固件的步骤,原因是:

  1. 开源的iPXE允许我们做适配性修改

  2. iPXE 支持http协议的web server启动,我们可以设置统一的http请求,在web server端实现下发不同启动模板的逻辑

  3. 适配性强,除了传统X86架构,我行还引进了国产ARM架构,我们只需要编译一个ARM架构的iPXE启动程序,即可快速适配新架构服务器的自动部署

P4

后话



能看到这里的,想必要么工作相关,要么是想尝一尝学习的甜头,很多东西当下看起来对自己没什么用但是留个印象,多个积累,哪天就顿悟了:

喔,这道题我做过,不过如此!