![]() |
![]() |
[ | | | ]
Attention: During installation on AIX of the IBM Tivoli Storage Manager for UNIX Backup-Archive Clients program, sample options files (dsm.sys.smp, and dsm.opt.smp) are placed in the /usr/tivoli/tsm/client/ba/bin directory. During installation on Solaris, HP-UX, and Linux86 of the IBM Tivoli Storage Manager for UNIX Backup-Archive Clients program, sample options files (dsm.sys.smp, and dsm.opt.smp) are placed in the /opt/tivoli/tsm/client/ba/bin directory. If you are installing both the backup-archive client and the HSM client at the same time, copy and rename the sample options files and modify them for your use for both clients. If you previously installed the backup-archive client and you set up your options files, modify them for space management.
The HSM client shares the following common files and code with the IBM Tivoli Storage Manager for UNIX Backup-Archive Clients:
This chapter defines the space management options that you can set in both your dsm.sys file and your dsm.opt file. As optional tasks, you can assign management classes to your files and modify your include-exclude file. For more information about these options, see "Using Options".
After you select the options for space management, mount all HSM-managed file systems either automatically or manually each time you restart your system.
For information about setting other Tivoli Storage Manager options, see IBM Tivoli Storage Manager for UNIX: Backup-Archive Clients Installation and User's Guide.
To use the HSM client, an authorized user must set options for space management. These options determine such things as:
You can display information about options either from the command line or from the graphical user interface (GUI). From the GUI:
To display information about options from the command line, use the dsmmigquery command:
dsmmigquery -options
To edit your options files from the Backup-Archive Client for UNIX graphical user interface, perform these steps:
The sections that follow provide descriptions of each space management option that you can use. For more information about these options, see "Using Options".
In addition to backup and archive options, the dsm.sys file:
For information about setting up space managment for AIX in an HACMP environment, see "Set Up Space Management for AIX in an HACMP Environment".
For AIX GPFS and Linux86 GPFS file systems only: To access your data on the server in the event of failover, ensure that all HSM nodes participating in the failover environment share the same node name in your dsm.sys file.
With the exception of errorprog, place all space management options at the beginning of your dsm.sys file before any server stanzas that you define.
You can specify both a default server and a migration server in your dsm.sys file. If you do not specify a server name on either the defaultserver option or the migrateserver option, then, the server that you do specify in the first stanza of your dsm.sys file becomes your default server.
If you specify a migration server with the migrateserver option, it overrides the server that you specified with the defaultserver option.
Figure 1 displays an example of a server stanza containing options for a server that you want to contact.
Figure 1. Example of a dsm.sys File with HSM Options
DEFAULTServer server1 MIGRATEServer server2 CHECKThresholds 2 CANDIDATESInterval 12 MAXCANDprocs 5 RECOncileinterval 12 MAXRECOncileproc 5 MAXThresholdproc 5 MINMIGFILESize 8192 MIGFILEEXPiration 10 MINRECAlldaemons 5 MAXRecalldaemons 15 CHECKFororphans no MAXMIGRators 1 KERNelmessages no OVERLAPRECALL no Servername server1 COMMmethod TCPip TCPPort 1500 TCPServeraddress almvmd.almaden.ibm.com Passwordaccess generate Mailprog /usr/bin/xsend root Groups system tsm Users steiner chron wang nguyen Inclexcl /adm/tsm/backup.excl ERRORProg /bin/cat Servername server2 COMMmethod SNAlu6.2 PARtnerluname raptor TPname appcdel CPICMOdename appc Passwordaccess generate Mailprog /usr/bin/xsend root Groups system tsm Users sullivan tang stewart Inclexcl /adm/tsm/migrate.excl ERRORProg /bin/cat
Table 6. Setting Space Management Options in Your dsm.sys File
Option | Description | Default |
---|---|---|
candidatesinterval | Specifies how often the dsmscoutd daemon searches for migration candidates in file systems to which you added space management. The range of values is one through 9999. | 1 |
checkfororphans | Specifies whether or not the dsmreconcile command checks for orphans. | No |
checkthresholds | Determines how frequently the space monitor daemon checks space usage on the file systems to which you add space management. | Every 5 minutes |
compression | Compresses files before you send them to the Tivoli Storage Manager server. | No |
defaultserver | Specifies the name of the default Tivoli Storage Manager server to
contact for space management services if you do not specify a server name on
the migrateserver option.
You cannot override the default server for space management services in your dsm.opt file. | Server name in the first stanza |
errorprog | Specifies a program to which you want to send a message if a severe error occurs during space management processing. | None |
kernelmessages | Valid for AIX JFS file systems only
Displays HSM-related messages during processing. If you change the value, it will not take effect until you restart your system. | Yes |
maxcandprocs | Specifies the number of slave scout daemons that can scan for migration candidates in parallel on a system. The range of values is two through 20. | 5 |
maxmigrators | Specifies the number of parallel migration sessions that you can perform. The range of values is one through 20. | 1 |
maxrecalldaemons | Specifies the maximum number of recall daemons that you can run at one time. The range of values is two through 99. | 20 |
maxreconcileproc | Specifies the maximum number of automatic reconciliation processes that you can start at one time. The range of values is one through 99. | 3 |
maxthresholdproc | Specifies the maximum number of automatic threshold migration processes that you can start at one time. The range of values is one through 99. | 3 |
migfileexpiration | Specifies the number of days that copies of migrated or premigrated files remain on the Tivoli Storage Manager server after they are modified on, or erased from, your local file system. The range of values is zero through 9999. | 7 days |
migrateserver | Specifies the Tivoli Storage Manager server to which you want to migrate
files from your client node. Specify only one migration server for each
client node.
You cannot override the migration server in your dsm.opt file. | Specify a server name in the first stanza |
minmigfilesize | Specifies the minimum file size for migration candidates that is smaller or larger than the stub file size. The range of values is the fragment size of the file system through 2147483647. | Zero |
minrecalldaemons | Specifies the minimum number of recall daemons that you want to run at the same time to perform recalls for your client node. The range of values is one through 99. | 3 |
overlaprecall | Valid for AIX JFS file systems only
Specifies whether migrated files must be recalled immediately even if a process is accessing only the resident part of the file. Specify Yes or No. This option is valid for read-only operations on a file. | No |
reconcileinterval | Specifies how often automatic reconciliation of file systems occurs to which you add space management. The range of values is zero through 9999. | Every 24 hours |
The dsm.opt file contains options that affect the backup-archive client. However, some options, such as optionformat and restoremigstate, affect both the backup-archive client and the HSM client. Table 7 provides a brief description of the space management options that you can set in your dsm.opt file.
To edit your dsm.opt file:
Table 7. Setting Space Management Options in Your dsm.opt File
Option | Description | Default |
---|---|---|
optionformat | Specifies the format to use (either standard or short) when you specify HSM client commands. If you change the value, the new value is effective immediately. | Standard |
restoremigstate | Restores a file to stubbed (migrated) state if it is backed up after migration or premigration. Tivoli Storage Manager records the migration state of files during backup, so only those files that were migrated or premigrated at the time of backup can be restored to stubbed (migrated) state. | Yes |
Note: The Tivoli Storage Manager nfstimeout option is ignored for HSM clients; HSM only operates on local file systems.
In addition to required tasks, an authorized user can perform these optional tasks:
Management classes that you assign to files determine whether or not a file is eligible for backup or migration. An include-exclude options file contains statements that identify any files you want to include or exclude from backup or migration. Environment variables point to files that Tivoli Storage Manager uses.
Your Tivoli Storage Manager administrator defines management classes that contain specific requirements for migrating files to storage. You assign these management classes to files on your local file systems. The management class that you assign to a file determines file eligibility for migration. Use the default management class for some or all of your files. Assign different management classes to specific files or groups of files using one or more include statements in your include-exclude options file.
A management class can contain a backup copy group and an archive copy
group. Copy groups contain attributes that control the generation,
destination, and expiration of backup versions of files and archived copies of
files. For information about backup and archive copy groups, see
IBM Tivoli Storage Manager for UNIX: Backup-Archive Clients
Installation and User's Guide. Table 8 lists the space management attributes and their defaults
that might be included in a management class.
Table 8. Space Management Attributes in a Management Class
Attribute | Description | Default |
---|---|---|
spacemgtechnique | Specifies that a file is eligible for automatic and selective migration,
selective migration only, or neither. The values for this attribute
are:
Attention: If you use the default management class named Standard that is shipped with the Tivoli Storage Manager product, and your administrator has not changed the default setting for the spacemgtechnique attribute, files are not migrated from your workstation. | None |
automignonuse | Specifies the number of days (zero through 9999) that must elapse since you last accessed the file before it is eligible for automatic migration. | Zero |
migrequiresbkup | Determines whether a current backup version of the file must exist on
your migration server before the file is eligible for automatic or selective
migration. The values for this attribute are:
Attention: If you set this attribute to yes in the management class that you assigned to a file, Tivoli Storage Manager checks for a current backup version of the file on your migration server only. If a current backup version does not exist on your migration server, the file is not migrated, even if a current backup version exists on another server. | Yes |
migdestination | Specifies the name of the storage pool in which Tivoli Storage Manager stores the file when it migrates. | spacemgpool |
Table 9 defines some tasks you might perform and the type of
management class to assign to your files.
Table 9. Assigning Management Classes to Your Files
Task | Assignment |
---|---|
You want to migrate and back up a file. | Assign a management class to a file with space management attributes and backup-archive copy groups that you want to use for that file. Assign only one management class to a specific file. |
Your client node communicates with the same server for both space management and backup-archive services. | Assign a management class to a file containing space management attributes and backup-archive copy groups that you assigned to Tivoli Storage Manager to use for that file. |
You migrate files to one server and back up and archive files to one or more different servers: |
For example, if you back up files in /home/holland to Server1, the include-exclude options file that you use for Server1 might specify a management class named mgmt1a for a file named /home/holland/testfile. This management class must contain an appropriate backup copy group for the file. If you migrate files in the /home file system to Server2, the
include-exclude options file that you use for that server might specify a
management class named mgmt2b for the same file. That management class
must contain appropriate space management attributes for the file.
|
You can display information about management classes for the default migration server only. If your client node contacts one or more additional servers for backup and archive services, use the backup-archive client graphical user interface or the dsmc query mgmtclass command to display information about available management classes on those servers.
To display information about management classes that you can assign to your files, follow these steps:
To display information from the command line about management classes that you can assign to your files, enter:
dsmmigquery -mgmtclass -detail
For more information about management classes or include-exclude options, see IBM Tivoli Storage Manager for UNIX: Backup-Archive Clients Installation and User's Guide.
You might want to keep certain files, such as system files or files that the HSM client creates and uses, on your local file system at all times. Or, you might want to include certain files for backup or migration. Set the statements in your include-exclude options file to exclude or include specific files from space management and assign specific management classes to these files. If you do not create an include-exclude options file, all files are considered for backup services and the default management class is used.
For AIX GPFS and Linux86 GPFS file systems only: Do not use the inclexcl option with the AIX GPFS or Linux86 GPFS failover environment. Unlike dsm.opt and dsm.sys files, include-exclude options files are not shared between different nodes of a failover group. Add the include-exclude list directly to the dsm.sys file, or verify that the include-exclude list files match on all nodes participating in the local failover group or node set.
For all other file systems: Use the inclexcl option in your dsm.sys file to specify the name of your include-exclude options file. You can create an include-exclude options file for each Tivoli Storage Manager server that your client node contacts for services. For example, if your dsm.sys file contains two stanzas with options for two servers, you can include an inclexcl option in each stanza. Each inclexcl option can point to a different include-exclude options file. The files that you create must reside in a directory to which all users on your workstation have read access.
Follow these rules when you use the options in Table 10 to include or exclude files from either backup or migration:
Table 10. Include and Exclude Statements
Option | Description |
---|---|
exclude | Excludes a file or a group of files from space management. |
exclude.backup | Excludes a file from backup. |
exclude.file | Excludes a file or a group of files from space management. |
exclude.file.spacemgmt | Excludes a file from HSM services only. Use this option when you have both the backup-archive client and the HSM client installed. |
exclude.spacemgmt | Excludes files and directories from HSM backup only. Use this option when you have both the backup-archive client and the HSM client installed. |
include | Includes files for backup or LAN-free data transfer. |
include.file | Includes a file for backup. |
The following example displays a sample include-exclude options file:
exclude /.../core include /home/.../* personal_files include /home/davehil/dsnew/.../* include /home/davehil/driver5/.../* source_code exclude.spacemgmt /home/jones/proj1/status/.../* exclude /home/root/cron.log
In the sample include-exclude options file, personal_files and source_code identify management classes that are assigned to specific files. If you do not assign a management class to your files, the default management class is used.
Include-exclude options are processed from the bottom up. For example, when you build a migration candidates list for a file system, and the files that you included in that list migrate, each file is tested against the options in the include-exclude options file beginning with the last option that you specified and working up. If a match is found, it does not test the file against any additional options. It either excludes or includes the file as the option specifies. If a match is not found, the file is implicitly included for space management and backup services.
If you exclude a file from space management after it migrates to storage, it remains migrated until it is automatically or selectively recalled. After it is recalled, it is no longer eligible for migration. To prevent a file migrating to storage from a local file system, assign the file to a management class without automatic or selective migration.
To create an include-exclude list from the graphical user interface:
To create an include-exclude list from the command line:
Set these environment variables to point to files that Tivoli Storage
Manager uses. Use the LANG environment variable to specify the language
that you want to use.
Table 11. Environment Variables
Variable | Description |
---|---|
DSM_DIR | Points to the resource files, the dsm.sys file, and the executable file, dsmtca. If you do not set DSM_DIR, the HSM client searches for the executable files in the installation directory. |
DSM_CONFIG | Points to your dsm.opt file.
|
DSM_LOG | Points to the directory where you want the dsmerror.log file to
reside. The error log file contains information about any errors that
occur during processing. This log file helps Tivoli Customer Service
diagnose severe errors.
|
To set the Bourne or Korn shell, enter the environment variables in the .profile file in your $HOME directory. For example:
DSM_DIR=/home/davehil DSM_CONFIG=/home/davehil/dsm.opt DSM_LOG=/home/davehil export DSM_DIR DSM_CONFIG DSM_LOG
The /home/davehil/dsm.opt path identifies the path and file name for your dsm.opt file. The /home/davehil path identifies the directory where you want to store the dsmerror.log file, the executable file, the resource files, and the dsm.sys file.
To set the C shell, add the DSM_CONFIG and DSM_LOG variables to the .cshrc file in your $HOME directory. For example:
setenv DSM_CONFIG /home/davehil/dsm.opt setenv DSM_LOG /home/davehil
The /home/davehil/dsm.opt path identifies the path and file name for your dsm.opt file. The /home/davehil path identifies the directory where you want to store the dsmerror.log file.
|The HSM on AIX GPFS client supports LAN-free data transfer, which shifts |the movement of client data from the communications network to a storage area |network (SAN). Shifting the client data movement from the |communications network to a SAN decreases the load on the Tivoli Storage |Manager server.
|The SAN provides a path that allows you to migration and recall data to and |from a SAN-attached storage device. Client data moves over the SAN to |the storage device via the Tivoli Storage Manager Storage Agent. The |Tivoli Storage Manager Storage Agent must be installed on the same system as |the client.
|To enable LAN-Free support: |
|After installing and configuring the IBM Tivoli Storage Manager Managed |System for SAN feature on the client workstation, you can use the following |options to enable LAN-Free data transfer: |
|See the IBM Tivoli Storage Manager for UNIX Backup-Archive Clients |Installation and User's Guide for more information about these |options.
|Use the include and exclude options to control |LAN-free data transfer, as follows: |
|Include statement: include.lanfree |/hsm1/clientdata/lanfree lanfreemgmtclass
|Exclude statement: exclude /hsm1/clientdata/*
|
|Attention: The HACMP environment is valid on AIX JFS file systems only.
The HSM client permits your HSM-managed file system to become a part of a resource group in an HACMP cluster so that if there is a system failure, you can obtain access to your data from another system. To set up space managment in an HACMP environment, each node in a cluster, willing to take over HSM-managed file systems, must specify a server stanza for every Tivoli Storage Manager server that your file systems use in a cluster that it might want to manage. Place this stanza in your dsm.sys file. You can use a server stanza for more than one file system.
Notes:
Across different nodes, the server stanza must have the following characteristics:
The HSM for HACMP also supports cascading and rotating takeover relationships in the same manner as the backup-archive client. The password handling is the same as that of the HACMP backup-archive client. The dsm.opt file and the dsm.sys file can reside in the standard /usr/tivoli folder, or you can use the DSM_CONFIG environment variable that you set in the start script. However, the behavior must be identical on all nodes.
Included here are the limitations of HSM support for the HACMP environment.
The HSM support for the HACMP environment is not completely integrated with the backup-archive client support for the HACMP environment. For example, the HSM client refers to the /etc/adsm/SpaceMan/config/dsmmigfstab file to determine which server to use for a file system. The server might contact a different server for each file system. In contrast, the backup-archive client determines which server to use from the dsm.opt file, the dsm.sys file, or from a parameter that you specify on the command line when you start a backup-archive command line client. A backup-archive client process might back up, archive, restore, or retrieve from one server. If you need backup-archive client services for different servers, start a new backup-archive client process.
The HSM GUI does not support HACMP commands. After you enter the dsmmigfs import command, run the dsmreconcile command for your file system to update the status file.
The following examples of scripts demonstrate how to start and stop HSM in an HACMP environment on an AIX file system. These scripts are only examples. You must create your own scripts for your environment.
Figure 2. start_HSM : A Sample Script That Starts the HSM and Imports all File Systems
+--------------------------------------------------------------------------------+ |#! /usr/bin/perl | |#------------------------------------------------------------------ | |# call with | |# start_HSM [filesystems] | |#------------------------------------------------------------------ | | | |my $LOG="/tmp/HSM.log"; # place of your logfile | | | |$ENV{"DSM_DIR"}="[your location of dsm.sys]"; | |$ENV{"DSM_CONFIG"}="[your location of option file]"; | |`echo "***************************************************" >> $LOG`; | |`echo "* Starting HSM *" >> $LOG`; | |`echo "***************************************************" >> $LOG`; | | | |`echo START \\\\t\\\\t \`date\` >> $LOG`; | |`echo \$DSM_DIR \$DSM_CONFIG >> $LOG`; | | | |# killing all running demons to reread the option files | |`echo "Killing dsmrecalld ..." >> $LOG`; | |`kill -15 \$(ps -aef|grep dsmrecalld |grep -v grep |awk '{print \$2}') | |2>&1 1>> $LOG`; | |`echo "Killing dsmmonitord ..." >> $LOG`; | |`kill -15 \$(ps -aef|grep dsmmonitord |grep -v grep |awk '{print \$2}') | |2>&1 1>> $LOG`; | |`echo "Killing dsmscoutd ..." >> $LOG`; | |`kill -15 \$(ps -aef|grep dsmscoutd |grep -v grep |awk '{print \$2}') | |2>&1 1>> $LOG`; | | | |# starting the demons with the right dsm.sys and dsm.opt | |`echo "Starting dsmmonitord ..." >> $LOG`; | |`echo \$DSM_DIR \$DSM_CONFIG >> $LOG; | |dsmmonitord 2>&1 1>> $LOG`; | |`echo "Starting dsmrecalld ..." >> $LOG`; | |`echo \$DSM_DIR \$DSM_CONFIG >> $LOG; dsmrecalld 2>&1 1>> $LOG`; | |`echo "Starting dsmscoutd ..." >> $LOG`; | |`echo \$DSM_DIR \$DSM_CONFIG >> $LOG; dsmscoutd 2>&1 1>> $LOG`; | | | |# transfer the command line into an array | |while(my $temp=shift @ARGV){ | | $FS[@FS]=$temp; | |} | | | |# import all filesystems | |`echo "Starting to import FS.." >> $LOG`; | |for(my $i=0; $i < @FS; $i++){ | | `dsmmigfs import $FS[$i] 2>&1 1>> $LOG`; | |} | | | |`echo "HSM is Started" >> $LOG`; | +--------------------------------------------------------------------------------+
Figure 3. stop_HSM : Stops HSM and Exports All File Systems
+--------------------------------------------------------------------------------+ |#! /usr/bin/perl | |#------------------------------------------------------------------ # | |call with | |# stop_HSM [filesystems] | |#------------------------------------------------------------------ | |my $LOG="/tmp/HSM.log"; # place of your logfile | | | |$ENV{"DSM_DIR"}="[your location of dsm.sys]"; | |$ENV{"DSM_CONFIG"}="[your location of option file]"; | |`echo "***************************************************" >> $LOG`; | |`echo "* Stoping HSM *" >> $LOG`; | |`echo "***************************************************" >> $LOG`; | | | |`echo STOP\\\\t\\\\t \`date\` >> $LOG`; | |`echo \$DSM_DIR \$DSM_CONFIG >> $LOG`; | | | |# before you can export the filesystems, you have to stop all demons | |`echo "Killing dsmrecalld ..." >> $LOG`; | |`kill -15 \$(ps -aef|grep dsmrecalld |grep -v grep |awk '{print \$2}') | |2>&1 1>> $LOG`; | |`echo "Killing dsmmonitord ..." >> $LOG`; | |`kill -15 \$(ps -aef|grep dsmmonitord |grep -v grep |awk '{print \$2}') | |2>&1 1>> $LOG`; | |`echo "Killing dsmscoutd ..." >> $LOG`; | |`kill -15 \$(ps -aef|grep dsmscoutd |grep -v grep |awk '{print \$2}') | |2>&1 1>> $LOG`; | | | |# transfer the command line into an array | |while(my $temp=shift @ARGV){ | | $FS[@FS]=$temp; | |} | | | |# to export the filesystems, you have to stop all processes using this filesyste| |`echo "Killing the rest ..." >> $LOG`; | |for(my $i=0; $i < @FS; $i++){ | | @PROCS=split (" ",`fuser -c $FS[$i] 2>/dev/null`); | | while(my $PROC=shift @PROCS){ | | $PROC=~s/c//g; | | `kill -9 $PROC 2>&1 1>> $LOG`; | | } | |} | | | |# now you can export the filesystems | |`echo "Starting to export FS.." >> $LOG`; | |for(my $i=0; $i < @FS; $i++){ | | `dsmmigfs export $FS[$i] 2>&1 1>> $LOG`; | | } | |`echo "HSM is stopped" >> $LOG`; | +--------------------------------------------------------------------------------+
|The HSM client permits your HSM-managed file system to become a part of a |resource group in a resource group in the cluster so that if there is a system |failure, you can obtain access to your data from another system. To set |up space managment in an IBM Cluster 1350 environment, each node in a cluster, |willing to take over HSM-managed file systems, must specify a server stanza |for every Tivoli Storage Manager server that your file systems use in a |cluster that it might want to manage. Place this stanza in your |dsm.sys file. You can use a server stanza for more than one file |system.
|For more information about the IBM Cluster 1350 environment for Linux, see |IBM Redbook Linux Clustering with CMS and GPFS, SG24-6601 for more |information:
|http://www.redbooks.ibm.com/redbooks/pdfs/sg246601.pdf
|Across different nodes, the server stanza must have the following |characteristics: |
|The HSM for IBM Cluster 1350 also supports cascading and rotating takeover |relationships in the same manner as the backup-archive client. The |dsm.opt file and the dsm.sys file can reside in the standard |/opt/tivoli folder, or you can use the DSM_CONFIG environment |variable that you set in the start script. However, the behavior must |be identical on all nodes.
| |Included here are the limitations of HSM support for the IBM Cluster 1350 |environment. |
|The HSM support for the IBM Cluster 1350 environment is not completely |integrated with the backup-archive client support for the IBM Cluster 1350 |environment. For example, the HSM client refers to the |/etc/adsm/SpaceMan/config/dsmmigfstab file to determine which |server to use for a file system. The server might contact a different |server for each file system. In contrast, the backup-archive client |determines which server to use from the dsm.opt file, the |dsm.sys file, or from a parameter that you specify on the command line |when you start a backup-archive command line client. A backup-archive |client process might back up, archive, restore, or retrieve from one |server. If you need backup-archive client services for different |servers, start a new backup-archive client process.
|The HSM GUI does not support IBM Cluster 1350 commands. After you |enter the dsmmigfs import command, run the |dsmreconcile command for your file system to update the status |file.
|The following examples of scripts demonstrate how to start and stop HSM in |IBM Cluster 1350 environment on a Linux86 GPFS file system. These |scripts are only examples. You must create your own scripts for your |environment.
|Figure 4. start_HSM : A Sample Script That Starts the HSM and Imports all File Systems
|+--------------------------------------------------------------------------------+ ||#! /usr/bin/perl | ||#------------------------------------------------------------------ | ||# call with | ||# start_HSM [filesystems] | ||#------------------------------------------------------------------ | || | ||my $LOG="/tmp/HSM.log"; # place of your logfile | || | ||$ENV{"DSM_DIR"}="[your location of dsm.sys]"; | ||$ENV{"DSM_CONFIG"}="[your location of option file]"; | ||`echo "***************************************************" >> $LOG`; | ||`echo "* Starting HSM *" >> $LOG`; | ||`echo "***************************************************" >> $LOG`; | || | ||`echo START \\\\t\\\\t \`date\` >> $LOG`; | ||`echo \$DSM_DIR \$DSM_CONFIG >> $LOG`; | || | ||# killing all running demons to reread the option files | ||`echo "Killing dsmrecalld ..." >> $LOG`; | ||`kill -15 \$(ps -aef|grep dsmrecalld |grep -v grep |awk '{print \$2}') | ||2>&1 1>> $LOG`; | ||`echo "Killing dsmmonitord ..." >> $LOG`; | ||`kill -15 \$(ps -aef|grep dsmmonitord |grep -v grep |awk '{print \$2}') | ||2>&1 1>> $LOG`; | ||`echo "Killing dsmscoutd ..." >> $LOG`; | ||`kill -15 \$(ps -aef|grep dsmscoutd |grep -v grep |awk '{print \$2}') | ||2>&1 1>> $LOG`; | || | ||# starting the demons with the right dsm.sys and dsm.opt | ||`echo "Starting dsmmonitord ..." >> $LOG`; | ||`echo \$DSM_DIR \$DSM_CONFIG >> $LOG; | ||dsmmonitord 2>&1 1>> $LOG`; | ||`echo "Starting dsmrecalld ..." >> $LOG`; | ||`echo \$DSM_DIR \$DSM_CONFIG >> $LOG; dsmrecalld 2>&1 1>> $LOG`; | ||`echo "Starting dsmscoutd ..." >> $LOG`; | ||`echo \$DSM_DIR \$DSM_CONFIG >> $LOG; dsmscoutd 2>&1 1>> $LOG`; | || | ||# transfer the command line into an array | ||while(my $temp=shift @ARGV){ | || $FS[@FS]=$temp; | ||} | || | ||# import all filesystems | ||`echo "Starting to import FS.." >> $LOG`; | ||for(my $i=0; $i < @FS; $i++){ | || `dsmmigfs import $FS[$i] 2>&1 1>> $LOG`; | ||} | || | ||`echo "HSM is Started" >> $LOG`; | |+--------------------------------------------------------------------------------+
|Figure 5. stop_HSM : Stops HSM and Exports All File Systems
|+--------------------------------------------------------------------------------+ ||#! /usr/bin/perl | ||#------------------------------------------------------------------ # | ||call with | ||# stop_HSM [filesystems] | ||#------------------------------------------------------------------ | ||my $LOG="/tmp/HSM.log"; # place of your logfile | || | ||$ENV{"DSM_DIR"}="[your location of dsm.sys]"; | ||$ENV{"DSM_CONFIG"}="[your location of option file]"; | ||`echo "***************************************************" >> $LOG`; | ||`echo "* Stoping HSM *" >> $LOG`; | ||`echo "***************************************************" >> $LOG`; | || | ||`echo STOP\\\\t\\\\t \`date\` >> $LOG`; | ||`echo \$DSM_DIR \$DSM_CONFIG >> $LOG`; | || | ||# before you can export the filesystems, you have to stop all demons | ||`echo "Killing dsmrecalld ..." >> $LOG`; | ||`kill -15 \$(ps -aef|grep dsmrecalld |grep -v grep |awk '{print \$2}') | ||2>&1 1>> $LOG`; | ||`echo "Killing dsmmonitord ..." >> $LOG`; | ||`kill -15 \$(ps -aef|grep dsmmonitord |grep -v grep |awk '{print \$2}') | ||2>&1 1>> $LOG`; | ||`echo "Killing dsmscoutd ..." >> $LOG`; | ||`kill -15 \$(ps -aef|grep dsmscoutd |grep -v grep |awk '{print \$2}') | ||2>&1 1>> $LOG`; | || | ||# transfer the command line into an array | ||while(my $temp=shift @ARGV){ | || $FS[@FS]=$temp; | ||} | || | ||# to export the filesystems, you have to stop all processes using this filesyste| ||`echo "Killing the rest ..." >> $LOG`; | ||for(my $i=0; $i < @FS; $i++){ | || @PROCS=split (" ",`fuser -c $FS[$i] 2>/dev/null`); | || while(my $PROC=shift @PROCS){ | || $PROC=~s/c//g; | || `kill -9 $PROC 2>&1 1>> $LOG`; | || } | ||} | || | ||# now you can export the filesystems | ||`echo "Starting to export FS.." >> $LOG`; | ||for(my $i=0; $i < @FS; $i++){ | || `dsmmigfs export $FS[$i] 2>&1 1>> $LOG`; | || } | ||`echo "HSM is stopped" >> $LOG`; | |+--------------------------------------------------------------------------------+