In many organizations, sample requests such as a CD mount or umount on logical partitions (LPARs) must be managed automatically without administrator rights by an events process. This article can help to automate this process.

Pascal Greffier (GREFFIER@fr.ibm.com), IT Consultant, IBM China

Pascal is a Senior IT consultant based at IBM Toulouse (France). Pascal primarily works for an aeronautic company, specializing in architecture IT, IBM Power Systems, and configuration management. You can reach him at GREFFIER@fr.ibm.com.



08 October 2012

Also available in Chinese

Introduction

In a classical environment with IBM® AIX® logical partitions (LPARs), mounting or unmounting a CD requires administrator rights on the Virtual I/O Server (VIOS). It can be a very costly process if this operation has to be done frequently.

The aim of this article is to provide tools and methods for users, without administrator rights, to manage the CD/DVD mount and umount operations on an AIX LPAR.

Users might want to do such operations easily without external help (from system administrator or Help Desk). A simple procedure can help users to perform this basic operation.

The following example explains the global architecture, preliminary actions, and current operations.


Architecture

We need:

  • One Virtual I/O Server called VIOS on which the Virtual Media Library is created.
  • One LPAR called LPAR1 on which the set of tools (scripts) are implemented
  • Another LPAR called LPAR2, which is the target where the CD or the DVD is mounted.

LPAR1 and LPAR2 could be gathered in a single LPAR, but we prefer in our example to have two distinct LPARs one for tools, another to manage the CD/DVD.

Table 1 and Table 2 describe all the necessary steps to mount or unmount a CD/DVD. The steps can be manual or automatic.

Table 1. Steps to mount a CD/DVD
OrderStepAction
1 Put an ISO CD file on the AIX server (LPAR1) User + command (scp or ftp command) or the ISO file on the NFS share
2 Push the ISO file to the Virtual Media Library User + mount_CD.ksh script
3 Perform an automatic virtualization process on the VIOS Automatic process on the VIOS
4 Mount the CD on the AIX server (LPAR2) User + mount command
Table2. Steps to unmount a CD/DVD
OrderStepAction
1 Unmount the CD on the AIX server (LPAR2) User + umount command
2 Perform an automatic virtualization process on the VIOS User + umount_CD.ksh script
3 Perform an automatic removal of the IOS CD file Automatic process on the VIOS

System requirements

Before running the mount or unmount process, you must perform some preliminary actions:

  1. Create a tools account on the VIOS without administrator rights. The tools account belongs to the staff group.
  2. Create a Virtual Media Library on the VIOS and change the ownership of the Virtual Media Library to the tools account.
  3. Create a working directory on the VIOS.
  4. Create a tools account on the LPAR1 server.
  5. Create a Secure Shell (SSH) public key for the tools account on LPAR1 without passphrase and add it into the ~tools/.ssh/authorized_keys file on the VIOS.
  6. Create a virtual target for a file-backed virtual optical device.

Account creation on the VIOS as root user

Create a tools account without administrator rights on the VIOS.

Listing 1. Creating a user on VIOS
# mkuser id=301 pgrp=staff  home=/home/tools shell=/bin/ksh tools

Virtual Media Library on the VIOS

For more information about creating a Virtual Media Library on a VIOS, refer to VIOLoadISo on the IBM developerWorks® wiki.

After you create the Virtual Media Library, change the ownership to the tools account and provide rw permissions to the tools account and staff group.

Creating a working directory on the VIOS

A working directory is required on the VIOS. It contains flag files used by an automatic script.

Listing 2. Creating a working directory
# mkdir –p /var/tools/CDs
# chown tools:staff  /var/tools/CDs
# chmod 775 /var/tools/CDs

Account creation on the LPAR1 server as root user

Listing 3. Creating a user on the LPAR1 server
# mkuser id=xxx pgrp=staff  home=/home/tools shell=/bin/ksh tools

Where xxx is the user ID.

Create an SSH public key for the tools account on the LPAR1 server

This public key is added to the authorized_keys file of the VIOS tool account. Here, we used an empty passphrase.

Listing 4. SSH key creation
$ 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.
….

On the VIOS, add this generated public key into the ~tools/.ssh/authorized_keys file. At this point on the LPAR1 server, the tools account is able to launch commands on the VIOS as tools account.

Create a virtual target for a file-backed virtual optical device

As a padmin user on the VIOS, use the mkdev command to create your virtual optical device assigned to vhost.

Listing 5. Create virtual optical device
$ mkvdev -fbo -vadapter vhost#
vtopt# Available

Where vhost# is the virtual Small Computer System Interface (VSCSI) device for the VIOS LPAR2 — you can check this with the lsmap –all command. The mkdev command creats the vtopt# device.

Remember LPAR2 vhost# and associated vtopt#. These two name are used as parameters in scripts.


Implementation

Four scripts, one on the VIOS and three on the LPAR1 server, need to be implemented.

One script on the VIOS is dedicated for the automatic process:

Three scripts on LPAR1 are the user's script:

On the VIOS, the mnt_CD.ksh script is scheduled for every minute and checks the flag files to perform the mount or unmount operations. This script also creates a report about the virtual optical device and the Virtual Media Library.


