您是否从头安装过大量 IBM AIX 服务器?您是否需要一种快捷、轻松地创建和存储操作系统备份的方法?您是否想知道如何快速在现场服务器上执行 AIX 操作系统迁移?以下是您在 AIX 中设置和使用 Network Installation Manager (NIM) 工具的完整备忘录。本文将了解如何设置服务器和客户端组件,执行基本安装,使用 NIM 创建 mksysb 备份,以及通过网络执行 alt_disk 迁移。

Christian Pruett, 高级系统管理员

Christian Pruett 是一名高级 UNIX 系统管理员,在 IBM AIX、Sun Solaris、Linux 和 HP/UX 方面有超过 14 年的工作经验,涉及的行业包括计算、农业和电信等。他是两本关于 AIX 的 IBM Redbook 的合作作者,曾经为 O’Reilly Publishing 审阅一本 UNIX 图书,还曾经参与过几个 IBM AIX 认证考试。他与妻子和两个孩子住在科罗拉多州。



2013 年 4 月 01 日

如果您担任过 IBM® AIX® 系统管理员,那么您可能还记得过去如何逐个组建服务器的日志,在腋下夹着一叠 CD,在不同的驱动器上插入和弹出它们。即使仅组建十来个 IBM RS/6000® 服务器,也是一项艰巨的工作,根据您拥有的 AIX 操作系统基础介质的副本数量,有时您可能需要花费好几天的时间来完成这项工作,而且这还不包括每个服务器上需要执行的完成任何安装后的自定义或配置。此外,如果从一个 mksysb 磁带备份还原系统映像,还需要确保这些 CD 上有一个操作系统版本,以便磁带介质上所没有的任何驱动程序可以安装在服务器上,然后您还必须可以引导它。

常用缩略语

  • DNS:域名系统
  • LPAR:逻辑分区
  • NFS:网络文件系统
  • SAN:存储区域网络
  • SSH:安全 Shell

幸运的是,在 AIX 4 版本中,IBM 引入了 Network Installation Manager (NIM) 功能,这个灵活的工具可以处理通过网络执行的操作系统的远程安装和管理。此工具包含在 AIX 操作系统基础介质中,它将一个服务器转换为一个专门的主机,其他服务器可从这个主机进行构建、修补和自定义。经过多年演变,AIX 操作系统新版本的开发,以及从 IBM RS/6000 到 IBM eServer™、IBM pSeries® 系统和现在的 IBM Power System® 服务器的硬件技术演化,NIM 现在已成为一个可靠的系统管理软件。

本文是使用行业标准实践来设置和配置一个基本 NIM 环境的备忘录。文中提供了一些实际的技巧和诀窍,帮助您创建一个可随您的环境增长和扩展的、可维护的、设计优良的系统。本文还将介绍如何使用 NIM 构建一个新系统,创建其备份,以及执行一次迁移升级。

了解 NIM

NIM 使一个服务器上的 AIX 操作系统基础介质、关联的 Licensed Program Product (LPP)、脚本和备份可通过网络供其他 AIX 服务器使用。它通过专门的文件集完成这项任务,这些文件提供了一些代码,以便配置服务器以及常见网络协议和服务(比如 Bootstrap Protocol (BOOTP)、Trivial File Transfer Protocol (TFTP) 和 NFS),使数据变得可以访问。

拥有 NIM 软件和关联文件的系统称为 NIM 主机;它管理的所有系统称为 NIM 客户端。NIM 主机必须位于与 NIM 客户端相同或更高的操作系统级别上,才能正确构建和管理它们。NIM 主机可一次管理数百个 NIM 客户端,在它们之上同时运行多个任务。

要从 NIM 主机引导并构建 NIM 客户端,有两样东西是必不可少的:一个 LPP 源 (LPP source) 和一个共享产品-对象树 (SPOT) 映像。LPP 源实际上是来自 AIX 操作系统基础介质的文件系统的一个副本,可使用其他软件包对它进行自定义。SPOT 是一个可引导的映像,包含 AIX 内核和驱动程序等关键文件。在 NIM 客户端通过 BOOTP 连接 NIM 服务器时,会访问这些 NIM 对象,然后通过 TFTP 传输 SPOT。从这里,来自 LPP 源的软件剩余部分由 NFS 还原到 NIM 客户端上,该客户端会保存所有 Object Data Manager 信息,然后将一个确认信号发送给 NIM 主机并重新引导 NIM 客户端。

