在很多组织中,在没有管理员权限的情况下,诸如在逻辑分区 (LPAR) 上进行 CD 挂载或卸载这样的请求必须通过事件过程自动进行管理。本文可以帮助您自动化这个过程。

Pascal Greffier, IT 顾问, IBM

Pascal 是在 IBM Toulouse (法国)工作的一名高级 IT 顾问,主要为一家航空公司提供服务,专攻架构 IT、IBM Power System 和配置管理。



2012 年 11 月 05 日

简介

在装有 IBM® AIX® 逻辑分区 (LPAR) 的传统环境中,要挂载或卸载 CD,则要求在 Virtual I/O Server (VIOS) 上具有管理员权限。如果频繁执行此操作,成本就会变得很高。

本文的目标是为用户提供一些工具和方法,在不需要管理员权限的情况下,管理 AIX LPAR 上的 CD/DVD 挂载和卸载操作。

用户可能希望在没有外部帮助(比如系统管理员或帮助台)的情况下轻松完成此类操作。一个简单的过程就可以帮助用户执行这项基本操作。

下面的示例介绍了全局架构、准备工作和当前操作。


架构

我们需要:

  • 一台叫做 VIOS 的虚拟 I/O 服务器,可在该服务器上创建虚拟媒体库。
  • 一个叫做 LPAR1 的 LPAR,用于实现工具(脚本)集
  • 另一个叫做 LPAR2 的 LPAR,用作挂载 CD 或 DVD 的目标。

LPAR1 和 LPAR2 可以合并到一个 LPAR 中,但在我们的示例中,我们选择提供两个不同的 LPAR,一个用于实现工具,另一个用于管理 CD/DVD。

表 1 和表 2 描述了挂载或卸载 CD/DVD 的所有必要步骤。这些步骤可以是手动的,也可以是自动的。

表 1. 挂载一个 CD/DVD 的步骤
顺序步骤操作
1 在 AIX 服务器 (LPAR1) 上放置一个 ISO CD 文件 用户 + 命令(scp 或 ftp 命令)或 NFS 共享上的 ISO 文件
2 将 ISO 文件推送到虚拟媒体库 用户 + mount_CD.ksh 脚本
3 在 VIOS 上执行一个自动虚拟化过程 VIOS 上的自动过程
4 在 AIX 服务器 (LPAR2) 上挂载 CD 用户 + mount 命令
表 2. 卸载一个 CD/DVD 的步骤
顺序步骤操作
1 在 AIX 服务器 (LPAR2) 上卸载 CD 用户 + umount 命令
2 在 VIOS 上执行一个自动虚拟化过程 用户 + umount_CD.ksh 脚本
3 执行 IOS CD 文件的自动移除 VIOS 上的自动过程

系统要求

在运行挂载或卸载过程之前,您必须完成一些准备工作:

  1. 在 VIOS 上创建一个没有管理员权限的 tools 帐号。该 tools 帐号属于 staff 组。
  2. 在 VIOS 上创建一个虚拟媒体库,并将该虚拟媒体库的所有者更改为前面创建的 tools 帐号。
  3. 在 VIOS 上创建一个工作目录。
  4. 在 LPAR1 服务器上创建一个 tools 帐号。
  5. 在 LPAR1 上为该 tools 帐号创建一个没有密码的 Secure Shell (SSH) 公钥,然后将其添加到 VIOS 上的 ~tools/.ssh/authorized_keys 文件中。
  6. 为文件备份虚拟光学设备创建一个虚拟目标。

在 VIOS 上创建一个帐号作为 root 用户

在 VIOS 上创建一个没有管理员权限的 tools 帐号

清单 1. 在 VIOS 上创建一个用户
# mkuser id=301 pgrp=staff  home=/home/tools shell=/bin/ksh tools

VIOS 上的虚拟媒体库

关于 VIOS 上的虚拟媒体库的更多信息,请参考 IBM developerWorks® 维基上的 VIOLoadISo

创建虚拟媒体库之后,将所有者更改为 tools 帐号,并将 rw 权限授予该 tools 帐号与 staff 组。

在 VIOS 上创建一个工作目录

工作目录在 VIOS 上是必不可少的。它包含自动脚本使用的标志文件。

清单 2. 创建一个工作目录
# mkdir –p /var/tools/CDs
# chown tools:staff  /var/tools/CDs
# chmod 775 /var/tools/CDs

在 LPAR1 服务器上创建一个帐号具有 root 权限

清单 3. 在 LPAR1 服务器上创建一个用户
# mkuser id=xxx pgrp=staff  home=/home/tools shell=/bin/ksh tools

其中的 xxx 是用户 ID。

在 LPAR1 服务器上为 tools 帐号创建一个 SSH 公钥

将这个公钥添加到 VIOS 工具帐号的 authorized_keys 文件中。在这里,我们使用了一个空密码。

