转自http://book.51cto.com/art/201207/347187.htm

《云计算:应用开发实践》第2章IaaS 技术介绍,本章尽量覆盖现有的IaaS 相关技术, 对于某些技术, 比如虚拟化, 介绍了相关的几个虚拟化产品,读者可以根据自己的实际情况挑选自己感兴趣的内容进行阅读与实践。本节为大家介绍PXE 系统的组成及配置。

……于维护大量虚拟化操作系统的人员来说, 配置少则几十台, 多则上千台的服务器。单凭人力也许能完成, 但显然工作量不会小。如何才能高效便捷的安装主机并配置所需要的基础操作系统以及虚拟化软件成为迫切需要解决的问题。

当然,一个是可以写脚本;另一方面,利用已有技术,如这里的PXE

PXE 简介

PXE (Preboot Execute Environment) 是Intel 公司开发的“系统预启动执行环境冶。简言之PXE 系统是一种可以帮用户在仅有物理网络连接的条件下就可以安装操作系统的工具,读者会不会觉得这与使用普通光盘安装有些不一样? 在开始介绍PXE 的相关知识之前, 假设我们有一台服务器, 一台准备装操作系统的计算机, 并且服务器与计算机之间用网线连接在了一起。如果我们通过网络将服务器上的光盘镜像安装到计算机上, 该怎么做呢? 带着这个问题, 我们来看一下PXE 的工作步骤(见图2-34)。

1) 设置计算机以PXE 模式启动, 具体设置在BIOS 中。

2) 计算机要求网络系统动态分配IP 地址给它(通过DHCP)。

 
(点击查看大图)图2-34 PXE 工作流程

3) DHCP 把IP 地址分配给计算机。

4) 计算机再次请求DHCP 要求得到启动方式。

5) PXE 启动服务器将启动程序包名及下载启动程序包的地址TFTP (trivial file transferprotocol) 服务器发送给计算机。

6) 计算机下载启动程序包NBP (Network Bootstrap Program)。

7) 计算机使用NBP 引导系统, 并完成安装。

2.2.2 PXE 系统的组成及配置

根据前面介绍的PXE 的工作方式, 可以看出要配置PXE 需要DHCP, TFTP 以及启动软件包。下面以Linux 系统为例逐个介绍。

1.TFTP 服务器

TFTP (Trivial File Transfer Protocol, 简单文件传输协议) 是TCP/ IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议。由于此协议在设计的时候是进行小文件传输的, 因此它不具备通常的FTP 的许多功能, 它只能从文件服务器上获得或写入文件,不能列出目录, 也不进行认证。在Linux 系统中, 可以通过yum install tftp-server 命令安装TFTP 服务器。

编辑/ etc/ xinetd-d/ tftp 文件, 将disable = yes 改为disable = no, 如代码清单2-1 所示。

代码清单2-1

 
 
  1. service tftp {  
  2. socket_type = dgram 
  3. protocol = udp 
  4. wait = yes 
  5. user = root 
  6. server = / usr/ sbin/ in.tftpd  
  7. server_args = - s/ tftpboot  
  8. disable = no 
  9. per_source =11 
  10. cps =100 2  
  11. flags = IPv4 

使用命令启动TFTP 服务, Service xinetd start。

2.启动软件包

NBP (Network Bootstrap Program), 这里将用到著名的Syslinux, 它是一个功能强大的引导加载程校一旦安装完成Syslinux 之后, Syslinux 启动程序就可以引导各种基于Linux 的工具, 以及MS-DOS/ Windows 或者任何其?僮飨低场Tinux 系统中, 用户也可以通过yuminstall syslinux 命令安装启动软件包。

安装好后系统将启动程序pxelinux.0 复制到tftp 根目录下:

接下来创建/ tftpboot/ pxelinux.cfg/ 目录, 该目录用于存放客户端的配置文件
 
 
  1. [root@ linux] # mkdir/ tftpboot/ pxelinux.cfg 

默认配置文件default, 文件内容如代码清单2-2 所示。

代码清单2-2

 
 
  1. cat/ tftpboot/ pxelinux.cfg/ default  
  2. prompt 1  
  3. default linux  
  4. timeout 100  
  5. label linux  
  6. kernel vmlinuz  
  7. append initrdinitrd = initrd.img ramdisk_size =9216 noapic acpi = off 

3.DHCP 服务器

动态主机设置协议(Dynamic Host Configuration Protocol, DHCP) 是一个局域网的网络协议, 采用UDP 协议工作, 主要用途就是给内部网络或网络服务供应商自动分配IP 地址。这也是为什么我们在自动安装一台新的操作系统时, 可以不配置网络参数, 而新计算机确能通过网络利用PXE 服务的原遥在Linux 系统中, 可以通过yum install dhcp 命令安装DHCP 服务器。

安装好DHCP 服务器后, 需要对DHCP 服务器作相应配置:

编辑/ etc/ dhcpd.conf 文件, 如代码清单2-3 所示。

代码清单2-3

 
 
  1. vi/ etc/ dhcpd.conf  
  2. ddns-update-style interim;  
  3. allow booting;#定义能够启动PXE  
  4. allow bootp;#定义支持bootp  
  5. next-server 192.168.0.1; #TFTP Server 的IP 地址  
  6. filename "pxelinux.0";#NBP(启动程序包)  
  7. default-lease-time 2000;  
  8. max-lease-time 7500;  
  9. ping-check true;  
  10. option domain-name-servers 192.168.0.1;  
  11. subnet 192.168.0.0 netmask 255.255.255.0  
  12. {  
  13. range 192.168.0.128 192.168.0.220;  
  14. option routers 192.168.0.1;  
  15. option broadcast-address 192.168.0.255;  

注意: 在/ etc/ dhcpd.conf 配置文件中文件目录是相对于tftp 的根目录(默认是/ tftp-boot), 所以文件的绝对路径就是/ tftpboot/ pxelinux.0 当然也可以指定为其他的路径。

使用命令启动dhcp 服务

 
 
  1. service dhcp start 
通过前面的讲解可以看出, 利用PXE 安装计算机操作系统的这种方式更适合于大量计算机自动化安装操作系统的情况。对于构建拥有大量计算机的云计算基础环境而言, 这是一种不可缺少的技术。
【责任编辑: book TEL:(010)68476606】
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