对于其他软件管理(包括升级操作系统,安装一个文件集或创建一个 mksysb 备份),可通过 NFS 来完成,并使用 r 命令彼此进行通信,或者使用一个特殊的 NIM Service Handler (NIMSH) 子系统进行管理。


NIM 主机考虑因素

构建一个 NIM 主机涉及到 4 个考虑因素:

  • 基础介质
  • 正确的位置
  • 足够的磁盘空间
  • 网络路由

首先,要构建 NIM 主机,必须在 CD、DVD 或其他某个存储设备上拥有 AIX 操作系统基础介质的一个副本,因为您需要从介质安装 NIM 文件集,从而创建 NIM 主机。然后,您需要使用此介质帮助形成初始的 LPP 源。

第二,您需要确定将要用作 NIM 主机的正确位置或系统。一般而言,我发现最好使用一个独立的系统或逻辑分区 (LPAR) 来完成此任务,因为当需要在服务器上执行某项办入侵式工作时,比如重新启动 NFS 或重新引导系统,您可能不希望它连接到生产环境或客户环境。此外,我喜欢使用我的 NIM 服务器作为一个管理端主机,我可以采用其他方法来管理我的剩余服务器,比如将系统的所有 SSH 放在一个位置。幸运的是,NIM 不需要大量资源,而且创建了一个具有网络和存储资源(通过虚拟输入和输出来共享)的 NIM 主机,该主机占用了处理器的部分资源,拥有 1 或 2 GB RAM 的 NIM 主机通常已足以提供所需的所有资源。

第三,NIM 主机需要足够多的磁盘空间来存储所有内容。尽管一个 NIM 主机可能不需要太多资源来存储映像,但我发现提供稍微多一点的资源会更好一些。正确的 NIM 主机需要充足的存储空间来存储您计划部署的各种操作系统级别的 LPP 源映像、其 SPOT 映像,以及您将用于备份或快速部署的任何 mksysb 映像。

一般而言,明智的做法是为每个 LPP 源分配至少 6 GB 的磁盘空间,为每个 SPOT 映像分配 4 GB 的磁盘空间,为一个将大部分数据都放在非 rootvg 卷组中的系统的 mksysb 映像分配大约 10 GB 的磁盘空间,并为一个将操作系统和数据都放在 rootvg 卷组中的系统的 mksysb 映像分配大约 25 GB 的磁盘空间。此配置提供了稍微多一点的空间,以防止出现紧急情况,并将它们用于复制和集成更新的技术级别 (TL),我稍后会讨论这些。我通常会创建一个独立的卷组来包含所有内容,为每个主要版本和次要版本创建至少 1 个文件系统,并为 mksysb 映像创建一个文件系统。表 1 提供了为 NIM 主机设置必要的存储的示例。

表 1. 设置一个 NIM 主机的存储
目录大小描述
nimvg500 GBNIM 卷组
/nim1 GB用于操作系统描述的笼统的文件系统
/nim/530050 GB用于 AIX 5.3 和关联的 TL 的文件系统
/nim/5300/lpp_source_5300-09-05AIX 5.3 TL 09 SP 05 的 LPP 源的目录
/nim/5300/spot_5300-09-05/usrAIX 5.3 TL09 SP 05 的 SPOT 的目录
/nim/5300/TEMP较新的操作系统的临时工作目录
/nim/610050 GB用于 AIX 6.1 和关联的 TL 的文件系统
/nim/6100/lpp_source_6100-04-03AIX 6.1 TL 04 SP 03 的 LPP 源的目录
/nim/6100/spot_6100-04-03/usrAIX 6.1 TL 04 SP 03 的 SPOT 的目录
/nim/6100/lpp_source_6100-06-05 的 LPP 源的目录AIX 6.1 TL 06 SP 05
/nim/6100/spot_6100-06-05/usrAIX 6.1 TL 06 SP 05 的 SPOT 的目录
/nim/6100/TEMP较新的操作系统的临时工作目录
/nim/mksysb100 GB服务器的 mksysb 映像的目录

