Linux无盘工作站
网络环境构建说明书
兰书梅 赵 启 赵 纪
吉林大学国家Linux技术培训与推广中心
2007-12-2
1 无盘工作站及其原理
1.1 无盘工作站
无盘工作站是没有硬盘的计算机终端。它本身不含有硬存储设备,机器引导时需要借助网络上的服务器来传输操作系统启动文件到本地内存,才可以完成启动。因此,无盘工作站必须具有CPU、主板、内存、网卡和远程启动设备。远程启动设备主要以芯片的形式固化或接插在网卡上,在系统启动时负责连接服务器,获取IP地址,指导服务器上的操作系统启动文件到本地内存的传输。目前,远程启动芯片主要有RPL和PXE两种,后者为前者的升级版,目前正在被广泛使用。
1.2 PXE芯片启动原理
PXE芯片在远程启动时,首先要进行一个DHCP会话过程来获取一个IP地址和相关信息,以便进行后续的文件传送;IP地址获取成功后,PXE芯片触发TFTP会话过程,根据DHCP过程获取的相关信息向服务器请求启动文件,服务器接到请求后,根据本地策略,发送相应的启动文件,工作站接收到启动文件后,开始本地启动过程。
以上是PXE芯片无盘工作站启动过程的简单描述,DHCP协议的相关内容可参考RFC2131标准化文档,TFTP协议的相关内容可参考RFC1350标准化文档。
对于Linux操作系统来说,PXE所需要下载的启动文件是配置文件和内核文件。其中,配置文件在DHCP应答报文中包含,通过TFTP会话过程获取;内核文件的名称和位置在配置文件中给出,同样需要通过TFTP会话过程获取;内核文件获取成功后,系统开始进行本地启动,当启动过程进行到需要装载文件系统时,PXE会根据配置文件,向服务器请求连接根文件系统(该文件系统为NFS网络根文件系统)所对应的服务器目录,若成功,则启动结束。下页图1-1给出了这一过程的交互模型。
Linux无盘工作站的详细启动流程如下:
Step 1 工作站加电,PXE芯片进行自检;
Step 2 准备启动,PXE芯片发送DHCP请求;
Step 3 服务器收到工作站送出的请求,发送DHCP应答,内容包括客户端的IP地址,预设网关,DNS服务器及开机映象文件(配置文件和内核)位置;
Step 4 工作站上的PXE芯片根据配置文件位置,开始TFTP会话请求下载该文件;
Step 5 加载映象文件,开始本地启动,挂载NFS网络根文件系统;
Step 6 出现Login行,启动成功。
图1-1 PXE芯片启动过程中的网络交互
1.3 配置过程概述
根据上面的叙述不难得知,配置无盘工作网络环境的核心工作在于无盘网络文件服务器的配置,而文件服务器的配置又是由DHCP、TFTP等几个部分组成的。因此不难得知,配置Linux无盘工作站的网络环境,依次需要完成以下工作:
(1)选择并安装无盘网络文件服务器上的Linux操作系统;
(2)配置该操作系统的基本网络环境;
(3)配置DHCP服务器;
(4)配置TFTP服务器;
(5)为工作站创建工作目录、配置文件和内核文件;
(6)为工作站构建合理的、标准化的Linux文件系统;
(7)启动工作站,进行必要的调试。
2 详细配置说明
2.1 操作系统的选择和安装
首先,要为服务器选择一个适用于无盘工作站网络环境的操作系统。这个操作系统应该具有网络功能强大,处理速度优化,稳定性高等特点。在选择操作系统时,切忌选择具有服务器版本的PC机系统,而是要选择专门为服务器和大机器应用而开发的网络操作系统。经过考虑,本次配置决定选择Red Hat Enterprise Linux Advanced Server 4(RHAS4)操作系统,该系统是Red Hat公司专门为企业服务器所设计的操作系统,其内核版本高低适中,稳定性好,网络功能十分强大,贴近标准Linux,易于操作和管理。
2.2 基本网络环境配置
构建最基本的网络环境是任何网络服务器都必须做好的事情。这一部分的内容包括配置IP地址、子网掩码、主机名称和DNS服务器等内容,如果使用拨号或虚拟拨号网络,还应该配置相应的Modem和PPP协议支持。这部分操作在RHAS4中十分简单,只需在桌面环境下的最顶部依次选择“应用程序”—“系统设置”—“网络”,即可按照提示完成,如果未安装桌面环境,则使用ifconfig命令配置即可。
2.3 配置DHCP服务
DHCP服务需要对/etc/dhcpd.conf文件进行配置,将这个文件用vi或gedit打开就可以进行配置了。在命令行中输入vi /etc/dhcpd.conf或者gedit /etc/dhcpd.conf,将以下内容按括号中的说明修改后粘贴进去,保存退出即可。(开头有#的行为注释行,不必粘贴)
#---------------------------------------------------------------------------------------------------------------
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
#
#(DHCP-DNS互动)
ddns-update-style interim;
#(忽略客户端更新)
ignore client-updates;
#(允许bootp协议启动)
allow bootp;
allow booting;
#(子网作用域)
subnet 192.168.1.0 netmask 255.255.255.0 {
# ---default gateway (默认网关信息,前三个选项依次为路由器IP,子网掩码,DNS)
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.1;
option time-offset -18000;
#(地址池范围)
range dynamic-bootp 192.168.1.2 192.168.1.253;
#(IP地址租期,单位为秒,粗体部分根据需要自行设置;-1为永远不过期,不推荐)
default-lease-time 14400;
max-lease-time 86400;
}
#(以配置一台工作站c1的DHCP分配策略为例)
#(几行的含义依次为:工作站名称,服务器名称,工作站MAC地址,要分配给工作
# 站的IP地址,启动配置文件的位置,NFS根文件系统的路径)
#(启动配置文件的位置和NFS根文件系统的路径与后续步骤的配置密切相关,粗体部# 分会根据后续配置内容的变化而变化)
host c1{
server-name "server";
hardware ethernet 00:30:18:63:55:02;
fixed-address 192.168.1.3;
filename "/tftpboot/pxelinux.0";
option root-path "/tftpboot/192.168.1.3"
}
#(若还有其他机器,则按这种方法继续进行配置 host c2…)
#---------------------------------------------------------------------------------------------------------------
2.4 配置TFTP服务
TFTP服务需要在/etc/xinetd.d中进行注册性配置,将这个文件用vi或gedit打开就可以进行配置了。在命令行中输入vi /etc/xinetd.conf或者gedit /etc/xinetd.conf,将以下内容追加到文件末尾,保存退出即可。
includedir /etc/xinetd.d
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
}