你是否好奇过这么一个问题,大型互联网企业的数据中心成千上万的服务器,操作系统是怎么部署的?
其实无论生活亦或工作,laptop、Windows是我们再熟悉不过的,当你按下开机键,不知道是否有注意到在启动过程中,有一个选项:
Boot From Network
从网络启动,就是实现操作系统自动部署的第一步。
本文通过对iPXE的简单介绍,引申到我们为何选择它,偏了解性质,涉及较多专业术语,3分钟可读完。
P1
PXE and iPXE
预启动执行环境(Preboot eXecution Environment,PXE)也被称为预执行环境,提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。
--- From baidu.com
大部分情况下,我们购买的笔记本电脑都是预装好系统在本地硬盘,但是数据中心的服务器采购回来都是裸设备,通过网卡上的PXE ROM我们可以直接在网络环境中找到Server并读取相应的启动文件到机器的内存中并启动。
iPXE 又是什么呢?其实就是进化的PXE,它不仅包含PXE原本的特性,同时新增了很多新的特性,比如:
支持http协议从web server启动
支持iSCSI协议从SAN存储启动
支持从无线网卡启动
除此之外还有许多其他特性,当然最重要的是,它是一个开源的程序,可以自定义适配修改,既可以选择烧录到网卡ROM,也可以在网卡默认的PXE ROM进行重定向到iPXE。
P2
PXE部署过程
基本的部署过程大致如下:
P3
为何选择iPXE
通过上面的部署图可以看到,实际上即使不使用iPXE,仅使用原生的PXE也是可以实现自动部署的,但是我们增加了返回iPXE启动固件的步骤,原因是:
开源的iPXE允许我们做适配性修改
iPXE 支持http协议的web server启动,我们可以设置统一的http请求,在web server端实现下发不同启动模板的逻辑
适配性强,除了传统X86架构,我行还引进了国产ARM架构,我们只需要编译一个ARM架构的iPXE启动程序,即可快速适配新架构服务器的自动部署
P4
后话
能看到这里的,想必要么工作相关,要么是想尝一尝学习的甜头,很多东西当下看起来对自己没什么用但是留个印象,多个积累,哪天就顿悟了:
喔,这道题我做过,不过如此!