使用 NIM 安装 AIX 无盘工作站
2010-07-23 00:00:00 来源:WEB开发网引言
所谓无盘工作站就是指工作站上不需要安装物理硬盘,其文件系统统一由网络服务器维护,启动时只需通过 NFS(Network File System)服务将远程的文件系统镜像(mount)到本地即可使用。在一个大规模集群系统中,这样不仅会在很大程度上节省硬件成本,而且大量节省安装时间。在一台比较高端的服务器上安装 AIX 有盘工作站大约需要半个小时左右,但如果采用 AIX 无盘工作站的话,安装过程仅仅需要几分钟。而且,无盘工作站的优点不仅仅局限在安装上,在“管理和维护”上的优点更为明显。
作为一个集群系统管理员,我们应该对“管理和维护”有比较深刻的认识。以安装、升级新软件为例,如果是有盘工作站,管理员不得不在集群中的每一台工作站上逐一安装或升级特定软件偶尔还包括那些繁琐的依赖包,而且这一重复性工作在管理员的日常生活中几乎必不可少。如果把工作站要用到的操作系统的文件和软件文件都放到服务器上,系统的管理和维护都在服务器上完成,那么,软件升级只需要配置一次,网络中的所有工作站就都能用上新软件,可以说,无盘工作站对网络管理员来说的确是福音。
IBM AIX 无盘工作站针对这一市场需求应运而生,它的出现在很大程度上解放了系统管理员,尤其是集群系统管理员。
安装 AIX 无盘工作站所需的 NIM 资源
无盘工作站的文件系统是从远程的文件系统镜像到本地的,所以这些文件系统被视为 NIM 的资源,与其他 NIM 资源一样,它们存在于 NIM master 的 NIM 环境中,以 NFS export 的形式为 NIM client 所使用。所以,在本节,我们首先介绍一下 AIX 无盘工作站所涉及到的 NIM 资源。
表 1. AIX diskless/dataless client 涉及的 NIM 资源
资源 | 描述 |
boot | NIM client 的网络启动镜像(Image)。boot资源由 NIM 自动生成和管理,用户没有权限对其进行分配和释放。 |
SPOT | 包含 AIX 系统运行通用文件的目录结构。这些文件被称为文件集(fileset)的 usr部分。在 diskless/dataless client 中,SPOT资源以 mount 的形式成为 client 的 /usr文件系统。 SPOT中也包含文件集的 root部分。这些文件用于配置一个特定的系统,并存储在 SPOT的特定目录中,在初始化过程中形成 diskless/dataless client 的根目录。 用于启动客户端的网络启动镜像文件也是由安装在 SPOT中的软件构建的。 对于 diskless/dataless 客户端来说,SPOT是必要资源。 |
root | 客户端”/”(root)目录的父目录,其中包含的客户端根目录将以 mount 的形式成为客户端的”/”目录。在资源的初始化过程中,分配给同一台机器的配置文件会被从 SPOT 中拷贝出来形成客户端的根目录,存储在 root资源中。 对于 diskless/dataless 客户端来说,root是必要资源。 |
dump | 客户端 dump设备的父目录,其中包含的客户端 dump文件将以 mount 的形式成为客户端的 dump设备。 对于 diskless/dataless 客户端来说,dump是必要资源。 |
paging | 客户端 paging设备的父目录,其中包含的客户端 paging文件将以 mount 的形式成为客户端的 paging设备。 对于 diskless 客户端来说,paging是必要资源;对于 dataless 客户端来说,paging是可选资源。 |
home | 客户端 /home目录的父目录,其中包含的客户端目录将以 mount 的形式成为客户端的 /home文件系统。 对于 diskless/dataless 客户端来说,home是可选资源。 |
shared_home | 客户端共享的 /home目录,所有使用 shared_home资源的客户端将 mount 同一目录作为自己的 /home文件系统。 对于 diskless/dataless 客户端来说,shared_home是可选资源。 |
tmp | 客户端 /tmp目录的父目录,其中包含的客户端目录将以 mount 的形式成为客户端的 /tmp文件系统。 对于 diskless/dataless 客户端来说,tmp是可选资源。 |
resolv_conf | 包含域名服务器 IP 地址和网络域名。 与其它 diskless/dataless 资源不同,resolv_conf不是通过 mount 来发挥作用,相反,它会被拷贝成客户端的 /etc/resolv.conf文件。 对于 diskless/dataless 客户端来说,resolv_conf是可选资源。 |
初始化 AIX NIM master
这部分的安装和初始化工作与普通 NIM master 的安装和初始化过程完全相同,其目的是为无盘工作站的安装提供基本的环境支持,所以在这里我们不做详细介绍,只给出配置命令及参数供读者参考。另外,如果读者比较熟悉 SMIT 图形界面,也可选择参见《网络安装管理器的强大功能》一文(http://www.ibm.com/developerworks/cn/aix/library/au-nim/)。
以 root 用户登录 AIX 系统。
运行 lslpp 命令以查看是否安装了 NIM 所需的文件集,如果没安装,请先从 AIX 发布 CD/DVD 中安装。
清单 1. lslpp 命令查看 NIM 文件集示例
# lslpp -L|grep nim
bos.sysmgt.nim.client 6.1.4.1 C F Network Install Manager -
bos.sysmgt.nim.master 6.1.4.0 C F Network Install Manager -
#
初始化 NIM master
在这里,需要配置 NIM master 使用的网络名称和主要网络接口。其实,NIM master 的初始化还需要一些其他参数,如 platform,netboot_kernel 等,但这些参数并不是必要的,nimconfig 命令可以从 AIX 系统中获得默认值。
例如:NIM master 将使用 en0 来安装各无盘工作站,则 nimconfig 命令将表示如下:
# nimconfig -a netname=p6ihn04 -a pif_name=en0
其中,pif_name用于指定主要网络接口,它必须是处于 available 状态的一个逻辑接口名。Netname用于定义 NIM 将要使用的网络名称。
这样配置后使用 lsnim 命令可以查看 NIM master 是否已经创建成功。
清单 2. lsnim 命令查看 NIM master 配置示例
# lsnim
master machines master
boot resources boot
nim_script resources nim_script
p6ihn04 networks ent
#
# lsnim -l p6ihn04
p6ihn04:
class = networks
type = ent
Nstate = ready for use
prev_state = information is missing from this object's definition
net_addr = 9.114.47.192
snm = 255.255.255.224
routing1 = default 9.114.47.222
#
# lsnim -l master
master:
class = machines
type = master
max_nimesis_threads = 20
comments = machine which controls the NIM environment
platform = chrp
netboot_kernel = 64
if1 = p6ihn04 p6ihn04.ppd.pok.ibm.com 001A64FA0223
cable_type1 = N/A
Cstate = ready for a NIM operation
prev_state =
Mstate = currently running
serves = boot
serves = nim_script
master_port = 1058
registration_port = 1059
reserved = yes
#
# lsnim -l boot
boot:
class = resources
type = boot
comments = represents the network boot resource
Rstate = ready for use
location = /tftpboot
alloc_count = 0
server = master
reserved = yes
#
创建 lpp_source 资源
lpp_source 资源对无盘工作站或有盘工作站都是必须的,用以提供 AIX 许可的程序产品。我们可以使用 nim 命令定义它。
# nim -o define -t lpp_source -a source=/61H -a server=master
-a location=/export/lpp_source/61H_lpp_source 61H_lpp_source
其中,source用于指定包含 AIX 安装 CD/DVD 的源设备,可以是光驱设备,也可以是包含解压 ISO 文件的目录。本例中, /61H 指包含 AIX6.1.4 的解压 ISO 目录。server指 NIM master。location用于指定 lpp_source 的存放位置。最后指定的是这个 lpp_source 的名称。
这个命令的执行需要一段时间,当命令执行结束后,我们可以使用 lsnim 命令查看 lpp_source 是否已经创建成功。
清单 3. lslpp 命令查看 lpp_source 示例
# lsnim -l 61H_lpp_source
61H_lpp_source:
class = resources
type = lpp_source
arch = power
Rstate = ready for use
prev_state = unavailable for use
location = /export/lpp_source/61H_lpp_source
simages = yes
alloc_count = 0
server = master
为无盘工作站创建 NIM 资源
创建 diskless spot 资源
SPOT 资源对于无盘工作站尤为重要,它包含了 AIX 系统运行时所需的通用文件,当无盘工作站启动时,SPOT 资源将被 mount 到 /usr 目录下。我们可以使用如下 nim 命令定义 SPOT 资源:
# nim -o define -t spot -a server=master -a source=61H_lpp_source -a location=/export/spot 61H_diskless_spot
其中,source指用于创建 SPOT 的 NIM lpp_source资源,例如我们在上面创建的 61H_lpp_source 资源。server指 NIM master。location用于指定 SPOT 的存放位置。最后指定的是这个 SPOT 的名称。
这个命令的实质就是将 AIX 系统运行时的 user 部分文件集装到 SPOT 目录下,所以它的执行需要一段时间,当命令执行结束后,我们可以使用 lsnim 命令查看 lpp_source 是否已经创建成功。
清单 4. lslpp 命令查看 SPOT 示例
# lsnim -l 61H_diskless_spot
61H_diskless_spot:
class = resources
type = spot
plat_defined = chrp
arch = power
bos_license = yes
Rstate = ready for use
prev_state = verification is being performed
location = /export/spot/61H_diskless_spot/usr
version = 6
release = 1
mod = 4
oslevel_r = 6100-04
alloc_count = 0
server = master
Rstate_result = success
mk_netboot = yes
mk_netboot = yes
创建 dd_resource 资源
dd_resource是 diskless/dataless 所需 NIM 资源的一个统称,它包括 root, dump, paging, home, shared_home 和 tmp资源,其中 root和 paging是必要资源,而 home, shared_home, dump以及 tmp则是可选资源,用户可以根据特定的应用需要来决定是否创建。我们可以使用如下的 nim 命令来创建各 dd_resource。
# nim -o define -t root -a server=master -a
location=/export/dd_resource/61H_diskless_root 61H_diskless_root
# nim -o define -t paging -a server=master -a
location=/export/dd_resource/61H_diskless_paging 61H_diskless_paging
创建完成的 root和 paging资源如下:
清单 5. lslpp 命令查看 dd_resource 示例
# lsnim -l 61H_diskless_root 61H_diskless_paging
61H_diskless_root:
class = resources
type = root
Rstate = ready for use
prev_state = unavailable for use
location = /export/dd_resource/61H_diskless_root
alloc_count = 0
server = master
61H_diskless_paging:
class = resources
type = paging
Rstate = ready for use
prev_state = unavailable for use
location = /export/dd_resource/61H_diskless_paging
alloc_count = 0
server = master
在 NIM 环境中定义无盘工作站
这里主要是将无盘工作站做为 client 添加到 NIM 环境中以提供 client 启动所需的信息。
获取待安装节点的 MAC 地址
这一步骤主要是用于获取 diskless client 与 NIM master 相连接的链路 MAC 地址。如果 diskless client 同时配置了多个网卡,那么在获取 MAC 地址之前,我们需要首先确认好各网卡和 NIM master 的连通性,从而判断出哪一个网卡是用来安装 diskless client 的。对于 IBM System P 服务器,我们可以使用 SMS 中的 Remote IPL 功能做 NIM master 和 diskless client 间的 ping 检测,具体步骤如下:
打开待安装节点的 console 窗口。
重新启动待安装节点并进入 SMS Menu。
选择 “Setup Remote IPL”,用于列出待安装节点中所有的网卡信息。
选择其中的一块网卡 选择 “IPV4” 选择 “BOOTP” 选择 “IP Parameters”:
在”Client IP Address”中填写 diskless client 的 IP 地址。
在”Server IP Address”中填写 NIM master 的 IP 地址。
根据实际情况填写 “Gateway IP address” 和 “Subnet Mask”。
退到上一级菜单,选择 “Ping Test”。
如果 Ping Test 的结果为成功,则说明这个网卡就是用于安装的网卡。
如果 Ping Test 的结果为失败,则需要重复上述步骤,再检测待安装节点中的其它网卡。
得到安装网卡后,回退到 “Setup Remote IPL”界面,在 “Hardware Address”列找到相应的 MAC 地址。
例如:Ping Test 结果显示 “NIC Adapters Device 4” 与 NIM master 连通,那么它对应的 “Hardware Address”就是 “00145e5f1ca7”,这个 MAC 值在定义 diskless client 是必要参数。
清单 6. SMS IPL ping 检测获取 diskless client MAC 地址示例
PowerPC Firmware
Version EM340_064
SMS 1.7 (c) Copyright IBM Corp. 2000,2008 All rights reserved.
-------------------------------------------------------------------------------
NIC Adapters
Device Location Code Hardware
Address
1. Interpartition Logical LAN U9117.MMA.10F990B-V4-C3-T1 0a91a2a41703
2. Interpartition Logical LAN U9117.MMA.10F990B-V4-C4-T1 0a91a2a41704
3. PORT - 3 IBM Host Ethernet Ada U789D.001.DQDVXGD-P1-C10-T2 00145e5f2092
4. PORT - 8 IBM Host Ethernet Ada U789D.001.DQDVXGH-P1-C10-T2 00145e5f1ca7
定义 diskless client
我们可以通过新建一个 diskless 类型的 machine 对象将无盘工作站添加到 NIM 环境中,从而为 NIM 提供客户端网络启动所需的必要信息。
我们可以使用如下命令定义 diskless client:
# nim -o define -t diskless -a platform=chrp -a if1='p6ihn04 p6ml8n03 00145e5f1ca7' -a cable_type1=bnc -a netboot_kernel=64 -a net_settings1='auto auto' p6ml8n03
其中,if1用于指定 diskless client 使用的网络接口,参数顺序为 NIM master 网络接口,diskless client 主机名,diskless client 主机名对应的接口 MAC 地址。在本例中,这个 MAC 地址即为本节第一步中获取的 ping 检测成功的接口物理地址 00145e5f1ca7。
创建完成的 diskless client定义如下:
清单 7. lslpp 命令查看 diskless client 定义示例
# lsnim -l p6ml8n03
p6ml8n03:
class = machines
type = diskless
platform = chrp
netboot_kernel = 64
if1 = p6ihn04 p6ml8n03 00145e5f1ca7
cable_type1 = bnc
Cstate = ready for a NIM operation
prev_state = ready for a NIM operation
Mstate = not running
为无盘工作站初始化 NIM 资源
至此,安装 AIX 无盘工作站所需的所有 NIM 资源均已定义完成,但是仅仅定义这些资源对于一个完整的无盘工作站安装是远远不够的。在网络启动客户端进行安装以前,我们还需要对这些已定义的 NIM 资源做一些初始化的工作,主要包含以下几个主要阶段:
分配资源:在初始化操作之前或操作之中,diskless/dataless 客户端所需的 NIM 资源必须被分配给这个客户端才能生效。如果这些资源是客户端目录的父目录,在分配过程中,NIM 会为客户端创建一个空白的子目录,这个客户端子目录将以 NFS 的形式 export 给客户端。
客户端初始化:NIM 使用 dkls_init和 dtls_init操作为 diskless/dataless 客户端初始化资源。主要包含以下方面:
为网络启动准备启动镜像文件。
从 SPOT资源中,将用于配置特定系统的 root部分文件拷贝到 root资源下的客户端子目录。
在服务器端创建 /tftpboot/client.info文件,其中包含成功配置 diskless/dataless 客户端所需的启动信息。
以下是 /tftpboot/client.info文件包含的部分参数:
export NIM_CONFIGURATION=diskless
export RC_CONFIG=rc.dd_boot
export ROOT=Host:Client_Root_Directory
export SPOT=Host:SPOT_Location
NIM 提供如下命令来为无盘工作站初始化资源:
# nim -o dkls_init -a spot=SPOTName -a root=RootName -a paging=PagingName ClientName
在本例中,相应的命令如下:
# nim -o dkls_init -a spot=61H_diskless_spot -a root=61H_diskless_root -a paging=61H_diskless_paging p6ml8n03
初始化过后,无盘工作站 p6ml8n03 的状态得到更新。
清单 8. lslpp 命令查看 diskless client 定义更新示例
# lsnim -l p6ml8n03
p6ml8n03:
class = machines
type = diskless
platform = chrp
netboot_kernel = 64
if1 = p6ihn04 p6ml8n03 00145e5f1ca7
cable_type1 = bnc
Cstate = diskless or dataless boot is enabled
prev_state = diskless resources are being initialized
Mstate = not running
boot = boot
paging = 61H_diskless_paging
root = 61H_diskless_root
spot = disklesspot61H_SP1
control = master
Cstate_result = success
网络启动 NIM 客户端开始安装 AIX 无盘工作站
客户端网络启动主要是指借助于标准的 bootp 和 tftp 网络启动程序,使客户端启动后从网络上获得启动镜像文件,然后在 RAM 中运行这个 mini-kernel 开始安装过程。同第五节提到的,/tftpboot/client.info文件中包含用于安装和配置 AIX 无盘工作站的信息,客户端在得到这个文件后会将远程的文件系统 mount 到本地,成为一个无盘工作站。
有很多方法可以实现从网络启动一台 NIM 客户端,我们在这里着重介绍从 console 窗口上直接操作的方法,供您参考。
在第四节第一步中,我们已经通过 ping 检测得知 diskless client 与 NIM master 互通的网卡并在 IPL 里配置了相应的 server 和 client IP 地址,所以在这里我们只需要将 diskless client 设置为从这块网卡启动即可。
具体步骤如下:
打开待安装节点的 console 窗口。
重新启动待安装节点并进入 SMS Menu。
选择”Select Boot Options” -> “Configure Boot Device Order” -> “Select 1stBoot Device” -> “List All Devices”
从 All Devices 中选择 Ping Test 成功的安装网卡做为 1st Boot Device
键入 “X” 从 SMS Menu 中退出。(注意这一步是必要的以保证刚才的设置被保存)
diskless client 退出 SMS 后,我们可以通过 console 窗口继续观测其安装过程,并及时发现安装过程中可能出现的错误。因为无盘工作站的文件系统是从 NIM master mount 过来的,所以我们可以看到安装过程较有盘安装相比,耗时很短。并且,当无盘工作站安装完成后,我们可以看来其文件系统的具体来源。
清单 9. mount 命令查看 diskless client 文件系统示例
# mount
node mounted mounted over vfs date options
-------- --------------- --------------- ------ ------------ ---------------
hv8plus_lpar8.ppd.pok.ibm.com /export/dd_resource/61H_diskless_root/p6ml8n03 / f
hv8plus_lpar8.ppd.pok.ibm.com /export/spot/disklesspot61H_SP1/usr /usr f
结束语
本文介绍了如何使用 NIM (Network Installation Management,网络安装管理器 ) 来安装 AIX 无盘 (Diskless) 工作站的具体方法,为系统管理员在部署操作系统方面提供了更多的选择方案。
赞助商链接