最后,考虑您构建和管理基础架构中的 NIM 客户端所需的网络路由。有时,此路由非常简单,是一个与 NIM 主机共享的 C 级子网。其他时候,可能必须将它部署到可从不同接口访问的不同的网络上。请咨询您的网络管理员并收集相关信息,比如该网络上的服务器的主要网关,子网掩码和您的 NIM 客户端的 IP 地址。要了解的最重要的信息是,哪个设备将用作您的主要网络接口,它位于哪个子网上。例如,您可能使用 en0 在 192.168.0.1/24 子网上进行通信,因为它承载着您的大部分 NIM 客户端。您需要了解相关信息,以便在构建您的 NIM 主机时在 NIM 中为网络提供一个用于标识的名称(例如 ether_192_168_0)。


构建 NIM 主机

设置 NIM 环境的第一步是建立一个 NIM 主机来控制所有部分。以下步骤会指导您将一个服务器构建为一个 NIM 主机:

  1. 从 AIX 操作系统基础介质构建一个服务器,或者挑选一个已满足了所有考虑因素的服务器作为 NIM 主机。
  2. 从 AIX 操作系统基础介质安装 bos.sysmgt.nim.master、bos.sysmgt.nim.client 和 bos.sysmgt.nim.spot 文件集。

    选择安装必要的软件的选项,以获取其他所有必要文件集。

  3. 创建用于包含所有 LPP 源、SPOT 和 mksysb 映像的存储结构。
  4. 运行 nimconfig 命令,将服务器初始化为 NIM 主机。
  5. 将您的主要网络接口和主要网络名称 (NETNAME) 插入到适当的配置变量中。

    例如,对于 64 位内核初始化 NIM 主机,以下命令使用了 192.168.0.1/24 子网上的以太网接口,不要求客户端预先在 NIM 上注册:


    nimconfig a netname=ether_192_168_0 a pif_name=en0 
    a netboot_kernel=64 a cable_type=tp a client_reg=no
  6. 要确认 NIM 主机已构建,可运行 lsnim 命令并检查网络定义。

建立一个 LPP 源和 SPOT

拥有一个 NIM 主机后,您需要设置一个 LPP 源并构建一个 SPOT 映像,以便 NIM 客户端可从 NIM 主机引导并安装它们的操作系统。以下过程允许您使用同一个 AIX 操作系统基础介质(用于构建 NIM 主机)来设置这些资源:

  1. 使操作系统基础介质可供服务器访问,并在必要时挂载它。

    确保操作系统大于或等于介质上的操作系统版本;可能有必要进行升级。

  2. 将所有操作系统介质文件集都复制到一个临时工作目录中。

    在大部分时间,这些文件集可从基础介质上的 /usr/sys/inst.images/installp/ppc 目录中找到。使用 bffcreate 命令为每个 CD、DVD 或卷完成此步骤。例如,要将来自 /mnt 目录的内容放在 AIX 6.1 的一个临时工作目录中,可以运行以下命令:


    bffcreate XSq d /mnt t /nim/6100/TEMP all
  3. 使用 lppmgr 命令删除冗余的文件集和无关的语言文件集。

    通过运行此命令,可为每个 LPP 源节省几 GB 的磁盘空间。例如,要以交互方式仅将 en_US 语言文件集放在前面提到的某个目录中,可运行以下命令:


    /usr/lib/instl/lppmgr d /nim/6100/TEMP pr k en_US

    或者,要以交互方式删除同一个目录中的重复文件集,可运行以下命令:


    /usr/lib/instl/lppmgr d/nim/6100/TEMP  burp
  4. 要创建 LPP 源,可使用 nim 命令,将来自临时工作目录的文件放入其最终空间中。

    例如,要为 AIX 6.1 TL 04 SP 03 创建一个名为 lpp_source_6100-04-03 的 LPP 源,可运行以下命令:


    nim o define t lpp_source 
    a server=master a location=/nim/6100/lpp_source_6100-04-03 
    a source=/nim/6100/TEMP lpp_source_6100-04-03
  5. 使用 nim 命令从 LPP 源创建 SPOT 映像。

    没有必要指定一个终端目录,因为此目录会在该过程中自动创建;换言之,您只需要指向底层目录,因为 SPOT 目录会使用 SPOT 名称自动生成。例如,要使用前一个示例创建一个名为 spot_6100-04-03 的 SPOT 映像,可运行以下命令:


    nim o define t spot a server=master a location=/nim/6100 
    a source=lpp_source_6100-04-03 a installp_flags=-aQg spot_6100-04-03
  6. 使用 lsnim 命令确认 LPP 源和 SPOT 映像已存在。
  7. 根据需要清除任何挂载点和临时工作目录。