VIOS implementation

The mnt_CD.ksh script must be created in the padmin user's home directory. This script checks the existing flag files that are created in the /var/tools/CDs folder by the user's scripts from LPAR1.

Flag fileDescriptionAction done by the script
ISO_file.mount Contains the ISO file name to mount Loads the virtual optical disk (ISO file) from the Virtual Medial Library into the virtual optical device
ISO_file.umount Is the trigger for removing the virtual optical device Removes a virtual optical media disk from a virtual optical device
ISO_file.remove Contains the ISO file name to remove Removes the corresponding ISO file name

After each iteration, the script removes the existing flag file. A report is also produced by the script. You can find more details in the mount_CD.ksh script.

Some parameters inside the mnt_CD.ksh script must be set according to your local configuration.

Listing 6. mnt_CD.ksh script
$ ls -l /home/padmin/mnt_CD.ksh
-rwxr-xr-x    1 padmin   staff          1929 Sep 23 08:46 /home/padmin/mnt_CD.ksh

This script must be croned inside the root's crontab file.

Listing 7. Adding an new entry in the root's crontab file
#crontab –e
Append the following entry :
* * * * * su - padmin " -c mnt_CD.ksh " > /tmp/MNT_CD.log 2>&1
Save and close file.

LPAR1 implementation

From the LPAR1 server, the tools user is able to launch scripts to mount or unmount CDs. Three scripts are available:

ScriptDescription
mount_CD.ksh Copy or mount the ISO file
umount_CD.ksh Unmount or delete the ISO file
check_CD.ksh Display the report generated by the automatic script on the VIOS

Before using the mount_CD.ksh or umount_CD.ksh scripts check your configuration with the check_CD.ksh script.

check_CD script

The check_CD.ksh script displays reports generated by the periodic script on VIOS. The -h option provides information about the usage. The syntax for the check_CD.ksh script is check_CD.ksh [-h].

This script generates a report from the VIO and displays it as a status. The report is divided into three parts:

The first part provides the results about the latest operation done by the periodic script. The second part provides the status about the virtual device that is mapped to LPAR2 (in particular, about the virtual optical device and its backing device), and the third part provides information about the Virtual Media Repository.

Example 1. check_CD.ksh output
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 script

The mount_CD.ksh script is used to copy, if necessary, an ISO file on the Virtual Media Library and add it to the virtual optical device that is linked to the LPAR2 server. Scripts must be launched as the tools user. The following syntax applies:

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

The options are:

-f <ISO file>Indicates the ISO file to transfer and mount
-cIndicates that the ISO file must be copied to the VIOS (inside the Virtual Media Library)
-hGives usage

Before mounting the CD, make sure that the backing device associated with the virtual optical device is free. Check it by using the check_CD.ksh script.

Example 2. Copying the MY_CD.iso file and mounting it

$ mount_CD.ksh –f MY_CD.iso –c

Example 3. Mounting an already copied ISO file on the LPAR1 server as the tools user

$ mount_CD.ksh –f MY_CD.iso

Wait for at least 1 minute to make sure that the ISO file is defined in the virtual optical device. Check this by using the check_CD.ksh script and the verification line about the backing device of the virtual optical device.

After making sure that everything is fine, you can mount the CD on the LPAR2 server with an appropriate mount command.

On the LPAR2 server, run the following command:

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

/dev/cd# is the associated device to the virtual optical device on the VIOS.

umount_CD script

Name: umount_CD.ksh

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

Description:

The umount_CD.ksh script is used to remove, if necessary, an ISO file in the Virtual Media Library and to free the backing device associated with the virtual optical device. Scripts must be launched as the tools user.

Options:

-f <ISO file>Indicates the ISO file to remove (inside the Virtual Media Library)
-rIndicates that the ISO file must be removed (inside the Virtual Media Library)
-hGives usage

Warnings:

Before releasing the backing device, the CD must be unmounted from the LPAR2 server.

Example 4. Remove only an existing ISO file, MY_CD.iso

$ umount_CD.ksh -r MY_CD.iso

Check the results with the check_CD.ksh script and verify that the MY_CD.iso file does not exist in the Media Library List.

Example 5. Releasing the backing device for the virtual optical device

$ umount_CD.ksh –u

Check the results with the check_CD.ksh script and verify that the backing device is released.


Summary

In this article, we describe how to mount a CD/DVD on an LPAR without having any administrator rights on the VIOS. This example is not very complicated, as we have a separate LPAR (LPAR1 and LPAR2), but it is not mandatory. You can have only one LPAR or more than one targeted LPAR by improving the scripts. You can also improve the scripts to add more functionality. Nevertheless, the basis is described to offer this service.


Resources

Download shell scripts

Learn

  • Refer to the following links for more information relating to virtual optical devices.

Discuss

  • Join the developerWorks community, a professional network and a unified set of community tools for connecting, sharing, and collaborating.

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into AIX and Unix on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=AIX and UNIX
ArticleID=837399
ArticleTitle=CD/DVD on demand with LPARs
publish-date=10082012