基于PXE的系统部署(一)理论篇

 什么是网络引导

家用电脑、普通服务器,均是由一堆电子芯片、电路板组成。单独想靠这些物理的电子设备完成我们日常的工作,几乎是不可能的。所以,基于特定机器的操作系统、办公、娱乐软件随之而生。为了控制、修改机器中一些芯片的工作模式。主板开发商一般会根据机器的硬件环境,编写基本的输入输出操控环境(BIOS) 。BIOS只具有修改、控制主板支持芯片的工作模式,并不能提供我们日常办公、娱乐的功能。

 我们的操作系统可以存在于硬盘中,也可以在光盘中、U 盘中,更或许在网络中。如何使一上电就运行在 BIOS 环境中的计算机,跳转去执行我们目标介质上的程序代码。这个步骤就叫做引导。

 根据上面举出的列子,我们可以得知,引导的方式可以有以下几种:

a) 硬盘引导;

b) 光盘引导;

c) U 盘引导;

d) 网络引导;

 以上四种是我们最为常见的引导方式,下面我们主要介绍网络引导。

 网络引导有RPL、Bootp 和PXE多种方式

 综合比较,PXE出现时间最晚,功能最完善。

什么是PXE技术

 PXE(preboot execute environment)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,如:Windows95/98/2000/windows2003/windows2008/win7/win8,linux等。

由上图可以看出,pxe集成了tftp客户端和udp协议等。

PS:PXE技术的作用只是在于引导系统,并不是真正的安装。

什么是 SYSLINUX

SYSLINUX是一个功能强大的引导加载程序,而且兼容各种介质。更加确切地说: SYSLINUX是一个小型的 Linux 操作系统,它的目的是简化首次安装 Linux 的时间,并建立修护或其它特殊用途的启动盘。

SYSLINUX 是一个轻量级的启动装载器,所谓轻量级我想就是跟 grub 们相比而言的,尤其是 grub2。SYSLINUX 有很多变种(都是官方的)适用于各种媒质,如 SYSLINUX 用于从微软的文件系统fat 16/32引导, ISOLINUX用于从光盘引导, PXELINUX用于从网络引导, EXTLINUX用于从ext2/3 文件系统引导。

用于PXE引导的主要文件有:pxelinux.0、vesamenu.c32(menu.c32)以及 pxelinux.cfg 目录和该目录下的 default 文件。

Pxelinux.0 文件对整个引导器的作用就如同内核对系统的作用一般,它可以解释 default文件中的每个配置项,并根据配置项做出不同的反应。如等待的时间、启动器背景、启动菜

单、内核引导等等。 Vesamenu.c32 和 menu.c32 是 syslinux 所拥有众多模块中的两个,它们的功能是制定启动器使用什么模式的背景。Vesamenu.c32 图形模式,menu.c32 文本模式。

Linux的安装过程解析(以redhat系列为例)

1、引导过程

 引导,在上文中已经叙述过了,安装过程中的引导即通过pxe技术将计算机通过网卡引导进入安装过程。引导过程中实现了什么呢?下面来详细的说明一下:

 首先,开机之后启动电源,计算机会默认寻找bios(基本输入输出系统),bios会完成计算机硬件的检测,如果在这个过程中报错,那么请检查硬件。Bios在检查完硬件之后会继续向下寻找,寻找引导介质和引导程序。这里有必要说一下,引导程序仅仅是一段代码很小的一段代码,由BIOS加载并启动,然后按照引导程序的指引去引导操作系统的启动。所以引导程序至关重要!

 在一般的硬盘结构中,引导程序是存储在MBR(主引导记录)中的,MBR占用第一块物理磁盘的第1个扇区,共计512字节,其中446个字节为引导程序,其余64个字节为硬盘分区记录,每个主分区的信息占用16个字节,这也就说明了,为什么硬盘在MBR模式下只能分4个主分区了(扩展分区占用一个主分区信息),剩下的2个字节为结束标志。

 除了MBR分区架构,还有另外一种叫做GPT分区架构,有兴趣的请自己google,baidu

 MBR在启动引导程序之后,开始寻找操作系统启动程序,开始加载内核以及硬件驱动,完成文件系统的加载并读取数据等等操作。最终,进入到操作系统。

 以上所述,为硬盘启动,那PXE引导又有什么不同呢?

 首先,是引导介质的不同,然后是引导程序的不同,驱动等。。。

 PXE技术启动流程如下电源开启―》进入bios自检等----》从网络引导----》本机网卡发送广播,在网内寻找dhcp服务器------》网内的dhcp服务器会给该网卡分配一个IP地址,同时也会告诉该机器tftp server 在哪里,和接下来需要下载的执行文件---》系统按照dhcp服务器的指引找到tftp server并下载执行文件到内存中执行---》启动引导过程

 其实,PXE过程到这里已经完全结束了,但是我们做批量部署,不能到此结束,接下来,你需要看安装前的设置