构建一个 NIM 客户端

定义 LPP 源和 SPOT 映像后,就可以将一个新服务器构建为 NIM 客户端了。此过程需要您执行相应的活动将 NIM 客户端定义为 NIM 主机上的一个对象并做好这方面的准备,然后从网络引导 NIM 客户端。在此示例中,在与 NIM 主机相同的子网上构建了一个名为 client01 的新服务器:

  1. 在 NIM 主机上的 /etc/hosts 文件中输入 NIM 客户端,或者确保想要的主机名将通过 DNS 进行解析。
  2. 使用 nim 命令定义 NIM 客户端,包括主机、内核类型、网络名称和服务器类型。

    例如:


    nim -o define -t standalone -a platform=chrp 
    -a netboot_kernel=64 -a if1="ether_192_168_0 
    -a cable_type1=tp client01" client01
  3. 要初始化一个 LPP 源安装,可以将以前创建的 LPP 源和 SPOT 映像分配给 NIM 客户端。

    这么做会为 BOOTP、TFTP 和 NFS 创建所有必要的条件来共享必要资源,以便在 NIM 客户端上引导和安装操作系统,例如:


    nim -o bos_inst -a spot=spot_6100-04-03 
    -a lpp_source=lpp_source_6100-04-03 
    -a no_client_boot=yes -a accept_licenses=yes client01
  4. 将 NIM 客户端系统引导到 System Management Services (SMS) 菜单,方法是在控制台中出现图标或词语 keyboard 时选择合适的 LPAR 引导选项或按下 1 或 F1 键:
    1. Remote Initial Program Load (RIPL) 菜单中,导航到用于 NIM 安装的特定的网络适配器。
    2. 输入 NIM 客户端的 IP 地址、NIM 主机的 IP 地址、网关和将使用的子网掩码。
    3. 通过选择两个菜单并执行一个 Ping 测试,确保接口有效。
  5. 返回到 NIM 客户端上的主要 SMS 窗口,进入引导选项。选择合适的网络接口作为一次正常模式引导的引导设备,然后退出 SMS。

    这时,在传输 SPOT 映像来启动引导过程时,服务器就会开始统计包数。

  6. 选择合适的控制台和语言选项。然后,在主要安装窗口中,挑选任何其他安装选项。

    通常,我发现接受默认安装选项并不可取。至少,我会确认将安装操作系统的硬盘信息。

  7. 确认安装选择。

NIM 开始推送操作系统构建版本。安装持续时间可能只有几分钟,也可能长达一个小时,具体取决于网络速度、类型、距离和硬件性能。在完成安装时,服务器会自动引导并显示一个登录提示。


为 NIM 创建一个 mksysb

我完成了一个服务器的构建,自定义该服务器,并针对其目标用途进行调整,然后运行 NIM 来创建服务器的一个 mksysb 备份。我这么做有两个原因。首先,在发生灾难时,我可以快速恢复操作系统及其所有细节,比如用户 ID、文件系统、软件和自定义。第二,如果我需要一次构建多个具有类似性质的服务器,比如数据库服务器,那么可以让应用程序团队就单个服务器的配置达成一致,然后创建一个 “黄金映像”,所有其他系统都可以通过这个映像进行安装。