清单 4. 创建 SSH 公钥
$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/tools/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/tools/.ssh/id_dsa.
Your public key has been saved in /home/tools/.ssh/id_dsa.pub.
….

在 VIOS 上,将这个生成的公钥添加到 ~tools/.ssh/authorized_keys 文件中。在 LPAR1 服务器上,这时 tools 帐号能够在 VIOS 上启动命令。

为文件形式虚拟光学设备创建一个虚拟目标

在 VIOS 上以 padmin 用户身份使用 mkdev 命令创建虚拟光学设备,并将它指派给 vhost

清单 5. 创建虚拟光学设备
 $ mkvdev -fbo -vadapter vhost#
 vtopt# Available

在这里,vhost# 是 VIOS LPAR2 的虚拟 Small Computer System Interface (VSCSI) 设备,您可以使用 lsmap –all 命令来验证这一点。mkdev 命令用于创建 vtopt# 设备。

请记住 LPAR2 vhost# 和相关的 vtopt#。这两个名称将用作脚本中的参数。


实现

共有四个脚本需要实现,一个脚本在 VIOS 上,另外三个在 LPAR1 服务器上。

VIOS 上的一个脚本专用于自动过程:

LPAR1 上的三个脚本是用户的脚本:

在 VIOS 上,mnt_CD.ksh 脚本按计划每分钟运行一次,并检查标记文件,以确定是否需要执行挂载或卸载操作。这个脚本还创建了一份关于虚拟光学设备和 Virtual Media Library 的报告。


VIOS 实现

mnt_CD.ksh 脚本必须在 padmin 用户的主目录中创建。这个脚本负责检查由 LPAR1 上的用户脚本在 /var/tools/CDs 文件夹中创建的现有标记文件。

标记文件描述脚本完成的操作
ISO_file.mount 包含要挂载的 ISO 文件名 将虚拟光学磁盘(ISO 文件)从 Virtual Medial Library 加载到虚拟光学设备中
ISO_file.umount 移除虚拟光学设备的触发器 从虚拟光学设备移除一个虚拟光学媒体磁盘
ISO_file.remove 包含要移除的 ISO 文件名 移除对应的 ISO 文件名

每次迭代之后,该脚本就会移除现有的标记文件。该脚本还会生成一份报告。您可以在 mount_CD.ksh 脚本中发现有关的更多细节。

mnt_CD.ksh 脚本中的有些参数必须根据您的本地配置进行设置。

清单 6. mnt_CD.ksh 脚本
$ ls -l /home/padmin/mnt_CD.ksh
-rwxr-xr-x    1 padmin   staff          1929 Sep 23 08:46 /home/padmin/mnt_CD.ksh

此脚本必须在根目录的 crontab 文件中执行。

清单 7. 在根目录的 crontab 文件中添加一个新项
#crontab –e
Append the following entry :
* * * * * su - padmin " -c mnt_CD.ksh " > /tmp/MNT_CD.log 2>&1
Save and close file.

LPAR1 实现

在 LPAR1 服务器上, tools 用户能够启动脚本来挂载或卸载 CD。可用的脚本有三个:

脚本描述
mount_CD.ksh 复制或挂载 ISO 文件
umount_CD.ksh 卸载或删除 ISO 文件
check_CD.ksh 显示由 VIOS 上的自动脚本生成的报告

在使用 mount_CD.ksh 或 umount_CD.ksh 脚本之前,请使用 check_CD.ksh 脚本对配置进行检查。

check_CD 脚本

check_CD.ksh 脚本显示了由 VIOS 上的定期脚本生成的报告。-h 选项提供了使用的相关信息。check_CD.ksh 脚本的语法是check_CD.ksh [-h]

此脚本生成一份来自 VIO 的报告,并以状态的形式显示它。该报告可分为三个部分:

第一部分提供定期脚本完成的最新操作的结果。第二部分提供了映射到 LPAR2 的虚拟设备的相关状态(特别是虚拟光学设备及其支持设备的相关状态),第三部分提供了有关虚拟媒体库的相关信息。

示例 1. check_CD.ksh 输出
INFO -  : DATE: 09/28/11 TIME: 02:28:00 --> =========  Tasks done by script ========
INFO -  : DATE: 09/28/11 TIME: 02:28:00 -->  No CD to mount  
INFO -  : DATE: 09/28/11 TIME: 02:28:00 -->  No CD to umount 
INFO -  : DATE: 09/28/11 TIME: 02:28:00 -->  No Removal requested  
INFO -  : DATE: 09/28/11 TIME: 02:28:00 -->
===================  Vhost status ===================================
SVSA            Physloc                                      Client Partition ID
--------------- -------------------------------------------- ------------------
vhost9          U9117.MMA.10D8D22-V2-C44                     0x00000010
……
……
VTD                   vtopt1
Status                Available
LUN                   0x8400000000000000
Backing device        /var/vio/VMLibrary/HACMP_5.4.1.iso
Physloc                
INFO -  : DATE: 09/28/11 TIME: 02:28:01 -->
===================  CD Library list ================================
Size(mb) Free(mb) Parent Pool         Parent Size      Parent Free
   16322     7456 	lparvg                  2856960          2049024