2、安装前配置

 安装前的配置其实就是选择安装哪些软件什么应用等等,这里需要重点跟大家说明一下linux的分区。如果你已经知道linux的分区,那么接下来这段,可以跳过。

 Linux的分区其实很简单,只需要有根分区(/)和swap分区linux系统就可以启动,这个时候有人问了,boot可以不分么?其实linux所有的文件系统起始点都在根(/)所谓一切从根开始,这就是linux。

 但是在真正的生产环境中,不可能是简简单单的就分区了,往往需要在对系统所运行业务的需求进行评估并针对系统所安装软件的需求来设计分区的大小格式等,从而保证良好的稳定性和可扩展性。

 首先,从物理存储说起,为了保证物理层面上稳定性和容错能力,提高传输速率等,RAID技术营运而生,所谓RAID即廉价的冗余磁盘阵列,即用比较小的成本去获得比较好的稳定性、容错能力、传输速度等。具体的使用情况视生成环境而定。关于RAID的一些性能,在此文章中不会赘述,如果有兴趣的朋友,可以去自己查找相关资料,请记住,RAID只能在物理上保证数据的稳定、高容错、高吞吐量等性能,并不能保证数据不发生逻辑错误。

 其次,再说说逻辑上的,在逻辑层面,是看不见摸不到的,但是它也是真真正正存在的,比如文件系统、逻辑卷等技术。关于这些不再赘述。

 接下来咱们来简单的说下分区

/boot 200M

/ 10G

Swap 视硬件水平而定

其他分区,视具体应用而定,具体涉及目录可能有/home /var /usr 等,还有其他自定义目录

 在分区这段,我们来看看swap,主要解决两个问题:1、swap的功能2、swap的大小

1、swap 是linux中的交换分区,是一种特殊的文件系统和设备,相当于windows中的虚拟内存。Swap的功能是暂存内存中的数据,并不参与内存中的程序运行及运算。Swap仅仅是用来暂存数据的哦。

2、swap的大小,有人说swap越大越好?不一定哦,这还得看具体服务和应用了,比如,你的内存在保证系统运行和正常的业务许需求下并不吃紧那么swap的作用就微乎其微了,可以少分。但是有的特定的场景,需要关心swap,比如在安装oracle 数据库的时候,oracle数据库软件需要系统有swap,并且有限定值,那么这个时候swap就是硬性指标,必须有,而且大小需要合适。至于swap的大小,我也没有一个界定的值,只不过是够用就可以,而不是越大越好。Swap分区的界定标准,我参照oracle官方文档给出一下标准  

内存

Swap建议值

大于512M

2倍内存大小

1024M~2048M

1.5倍内存大小

2049M~8192M

与内存大小相同

大于8192M

0.75倍内存大小


以上表中的内容,仅供参考,还是要根据实际需求来定。

好了,分区唠叨完了,接下来我们继续下一步

设置密码,此步略

设置时间,启用utc时间(如果有需要,会在后期写关于utc时间的文章)

网络设置,试具体情况而定。(看这篇文章的人,应该会设置网络)

软件选择(视具体情况而定)

3、安装(安装过程会走进度条,走完进度条,一切就OK了,说明系统已经装好了)

4、安装后配置

安装后配置,就是说在安装完系统,第一次进入系统之前需要配置的东西,比如yum仓库文件等,可以再这个过程中添加,修改一些参数等等~~~

本文出自 “5T” 博客,谢绝转载!

你可能感兴趣的:(部署,pxe)