要创建新构建版的一个 mksysb 映像,请执行以下步骤:

  1. 确认服务器是一个 NIM 客户端,并且已经在 NIM 主机上定义。

    如果服务器尚未在 NIM 主机上定义,那么可以在将要用作 NIM 客户端的服务器上使用 smitty niminit fastpath,输入适当的信息,以便与 NIM 主机进行通信并向其注册。此过程会创建必要的 /etc/niminfo 文件并启动 NIMSH 子系统(如果有必要)。

  2. 在 NIM 主机上,使用 nim 命令定义 mksysb 映像并同时创建 NIM 客户端的一个 mksysb 映像。

    例如,要创建服务器 client01 的 mksysb 映像并将该它放在 /nim/mksysb 文件系统中,可运行以下命令:


    nim -o define -t mksysb -a server=master 
    -a location=/nim/mksysb/client01_mksysb_GOLD -a mk_image=yes 
    -a source=client01 client01_mksysb_GOLD
  3. 要使用 mksysb 映像构建一个新服务器,可使用上一节中的同一个 nim o bos_inst 命令,但在该命令中包含选项 a source=mksysb,并使用选项 a mksysb=$IMAGE 指定该映像。

使用 NIM 备用磁盘迁移

我发现 AIX 在升级方面是最优秀的 UNIX® 操作系统之一。在您希望将操作系统从一个主要版本和次要版本升级到另一个版时,需要完全重新安装操作系统,而 AIX 有一个非常好的迁移安装选项来迁移操作系统,比如从 AIX 5.3 到 AIX 6.1。但是,对于 NIM,还有一种升级现场服务器的更好方式:NIM 备用磁盘迁移功能。

NIM 备用磁盘迁移采用原生的 alt_disk 功能创建一个克隆的磁盘,并将操作系统复制到该磁盘之上。然后,它向该磁盘迁移,在整个迁移过程中,服务器保持正常运行。所需的只是一次快速重新引导,服务器在新磁盘上以更高的操作系统级别启动。以下是使用这个优秀工具的过程:

  1. 在 NIM 客户端上,获取一个磁盘,以存放升级的操作系统。

    一般而言,可清空一个根磁盘镜像,或者通过一个 SAN 分配一个空闲磁盘。通常,此磁盘的大小必须不小于当前 rootvg 的已用空间,再加上用于新代码的几个 GB。

  2. 在 NIM 主机上,使用 nimadm 命令创建备用磁盘并执行迁移。
  3. 指定用于克隆和升级 LPP 源、SPOT 和操作系统的磁盘的磁盘名称。

    例如,要将 hdisk1 上的服务器 client01 升级到 AIX 6.1 TL 06 SP 05,可运行以下命令:


     nimadm H c client01 l lpp_source_6100-06-05 s spot_6100-06-05 d hdisk1 -Y
  4. 当迁移完成时,运行 bootlist om normal 并检查输出,确认服务器已从目标磁盘引导。
  5. 在适当的时候使用 shutdown Fr 命令重新引导服务器。
  6. 当服务器启动时,使用 oslevel 命令确认升级。
  7. 如果一个问题(比如软件不兼容性)提醒需要恢复迁移,可将服务器设置为从原始根磁盘引导,然后再一次重新引导。服务器将返回到原始的未修改的磁盘上。
  8. 如果不需要执行取消操作,那么可以在必要时重新建立根磁盘的镜像。

结束语

尽管本文仅介绍了 NIM 的强大功能的冰山一角,但它大体展示了如何设置一个简单的 NIM 环境,包括一个 NIM 主机、NIM 客户端、构建操作系统、备份服务器和使用最新技术升级它们。NIM 提供的功能还有很多,希望本文为您使用它来管理 AIX 服务器指明了方向。

参考资料

学习

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=863375
ArticleTitle=NIM 备忘录
publish-date=04012013