Name                                    		File Size Optical         Access
HACMP_5.4.1.iso                               	457 	vtopt1          rw     
IBM_Installation_Toolkit_42.iso              	1590 	None            rw     
TEST_Toolkit_42.iso                          	1590	None            rw     
VIO21-1108.iso                                 	67 	None            rw     
rhel_srv_56_ppc.iso                          	3680 	vtopt0          rw

mount_CD 脚本

如果有必要,可以使用 mount_CD.ksh 脚本来复制虚拟媒体库上的一个 ISO 文件,然后将它添加到已连接至 LPAR2 服务器的虚拟光学设备。脚本必须以 tools 用户的身份运行。请应用以下语法:

mount_CD.ksh <-f <ISO file>> [-c] [-h]

选项包括:

-f <ISO 文件>指明要传输和挂载的 ISO 文件
-c指明必须将 ISO 文件复制到 VIOS(在虚拟媒体库中)
-h显示用法

在挂载 CD 前,确保与虚拟光学设备相关的支持设备是可用的。使用 check_CD.ksh 脚本可以做到这一点。

示例 2. 复制 MY_CD.iso 文件并挂载它

$ mount_CD.ksh –f MY_CD.iso –c

示例 3. 以工具用户身份在 LPAR1 服务器上挂载一个已复制的 ISO 文件。

$ mount_CD.ksh –f MY_CD.iso

至少等待一分钟,以确保已经在虚拟光学设备中定义了这个 ISO 文件。使用 check_CD.ksh 脚本核实这一点,并确认虚拟光学设备的支持设备的相关行。

在确保一切正常之后,可以使用正确的挂载命令在 LPAR2 服务器上挂载 CD。

在 LPAR2 服务器上,运行下面的命令:

$ mount -o ro -v cdrfs /dev/cd# /mnt

/dev/cd# 是 VIOS 上虚拟光学设备的相关设备。

umount_CD 脚本

名称:umount_CD.ksh

语法:umount_CD.ksh <-f <ISO file>> [-r [-h]

Description:

如果有必要,可以使用 umount_CD.ksh 脚本来移除虚拟媒体库中的一个 ISO 文件,并释放与虚拟光学设备相关的支持设备。该脚本必须以工具用户的身份启动。

Options:

-f <ISO file>指明要移除的 ISO 文件(在虚拟媒体库中)
-r指明必须移除的 ISO 文件(在虚拟媒体库中)
-h显示用法

警告:

在释放支持设备之前,必须从 LPAR2 服务器卸载 CD。

示例 4. 只移除一个现有的 ISO 文件 MY_CD.iso

$ umount_CD.ksh -r MY_CD.iso

检查 check_CD.ksh 脚本的结果,确认 MY_CD.iso 文件已经不存在于 Media Library 列表中。

示例 5. 释放虚拟光学设备的支持设备

$ umount_CD.ksh –u

检查 check_CD.ksh 脚本的结果,确认已释放相关的支持设备。


结束语

在本文中,我们介绍了如何在没有 VIOS 上的管理员权限的情况下,在 LPAR 上挂载 CD/DVD。这个示例并不十分复杂,因为我们分离了 LPAR(分为 LPAR1 与 LPAR2),但这并非强制性的。您可以只使用一个 LPAR 或多个目标 LPAR 对脚本进行改进。您还可以为脚本增加更多的功能。不管怎样,本文介绍了提供此服务的基础。

参考资料

学习

  • mnt_CD.ksh
  • mount_CD 脚本
  • umount_CD 脚本
  • check_CD.ksh
  • VIOS_Optical_Commands 维基可以找到 VIO 服务器 光学命令的相关信息。
  • More on Virtual Optical Devices 文章描述了管理虚拟光学设备的命令。
  • 在 HMC 托管的 VIOS 分区中创建一台虚拟光学设备。
  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
  • AIX and UNIX 下载中心:在这里你可以下载到可以运行在 AIX 或者是 UNIX 系统上的 IBM 服务器软件以及工具,让您可以提前免费试用他们的强大功能。
  • IBM Systems Magazine for AIX 中文版:本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。IBM Systems Magazine 的内容都是由十分资深的业内人士撰写的,包括 IBM 的合作伙伴、IBM 的主机工程师以及高级管理人员。所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用 IBM 系统时有一个更好的认识。

讨论

  • 加入 developerWorks 中文社区。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。

条评论

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=844306
ArticleTitle=LPAR 上的 CD/DVD 按需操作
publish-date=11052012