dsmISI¶
Components¶
dsmISI consists of a daemon that handles NFS based access from a server to Isilon storage clusters as well as tools to manage and check these aspects.
dsmISI directories¶
The following directories are used by dsmISI:
Configuration |
/etc/dsmisi |
Logging |
/var/dsmisi/logs |
Internal |
/var/dsmisi/flags |
Executables |
/opt/generalstorage/dsmisi/bin |
Prerequisites¶
dsmISI must be installed on each system hosting the ISP server(s) which has access to Isilon storage it is managing. The platform must fulfil the following requirements:
IBM Spectrum Protect (TSM) Server Extended Edition for IBM AIX Version 7.1 or later or
IBM Spectrum Protect (TSM) Server Extended Edition for Oracle Solaris Version 7.1 or later or
IBM Spectrum Protect (TSM) Server Extended Edition for Linux Version 7.1 or later
NFS Client Version 3
IPv4 Connection between the operating system hosting the ISP server and the EMC Isilon cluster(s)
Secure Shell (ssh)
EMC Isilon OneFS
For details regarding the exact specifications, versions, patch levels etc. for the operating system environment required, please refer to IBM’s overview of supported operating systems and EMC’s Isilon specifications.
EMC OneFS should be set up for optimizing streaming performance before accessing it with ISP and dsmISI. Performance is out of scope of this document, but the streaming setting is crucial:
isi get /ifs/mydirectory/myfile
isi set –l streaming /ifs/mydirectory/myfile
It can only be changed later by moving the existing data again.
- dsmISI furthermore requires:
500 MB or free disk space (/var, /opt)
128 MB of physical memory
Attention
If you are planning to use the Snapshot capabilities of dsmISI, make sure that your ISILON cluster has the “SnapshotIQ” software licenses activated. Else, you will not be able to take Snapshots!
Planning¶
The following planning sheet describes the options needed to configure dsmISI. Be aware that there are stanzas for ISP server instances and stanzas for EMC ISILON cluster. Some settings can be defined globally but also per instance.
Information |
Example Value |
Note |
---|---|---|
ISILON IP POOL |
subnet0:data1-pool |
IP Address Range or Symbolic Name of the Isilon Cluster(s) data network interfaces. Make sure the Isilon cluster is accessible from your ISP server. Note that most Isilon installations distinguish between management interfaces, used for i.e., administration and monitoring, and data interfaces meant to transfer data. It is possible to configure the system zone for management. dsmISI reads out the IP addresses automatically from the pool definition. The pool definition includes the subnet. |
ISILON Management IP |
isilon01-mgmt.myorg.com |
IP Address Range or Symbolic Name of the Isilon Cluster(s) management interface. If data (see above) and management interfaces are identical, make sure that login via SSH is enabled on the data interfaces of your Isilon cluster. |
ISILON Management User |
dsmisi,root |
ISILON user for dsmISI ssh access. The user needs certain user rights to work for dsmISI. In case a nonroot account is created a role hast be created on ISILON accordingly |
ISP Server User/Group |
tsm1usr:tsm1grp |
ISP server user and group information for all ISP. In order to provide access to data on an Isilon, dsmISI will have to make sure that individual ISP servers are given servers running on this machine correct permissions on directories. |
ISILON Mount Directory |
/isi,/isilon |
One empty, local directory per Isilon cluster. For each Isilon Cluster, one directory is required in which dsmISI will mount individual nodes via NFS. If this directory does not exist, dsmisi will create it adding the Isilon name as a subdirectory. |
ISILON DEVC Path Prefix |
/ifs,/ISILON |
Directory under which dsmISI creates the directory structure on the local server. Within this directory, dsmISI will provide a path to each Isilon cluster. The cluster name and ISP server name is added to the PATH by dsmISI. Path: <ServerDirPrefix> /<ServerName>/<IsiName>/ <ServerDirSuffix>. See DEVC Custom Path below, if you do not want to use the standard format. |
ISILON DEVC Path Suffix |
sf,FILEDEV |
Directory name for the ISP device class. This is the directory name on ISILON which can then be used as a target directory in individual device class definitions. It is reachable on the local server under the Prefix Path: <ServerDirPrefix> /<ServerName>/<IsiName>/ <ServerDirSuffix>. See DEVC Custom Path below, if you do not want to use the standard format. |
ISILON DEVC Custom Path |
/custom/path/ISP1/ISI1 |
The complete path for the ISP device class. This replaces the standard format using Prefix and Suffix. This is the complete path to the directory, which will be used in the ISP(TSM) device class configuration. This can be used instead of the standard format using Prefix and Suffix. ISP instance and ISILON name can be provided as variables. |
ISILON Export Directory |
isilon01:/ifs/tsm |
This is the exported directory for ISP from the ISILON. Isilon file systems usually root in /ifs. It is customary to create one directory underneath that parent in order to identify the underlying content as belonging to ISP. dsmISI will create subdirectories for the ISP server instances beneath this path. |
Installation¶
Once the planning sheet has been completed, copy the dsmISI installation package for your platform to your ISP server machine and install dsmISI from the same directory by issuing the following command as root user:
AIX:
installp -aX –d . dsmisi-3.x.x.x-x.bff
Solaris:
pkgadd –d dsmisi-3.x.x.x-x.pkg
RHEL:
yum install dsmisi-3.x.x.x-x.x86_64.rpm
SLES:
zypper install dsmisi-3.x.x.x-x.x86_64.rpm
other Linux:
rpm -ivh dsmisi-3.x.x.x-x.x86_64.rpm
Add dsmISI as service¶
In order to easily start and stop dsmISI and allow automatic start during reboot, dsmISI should be added to the system as a service. Before you start dsmISI the configuration needs to be completed.
For AIX use the setup script to add dsmISI to the resource controller:
bash-4.2# /opt/generalstorage/dsmisi/bin/dsmisisetup.aix
dsmisi, version 3.2.1.4 powerpc (4342233221007)
Copyright (C) 2022 General Storage Software GmbH
Setup - Execute after installing dsmisi fileset
WARNING: This will stop the running dsmisi subsystem!
Hit ENTER to continue or CTRL C to cancel.
0513-071 The dsmisi Subsystem has been added.
The lssrc
command shows the status of the dsmisi subsystem:
bash-4.2# lssrc -s dsmisi
Subsystem Group PID Status
dsmisi dsmisi inoperative
To start it, use the startsrc
command:
bash-4.2# startsrc -s dsmisi
0513-059 The dsmisi Subsystem has been started. Subsystem PID is 6881432.
Linux with Systemd:
sles-01:~ # cp /opt/generalstorage/dsmisi/bin/dsmisi.service /etc/systemd/system/
sles-01:~ # cat /etc/systemd/system/dsmisi.service
[Unit]
Description=Start dsmisi
Wants=network-online.target
After=network-online.target
[Service]
Type=forking
ExecStart=/bin/sh -c '/opt/generalstorage/dsmisi/bin/dsmisi -daemon >/dev/null 2>&1 &'
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
sles-01:~ # systemctl enable dsmisi
Created symlink from /etc/systemd/system/multi-user.target.wants/dsmisi.service to /etc/systemd/system/dsmisi.service.
sles-01:~ # systemctl start dsmisi
sles-01:~ # systemctl status dsmisi
* dsmisi.service - Start dsmisi
Loaded: loaded (/etc/systemd/system/dsmisi.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2022-02-21 11:36:26 CET; 4s ago
Process: 19096 ExecStart=/bin/sh -c /opt/generalstorage/dsmisi/bin/dsmisi -daemon >/dev/null 2>&1 & (code=exited, status=0/SUCCESS)
Main PID: 19097 (dsmisi)
Tasks: 2 (limit: 512)
Memory: 1.3M
CPU: 47ms
CGroup: /system.slice/dsmisi.service
├─19097 /opt/generalstorage/dsmisi/bin/dsmisi -daemon
└─19129 ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o BatchMode=yes -q -T dsmisi@192.168.178.240
Feb 21 11:36:26 sles-01 systemd[1]: Starting Start dsmisi...
Feb 21 11:36:26 sles-01 systemd[1]: Started Start dsmisi.
First steps after installation¶
Once installation has finished, all configuration regarding managed Isilon clusters and ISP servers is controlled via the dsmisi.conf options file.
This file is located in /etc/dsmisi.
The installation procedure places a sample options file in /etc/dsmisi/samples. You may copy this sample file to /etc/dsmisi/dsmisi.conf and edit it accordingly.
The dsmisi daemon will read dsmisi.conf only when starting or re-starting. Keep that in mind when making changes to dsmisi.conf.
Uninstallation¶
In order to remove dsmISI from your computer, stop dsmisi and issue the following commands as root user:
AIX:
installp –u dsmisi
Solaris:
pkgrm dsmisi
RHEL:
yum remove dsmisi-3.x.x.x-x
SLES:
zypper remove dsmisi-3.x.x.x-x
other Linux:
rpm –e dsmisi-3.x.x.x-x
Configuration¶
The options file is structured similarly to ISP’s dsm.sys file on Unix based operating systems. First there are global settings in the file and then for each Isilon cluster controlled by dsmisi and for each ISP server, a separate stanza must be created within the dsmisi.conf options file.
The beginning of any stanza describing options for an Isilon cluster is marked by an entry beginning with the keyword IsiName, while a stanza containing options for a ISP server instance is made by the keyword ServerName.
Any option will be interpreted as belonging to the stanza introduced by the preview IsiName or ServerName. In case the same option is found more than once within the same stanza, the last option value will be used and any previously defined option in the same stanza will be ignored.
If a stanza is identified more than once, it will be treated as a single stanza with the rules regarding duplicate option entries applying as if all options were found in the same stanza.
Global Options¶
The first options before the first IsiName or ServerName stanza are global options. Some like the loglevel are only used here, while others like the IsilonUser can be set globally, but also per Isilon stanza.
FileLogLevel¶
Defines the logging level for the log file /var/dsmisi/logs/dsmisi.log
Values: Debug, Info, Notice, Warning, Error
Examples:
FileLogLevel Notice
SysLogLevel¶
Defines the logging level for the syslog. Currently only supported for AIX.
Values: Debug, Info, Notice, Warning, Error
Examples:
SysLogLevel Notice
ConnectTimeout¶
This is the global setting to define the connection timeout for the communication with ISILON. There is also an ISILON option. This option will be overwritten by ISILON stanza options
Examples:
ConnectionTimeout 60
IsilonSnapProxy¶
This option defines whether this dsmisi client is used to generate snapshots on the configured ISILON clusters. This is the global option which can be overwritten by IsiSnapProxy.
Values: Yes/No
Examples:
IsilonSnapProxy yes
IdleTime¶
This option defines the waiting time before the daemon executes a status check, creates snapshots, etc. in seconds. Default is 300.
Values: A setting between 10 and 300 should be used.
Examples:
IdleTime 30
User¶
Defines the user which will be used to run dsmisi commands when it is running as a daemon. If none is specified, the daemon will run as root.
Values: Any valid system user name
Examples:
User dsmisi
IsilonUser¶
Defines the ISILON system user which will be used for ssh communication. This is the global setting and can be overwritten in ISILON stanzas by IsiUser.
Values: Any user name
Examples:
IsilonUser dsmisi
IsilonExport¶
In case there is a common directory exported from ISILON for ISP it can be set here globally.
Values: The exported directory (full path on ISILON)
Examples:
IsilonExport /ifs/ISP
IsilonZonePaths¶
This option specifies the “/ifs” path all configured ISILON clusters which dsmISI clients using IsiDataIp can access. This is the global option which will be overwritten by the cluster specific IsiZonePaths option.
Values: Any valid ISILON path
Examples:
IsiZonePaths /ifs/ORA/PROD/hostname
IsilonMount¶
This defines the overall behaviour when issuing dsmisi mount
/dsmisi umount
without a specific cluster as a parameter or when starting the dsmisi service.
Values:
true
(default) - Clusters will be mounted with dsmisi mount or when starting the service and will be unmounted when issuing dsmisi umount.
false
- Clusters will not be mounted with dsmisi mount or when starting the service and will not be unmounted when issuing dsmisi umount.
automatic
- Clusters will be mounted when starting the service but will not be mounted/unmounted when issuing dsmisi mount/dsmisi umount without a specific cluster as a parameter.
Examples:
IsilonMount Automatic
MountArgs¶
This option can be used to change the mount option for the ISILON mounts. This could be used to disable “sync” to enable filesystem caching.
Values: Use specific options NfsRsize and NfsWsize for changing mount option rsize and/or wsize.
Examples:
MountArgs rw,sync,hard,proto=tcp,timeo=50,retrans=2,intr,nfsvers=3,actimeo=0
NfsRsize¶
If the rsize mount option needs to be changed, this dsmisi option should be used.
Values: Use value which is supported by OS
Examples:
NfsRsize 1048576
NfsWSize¶
If the wsize mount option needs to be changed, this dsmISI option should be used.
Values: Use value which is supported by OS
Examples:
NfsWsize 1048576
ClaimWeight¶
Before dsmISI changes the current node for a ISP instance it will “claim” this node. This is claim is weighted. By changing this value, a higher single stream is represented by a claim. Default is 120 MB/s.
Values: Value should be chosen between 50 and 200.
Examples:
SysLogLevel Notice
Isilon Cluster Options¶
After the global settings, the stanzas for ISILON clusters follow. Each stanza is recognized by the IsIName option and then followed by the options set for this cluster.
IsiName¶
Name of the Isilon cluster in a dsmISI context. This name does not have to correlate to the Isilon DNS name, although keeping names for entities consistent may help to avoid confusion. This option begins a new stanza containing all options relevant to a specific Isilon cluster.
Values: Must be at least 4 and at most 32 characters in length (a-z, A-Z, 0-9, -, _, .)
Examples:
IsiName isilon01
IsiName isilon.location1
isiname isilon.location2
IsiMgmtIp¶
IP Name or Address over which any of the Isilon cluster may be reached for the purpose of management and administration. Isilon offers the possibility of defining various address ranges which are shared among nodes for data and/or management access. The IsiMgmtIp option must define an address or network name over which administrative access via SSH is possible. A second management address can be added separated by comma.
Values: Must be a specific IP Address or accessible network name
Examples:
IsiMgmtIp 192.168.1.50
IsiMgmtIp isilon01-mgmt.myorg.com
IsiDataIp¶
One or more IP Addresses over which the ISILON cluster can be reached for mounting. Addresses must be comma-separated. If a proxy dsmISI client is configured, dsmISI will detect all additional IPs in the corresponding network pool. See IsiZonePaths.
Values: Must be one or more reachable IP Addresses for the specified ISILON cluster.
Examples:
IsiDataIp 192.168.1.50
IsiIpPool¶
ISILON manages IP addresses in IP pools. Add the IP pool name here which is configured for ISP data access. It is recommended only use a single IP address per node in this IP pool as ISP and dsmISI do not benefit of many IP addresses per node. dsmISI will use the information for preparing the NFS mounts.
Values: Must be a configured IP Pool Important: Beginning with dsmisi v3 the subnet must be included in the setting!
Examples:
IsiIpPool subnet1:pool-data
isi001-1#isi network list ifaces –w
Interface Status Membership Addresses
--------------- ----------- ------------------------- ------------------------------
1:10gige-1 up
1:10gige-2 up
1:10gige-agg-1 up subnet1:pool-data 192.168.100.100
1:ext-1 up subnet0:pool-mgt 192.168.101.100
1:ext-2 up
2:10gige-1 up
2:10gige-2 up
2:10gige-agg-1 up subnet1:pool-data 192.168.100.101
2:ext-1 up 2:ext-2 up
2:ext-agg up subnet0:pool-mgt 192.168.101.101
3:10gige-1 up
3:10gige-2 up
3:10gige-agg-1 up subnet1:pool-data 192.168.100.102
3:ext-1 up
3:ext-2 up
3:ext-agg up subnet0:pool-mgt 192.168.101.102
4:10gige-1 up
4:10gige-2 up
4:10gige-agg-1 up subnet1:pool-data 192.168.100.103
4:ext-1 up
4:ext-2 up
4:ext-agg up subnet0:pool-mgt 192.168.101.103
IsiMntRootDir¶
A local directory which must exist, and be owned by the system’s root user. dsmISI will create a new NFS mount for each node of the Isilon cluster in question within this directory.
If you are accessing more than one Isilon clusters, it is strongly advised to use different IsiMntRootDir directories for each Isilon cluster on each server.
Values: All restrictions regarding directory names on the platform dsmISI is running on in your environment do apply.
Examples:
IsiMntRootDir /isilon01
IsiMntRootDir /root/first-isilon
IsiConnectionTimeout¶
This is the setting to define the connection timeout for the communication with ISILON.
Values: Value in seconds
Examples:
IsiConnectionTimeout 30
IsiUser¶
Defines the ISILON user for ssh communication with a specific cluster.
Values: Any valid ISILON cluster user name
Examples:
IsiUser dsmisi
IsiExport¶
If no common path is exported this ISILON specific setting can be used instead of the global setting IsilonExport. This overwrites the global setting.
Values: Any valid ISILON export path
Examples:
IsiExport /ifs/isilon001
IsiSnapProxy¶
This option defines whether this ISILON cluster will be processed when executing the dsmisi createsnaps command. This is the cluster specific option which will overwrite the global IsilonSnapProxy option.
Values: Yes/No
Examples:
IsiSnapProxy yes
IsiZonePaths¶
This option specifies the “/ifs” path on the ISILON cluster which dsmISI clients using IsiDataIp will be accessing. This is the cluster specific option which will overwrite the global IsilonZonePaths option.
Values: Any valid ISILON path
Examples:
IsiZonePaths /ifs/ORA/PROD/hostname
IsiMount¶
This defines the specific behaviour of this ISILON cluster when issuing dsmisi mount
/dsmisi umount
without a parameter or when starting the dsmisi service.
Values:
true
(default) - This cluster will be mounted with dsmisi mount or when starting the service and will be unmounted when issuing dsmisi umount.
false
- This cluster will not be mounted with dsmisi mount or when starting the service and will not be unmounted when issuing dsmisi umount.
automatic
- This cluster will be mounted when starting the service but will not be mounted/unmounted when issuing dsmisi mount/dsmisi umount without a specific cluster as a parameter.
Examples:
IsiMount Automatic
ISP Server Options¶
Once you configured all Isilon clusters in your dsmisi.conf file, you must configure the ISP server instances which have to access these clusters. The following options must be provided for each ISP server instance.
ServerName¶
Name of the ISP server instance The ServerName does not have to correspond with the real name of the ISP server instance in question. However, in order to avoid confusion, it is recommended to keep instance names consistent across ISP and dsmISI.
Values: Must be at least 4 and at most 32 characters in length (a-z, A-Z, 0-9, -, _, .)
Examples:
ServerName server01
ServerName tsm01.location2
ServerName tsm_server_central
ServerUsrGrp¶
User and group in which context the ISP server instance is running. In UNIX environments, this usually is a specific user and group exclusively used for an instance.
Values: Must be a valid group name
Examples:
ServerUsrGrp tsm1usr:tsm1grp
ServerUsrGrp tsm2usr:tsm2grp
ServerDirPrefix¶
For each ISP server instance, which will place data on an ISILON cluster, there must be a local path through which the ISILON can be accessed. This is the directory path, which is used in the ISP server device class. This directory path consists out of the following:
<ServerDirPrefix>/<ServerName>/<IsiName>/<ServerDirSuffix>
This directory directly leads to the file system on the ISILON cluster, where a corresponding path is also created, if IsiUser is root, otherwise the IsiUser would need the right to create directories or change ownership.
<IsiExport>/<ServerName>/<ServerDirSuffix>
Values: All restrictions regarding directory names on the platform dsmISI is running on in your environment do pertain.
Examples:
ServerDirPrefix /tsm
ServerDirPrefix /tsm/FILE
ServerDirSuffix¶
For each ISP server instance, which will place data on an ISILON cluster, there must be a local path through which the ISILON can be accessed. This is the directory path, that is used in the ISP server device class. This directory path consists out of the following:
<ServerDirPrefix>/<ServerName>/<IsiName>/<ServerDirSuffix>
This directory directly leads to the file system on the ISILON cluster, where a corresponding path is also created, if IsiUser is root, otherwise the IsiUser would need the right to create directories or change ownership.
<IsiExport>/<ServerName>/<ServerDirSuffix>
Values: All restrictions regarding directory names on the platform dsmISI is running on in your environment do pertain. Be aware that certain user rights on ISILON paths cannot automatically be changed by dsmISI when you chose to use a non-root user as “IsiUser”.
Examples:
ServerDirSuffix sf
ServerDirSuffix FILEDEV
ServerDirFormat¶
The default server directory naming is based on the options ServerDirSuffix and ServerDirPrefix). If a more flexible naming is required, the ServerDirFormat can be used. The ISP server name and the ISILON name can be placed by using variables %TSM% and %ISI%.
Examples:
ServerName ISP1
ServerUsrGrp tsm1usr:tsm1grp
# ServerDirPrefix /tsm
# ServerDirSuffix sf
IsiClusterList CLUSTER-01,CLUSTER-02
ServerDirFormat /tsm/%TSM%/sf/sfisi/%ISI%
IsiClusterList¶
For each ISP server instance the relevant ISILON clusters needed to be defined. With comma separation more than one ISILON cluster can be configured.
Values: All restrictions regarding directory names on the platform dsmISI is running on in your environment do pertain. Be aware, certain user rights on ISILON paths cannot automatically be changed by dsmISI when you chose to use a non-root user as “IsiUser”.
Examples:
IsiClusterList isilon001 IsiClusterList isi_siteA,isi_siteB
dsmISI Preload Library¶
dsmISI can activate an enhanced load balancing as a preload library for usage with the Spectrum Protect (TSM) server.
The preload library is activated during Spectrum Protect server startup. The following examples show the commands, which need to be added to the startup script. Be aware, that in case you are using the standard rc.dsmserv script, which is part of the Spectrum Protect installation package, the changes will be overwritten with a Spectrum Protect server update.
This is the original rc.dsmserv part, which needs to be changed:
if [ "$OS" = "AIX" ]; then
if [ "$instanceUser" != "" ]; then
exec su - $instanceUser -c "LDR_CNTRL=TEXTPSIZE=64K@DATAPSIZE=64K@STACKPSIZE=64K@SHMPSIZE=64K $serverBinDir/dsmserv $cmdParms"
else
exec /usr/bin/env LDR_CNTRL=TEXTPSIZE=64K@DATAPSIZE=64K@STACKPSIZE=64K@SHMPSIZE=64K $serverBinDir/dsmserv $cmdParms
fi
else
if [ "$instanceUser" != "" ]; then
exec su - $instanceUser -c "$serverBinDir/dsmserv $cmdParms"
else
exec $serverBinDir/dsmserv $cmdParms
fi
fi
Example Linux¶
The Spectrum Protect configuration directory is in this case /isp/TSM143/cfg:
cp -p /opt/generalstorage/dsmisi/bin/dsmgsio.so /isp/TSM143/cfg/dsmgsio.so
if [ "$OS" = "AIX" ]; then
if [ "$instanceUser" != "" ]; then
exec su - $instanceUser -c "LDR_CNTRL=TEXTPSIZE=64K@DATAPSIZE=64K@STACKPSIZE=64K@SHMPSIZE=64K $serverBinDir/dsmserv $cmdParms"
else
exec /usr/bin/env LDR_CNTRL=TEXTPSIZE=64K@DATAPSIZE=64K@STACKPSIZE=64K@SHMPSIZE=64K LD_PRELOAD=/isp/TSM143/cfg/dsmgsio.so $serverBinDir/dsmserv $cmdParms
fi
else
if [ "$instanceUser" != "" ]; then
exec su - $instanceUser -c "$serverBinDir/dsmserv $cmdParms"
else
exec $serverBinDir/dsmserv $cmdParms
fi
fi
Example AIX¶
The Spectrum Protect configuration directory is in this case /isp/AIX1/cfg:
cp -p /opt/generalstorage/dsmisi/bin/dsmgsio.so /isp/TSM143/cfg/dsmgsio.so
if [ "$OS" = "AIX" ]; then
if [ "$instanceUser" != "" ]; then
exec su - $instanceUser -c "LDR_CNTRL=TEXTPSIZE=64K@DATAPSIZE=64K@STACKPSIZE=64K@SHMPSIZE=64K LD_PRELOAD=/isp/TSMAIX1/cfg/dsmgsio.so $serverBinDir/dsmserv $cmdParms"
else
exec /usr/bin/env LDR_CNTRL=TEXTPSIZE=64K@DATAPSIZE=64K@STACKPSIZE=64K@SHMPSIZE=64K $serverBinDir/dsmserv $cmdParms
fi
else
if [ "$instanceUser" != "" ]; then
exec su - $instanceUser -c "$serverBinDir/dsmserv $cmdParms"
else
exec $serverBinDir/dsmserv $cmdParms
fi
fi
Example Cluster: GSCC¶
This is the configuration file for the preload library in GSCC:
linux1# cat /isp/TSM143/cfg/isp.conf
cp -p /opt/generalstorage/dsmisi/bin/dsmgsio.so /isp/TSM143/cfg/dsmgsio.so
TSMARGS="LD_PRELOAD=/isp/TSM143/cfg/dsmgsio.so"
Status Check¶
After the Spectrum Protect server restart, the correct activation can be verified with the status command using the –s parameter:
linux1# /opt/generalstorage/dsmisi/bin/dsmisi status –s
dsmisi, version 3.0.2.4 (301101417668)
Copyright (C) 2017 General Storage Software GmbH
0001: /isi/laclust801/0001 mounted.
0002: /isi/laclust801/0002 mounted.
0003: /isi/laclust801/0003 mounted.
I/O Server TSM143.
Cluster laclust801,3 file path /isp/TSM143/TSM143/laclust801/file active.
I/O server dsmgsio inactive
After activation the output changes:
root@lax10 logs]# /opt/generalstorage/dsmisi/bin/dsmisi status –s
dsmisi, version 3.0.2.4 (301101417668)
Copyright (C) 2017 General Storage Software GmbH
0001: /isi/laclust801/0001 mounted.
0002: /isi/laclust801/0002 mounted.
0003: /isi/laclust801/0003 mounted.
I/O Server TSM143.
Cluster laclust801,3 file path /isp/TSM143/TSM143/laclust801/file active.
I/O server dsmgsio available.
I/O Path 0: /isp/TSM143/TSM143/laclust801/file/ -> /isi/laclust801/0002/TSM143/file(3).
dsmISI Update with Preload Library¶
Be aware, that with activated preload library a dsmISI update requires a SP server restart to update the library. However, the software package can be updated independent of library activation. As each instance is using a dedicated copy of the library, the activation can be scheduled for a later time.
Check the readme of the update if reloading of the library is required at all.
Example Scenarios¶
Scenario: Implementing dsmISI for ISP¶
The following example will describe a deployment scenario for the setup steps of dsmISI. In this example, the following input is used:
SLES 11 server for TSM called linux01.
One TSM server instance called tsminst01.
The TSM instance runs under the user tsm1, which belongs to the user group tsm1.
On the TSM server and the ISILON, we use a specific “dsmisi” user.
There is one ISILON cluster with 4 nodes which has already been installed. Its name is isilon01 and is configured with separate data and management interfaces. Management interfaces are isilon01-01-mgt,isilon01-02-mgt,isilon01-03-mgt,isilon01-04-mgt.
The exported directory on ISILON is planned to be /ifs/TSM.
The mounts should be created beneath the /isi directory.
The TSM device class root directory is planned to be /tsm.
The TSM device class directory name is planned to be SF for sequential file.
Step 1: Establish SSH connection with ISILON¶
The ssh connection is needed on each server running a TSM instance with ISILON access. This should be done as a specific user. On the ISILON, we create a new user and a corresponding role. For this task, an administrative user is needed.
Login to the machine hosting your ISP server as your specific dsmisi user.
Create a new key-pair for SSH by issuing:
dsmisi@linux01:~> ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/dsmisi/.ssh/id_rsa):
Created directory '/home/dsmisi/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/dsmisi/.ssh/id_rsa.
Your public key has been saved in /home/dsmisi/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:mEiA22KXRrf+XlY6ZEuYXRu35fcTZlEOI/mIaRLg1O8 dsmisi@linux01
The key's randomart image is:
+---[RSA 2048]----+
| .. oo ..o .|
|. o + o .. +.|
| o. + o o = + o.|
|o..= o o= * = = .|
|..o o ooSO o . =.|
| . + E o +|
| . * ..|
| .o . .|
| .. |
+----[SHA256]-----+
Login to the ISILON as root and create the dsmisi user and role, if not done already:
isilon01-1# isi auth users create --password-expires no dsmisi
isilon01-1# isi auth users list
Name
-------------
Root
admin
compadmin
ftp
www
Nobody
insightiq
Remotesupport
Guest
dsmisi
-------------
Total: 10
isilon01-1# isi auth roles create --name=dsmisi
isilon01-1# isi auth roles modify --role=dsmisi --add-priv=ISI_PRIV_LOGIN_PAPI,ISI_PRIV_LOGIN_SSH,ISI_PRIV_CLUSTER,ISI_PRIV_NETWORK,ISI_PRIV_STATISTICS
isilon01-2# isi auth roles list
Name
-------------
AuditAdmin
BackupAdmin
SecurityAdmin
SystemAdmin
VMwareAdmin
dsmisi
-------------
Total: 6
isilon01-2# isi auth roles privileges list dsmisi
ID
-------------------
ISI_PRIV_LOGIN_PAPI
ISI_PRIV_LOGIN_SSH
ISI_PRIV_CLUSTER
ISI_PRIV_NETWORK
ISI_PRIV_STATISTICS
-------------------
Total: 5
isilon01-2# isi auth roles modify dsmisi --add-user dsmisi
isilon01-2# isi auth roles members list dsmisi
Type Name
------------
user dsmisi
------------
Total: 1
When the dsmISI user was added you can add the public key of the ISP server’s root user we created earlier to its authorized_keys file:
dsmisi@linux01:~> cd
dsmisi@linux01:~> cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLEmrN/5PbbPpb+ssCSfElF2jH6F31oJVYI9Bk2Dg2x+7t44xC28GGoJV8E4887UWuTy2/kGk+kPL6XMBr0TPJ5H7/GupNGnGrkXDQ9SY4TmXFPQe4/Pl+jjD1yO8WnA50h+f+RyMnNHpZddXPQzH9rD4Gp9mbD5SZGuyL3aQ8VLm4/+iljnCkoyWYMa6SnQ379tDU9sTKfP+nveNpgZrLEhbsyOCSsVNkZsgkOlTNEmOpf+Pd3JV2SxI5/BrSVW6ma/oU6jGrXORT7c7if9n6DMg0P2D8ndJ8QseOu+zINvY+F6Ul1kX7GjlSUWz0BBtgLMYX9ZtvhZOmi1pBCkrF dsmisi@linux01
Copy and paste this key into the authorized_keys file for the ISILONs dsmisi user. Eventually you have to create the “.ssh” directory, if it does not exist yet. Ensure the key is a single line and has no carriage return in between:
isilon01-1# su - dsmisi
isilon01-1% pwd
/ifs/home/dsmisi
isilon01-1% cd .ssh
isilon01-1% vi authorized_keys
Try to login to you ISILON cluster by issuing:
dsmisi@sles-01:~> ssh dsmisi@192.168.178.170 (ISILON mgmt-ip)
PowerScale OneFS 9.4.0.0
Copyright (c) 2001-2022 Dell Inc. or its subsidiaries. All Rights Reserved.
Copyright (c) 1992-2018 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
PowerScale OneFS 9.4.0.0
isilon01-1% isi status
Cluster Name: isilon01
Cluster Health: [ ATTN]
Data Reduction: 1.00 : 1
Storage Efficiency: 0.45 : 1
Cluster Storage: HDD SSD Storage
...
If you can connect without specifying a password, the key exchange worked correctly.
Step 2: Prepare the ISILON cluster for dsmISI and ISP¶
If you used the root for the ISILON communication you can use the login for the configuration.
If you are using a non-root user, you need at least an administrative user for the following configuration, which can be done in the web interface and the CLI. Once logged in to the ISILON as root user, create the directory to be exported (/ifs/ISP) and in case the non-root user is used for dsmISI you also either need to allow the dsmISI user to write to this directory or create it:
isilon01-1# mkdir /ifs/ISP isilon01-1# chmod a+w /ifs/ISP
Now the directory needs to be exported. This can be done on the command line but also on the web interface. In most cases it is enough to export “read-write” only:
isilon01-1# isi nfs exports create /ifs/ISP –read-write-clients 192.168.100.50
isilon01-1# isi nfs exports create /ifs/ISP –root-clients 192.168.100.50
Ensure that the correct policy is set for this directory. Best practice is to set the performance value to “streaming” globally on ISILON:
isilon01-1# isi get /ifs/tsm2
POLICY LEVEL PERFORMANCE COAL FILE
default 4x/2 concurrency on ./
default 8x/3 concurrency on ../
isilon711-2# isi set -l streaming /ifs/tsm2
isilon711-2# isi get /ifs/tsm2
POLICY LEVEL PERFORMANCE COAL FILE
default 4x/2 streaming/@18 on ./
default 8x/3 concurrency on ../
The next step is to verify the IP pool for the data access. It is recommended to only use a single IP address per node:
isilon01-1#isi network list ifaces –w
Interface Status Membership Addresses
--------------- ----------- ------------------------- ------------------------------
1:10gige-1 up
1:10gige-2 up
1:10gige-agg-1 up subnet1:pool-data 192.168.100.100
1:ext-1 up subnet0:pool-mgt 192.168.101.100
1:ext-2 up
2:10gige-1 up
2:10gige-2 up
2:10gige-agg-1 up subnet1:pool-data 192.168.100.101
2:ext-1 up
2:ext-2 up
2:ext-agg up subnet0:pool-mgt 192.168.101.101
3:10gige-1 up
3:10gige-2 up
3:10gige-agg-1 up subnet1:pool-data 192.168.100.102
3:ext-1 up
3:ext-2 up
3:ext-agg up subnet0:pool-mgt 192.168.101.102
4:10gige-1 up
4:10gige-2 up
4:10gige-agg-1 up subnet1:pool-data 192.168.100.103
4:ext-1 up
4:ext-2 up
4:ext-agg up subnet0:pool-mgt 192.168.101.103
Step 3: Install dsmISI¶
The next step is to install the dsmISI package:
rpm -ivh dsmisi-3.X.X.X.x86_64.rpm
Step 4: Create the dsmisi.conf options file¶
The previously defined values for this installation need to be added to the configuration file.
linux01: # cat /etc/dsmisi/dsmisi.conf
FileLogLevel Warning
#SysLogLevel Warning
ClaimWeight 100
ConnectTimeout 30
User dsmisi
IsilonUser dsmisi
MountArgs rw,sync,hard,proto=tcp,timeo=600,retrans=2,intr
NfsRsize 1048576
NfsWsize 1048576
IdleTime 60
IsiName isilon01
IsiMgmtIp isilon01-1-mgt,isilon-01-2-mgt
IsiIpPool subnet0:pool-data
IsiConnectionTimeout 30
IsiUser dsmisi
IsiMntRootDir /isi
IsiExport /ifs/ISP
ServerName tsminst01
ServerUsrGrp tsm1:tsm1
ServerDirPrefix /tsm
ServerDirSuffix sf
IsiClusterList isilon01
Step 5: Configure dsmISI as service¶
To run dsmISI as a service, please copy the service unit file into a service unit directory and enable the service:
linux01:/opt/generalstorage/dsmisi/bin # cp /opt/generalstorage/dsmisi/bin/dsmisi.service /etc/systemd/system
linux01:/opt/generalstorage/dsmisi/bin # systemctl enable dsmisi --now
Created symlink from /etc/systemd/system/multi-user.target.wants/dsmisi.service to /etc/systemd/system/dsmisi.service.
linux01:/opt/generalstorage/dsmisi/bin # systemctl status dsmisi
dsmisi.service - Start dsmisi
Loaded: loaded (/etc/systemd/system/dsmisi.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2022-01-19 09:28:33 CET; 6s ago
Process: 3618 ExecStart=/bin/sh -c /opt/generalstorage/dsmisi/bin/dsmisi -daemon >/dev/null 2>&1 & (code=exited, status=0/SUCCESS)
Main PID: 3619 (dsmisi)
Tasks: 2 (limit: 512)
Memory: 2.2M
CPU: 39ms
CGroup: /system.slice/dsmisi.service
├─3619 /opt/generalstorage/dsmisi/bin/dsmisi -daemon
└─3644 ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o BatchMode=yes -q -T dsmisi@192.168.178.240
Jan 19 09:28:33 linux01 systemd[1]: Starting Start dsmisi...
Jan 19 09:28:33 linux01 systemd[1]: Started Start dsmisi.
Optionally the executable can also be added to the default path:
linux01:~ #cat /etc/profile.d/dsmisi.sh PATH=${PATH}:/opt/generalstorage/dsmisi/bin
linux01:~ #. /etc/profile.d/dsmisi.sh
Step 6: Start dsmISI¶
Now dsmISI can be started.
If you start dsmISI for the first time after configuration it is recommended to check /var/dsmisi/logs/dsmisi.log
for errors.
The mounts to all 4 nodes should be available.
Step 7: Create and use ISP device classes¶
When dsmISI was configured and started successfully there should be a link available which is used for the ISP device class configuration:
linux01:/tsm/tsminst01/isilon01 # ls -l
total 0 lrwxrwxrwx 1 tsm68 tsm68 25 Sep 25 10:16 SF -> /isi/isilon01/0001/tsminst01/sf
Now the ISP device class is created:
ISPINST01>def dev ISILON01 devt=FILE maxcap=20g dir=/tsm/tsminst01/isilon01/sf
ANR2203I Device class ISILON01 defined.
Step 8: Create and use ISP storage pools¶
The last step is to define the storage pool on the SPECTRUM PROTECT server:
ISPINST01>def stg ISI_BACKUP ISILON01 hi=100 lo=99 reuse=2 colloc=no recl=60 maxscratch=10000
ANR2200I Storage pool ISI_BACKUP defined (device class ISILON01).
Command Reference¶
The following section contains information about the commands usable by the dsmisi executable
dsmisi help¶
This command returns all possible commands for dsmisi.
Syntax:
dsmisi help
Examples:
sles-01:~ # dsmisi help
Usage: dsmisi [help|mount|umount|setpath|status|ping|wipe|requestsnap|createsnaps|listsnaps|listopensnapreqs|cleanupsnaprequests|deleteopensnapreqs|check]
dsmisi, version 3.2.1.4-3 x86_64 (4522325221010MS)
Copyright (C) 2022 General Storage Software GmbH
dsmisi status¶
This command returns the status of the ISILON mounts and the dsmISI version.
Syntax:
dsmisi status <clustername> <parameter>
Parameters:
<clustername> (Optional) - Clustername from *dsmisi.conf*. If provided, information will only be shown for this cluster.
-s - The option "-s" also shows the status of the preload library.
-r - This option flushes saved cluster information and reloads it from the clusters.
Examples:
linux01:~ # /opt/generalstorage/dsmisi/bin/dsmisi status -s
dsmisi, version 3.0.2.4 (301101417668)
Copyright (C) 2017 General Storage Software GmbH
0001: /isi/laclust801/0001 mounted.
0002: /isi/laclust801/0002 mounted.
0003: /isi/laclust801/0003 mounted.
I/O Server ISP143.
Cluster laclust801,3 file path /tsm/ISP143/ISP143/laclust801/file active.
I/O server dsmgsio available.
I/O Path 0: /tsm/ISP143/ISP143/laclust801/file/ -> /isi/laclust801/0002/ISP143/file(3).
sles-01:~ # dsmisi status -r
dsmisi, version 3.2.0.19 x86_64 (154215921912)
Copyright (C) 2021 General Storage Software GmbH
Reloading cluster data isi9000 ...
Cluster isi9000 (v9.0.0.0):
192.168.178.243 mounted on /isimount/isi9000/0001 (Clusternode 1)
192.168.178.244 mounted on /isimount/isi9000/0002 (Clusternode 1)
192.168.178.242 mounted on /isimount/isi9000/0003 (Clusternode 3)
192.168.178.240 mounted on /isimount/isi9000/0004 (Clusternode 4)
192.168.178.241 mounted on /isimount/isi9000/0005 (Clusternode 4)
dsmisi status: no I/O server configured.
dsmisi list¶
This command returns a list of the ISILONs accessible IP Pools and the corresponding IP ranges.
Syntax:
dsmisi list <clustername>
Parameters:
<clustername> (Optional) - Clustername from *dsmisi.conf*. If provided, information will only be shown for this cluster.
Examples:
sles-01:~ # dsmisi list isi9300
dsmisi, version 3.2.1.4-3 x86_64 (4522325221010MS)
Copyright (C) 2022 General Storage Software GmbH
Cluster isi9300 (9.3.0.0)
IP Pool Ranges
r1 groupnet0:subnet0:pool0 192.168.178.190 - 192.168.178.195
Number of IP pool ranges found: 1.
001 192.168.178.190 subnet0:pool0
002 192.168.178.191 subnet0:pool0
003 192.168.178.192 subnet0:pool0
004 192.168.178.193 subnet0:pool0
IsiIpPool subnet0:pool0 IPs found: 4.
dsmisi mount¶
This command can mount all clusters at once or a specific cluster if provided.
Syntax:
dsmisi mount <clustername>
Parameters:
<clustername> (Optional) - Clustername from *dsmisi.conf*. If provided, only this cluster will be mounted.
Examples:
bash-4.2# dsmisi mount
Mount processing isi8200-clus.
Mount processing isi9000.
Mount processing isi9000-a.
bash-4.2# df
...
192.168.178.247:/ifs/ORA 492655680 160130208 68% 107528902 29% /isi/isi8200-clus/0001
192.168.178.248:/ifs/ORA 492655680 160130208 68% 107528902 29% /isi/isi8200-clus/0002
192.168.178.246:/ifs/ORA 492655680 160130208 68% 107528902 29% /isi/isi8200-clus/0003
192.168.178.245:/ifs/ORA 492655680 160130208 68% 107528902 29% /isi/isi8200-clus/0004
192.168.178.249:/ifs/ORA 492655680 160130208 68% 107528902 29% /isi/isi8200-clus/0005
192.168.178.242:/aliasora 492655680 213579152 57% 182159841 49% /isi/isi9000/0001
192.168.178.241:/aliasora 492655680 213579152 57% 182159841 49% /isi/isi9000/0002
192.168.178.243:/aliasora 492655680 213579152 57% 182159841 49% /isi/isi9000/0003
192.168.178.240:/aliasora 492655680 213579152 57% 182159841 49% /isi/isi9000/0004
192.168.178.244:/aliasora 492655680 213579152 57% 182159841 49% /isi/isi9000/0005
192.168.178.240:/ifs/ORANEW 492655680 213579152 57% 182159841 49% /isi/isi9000-a/0001
sles-01:~ # dsmisi mount isi9000
Mount processing isi9000.
sles-01:~ # df|grep isi9000
192.168.178.243:/ifs/xfs 246328320 139534336 106793984 57% /isimount/isi9000/0001
192.168.178.244:/ifs/xfs 246328320 139534336 106793984 57% /isimount/isi9000/0002
192.168.178.242:/ifs/xfs 246328320 139534336 106793984 57% /isimount/isi9000/0003
192.168.178.240:/ifs/xfs 246328320 139534336 106793984 57% /isimount/isi9000/0004
192.168.178.241:/ifs/xfs 246328320 139534336 106793984 57% /isimount/isi9000/0005
dsmisi umount¶
This command can unmount all clusters at once or a specific cluster if provided.
Syntax:
dsmisi umount <clustername>
Parameters:
<clustername> (Optional) - Clustername from *dsmisi.conf*. If provided, only this cluster will be unmounted.
Examples:
sles-01:~ # df|grep isi9000
192.168.178.243:/ifs/xfs 246328320 139534336 106793984 57% /isimount/isi9000/0001
192.168.178.244:/ifs/xfs 246328320 139534336 106793984 57% /isimount/isi9000/0002
192.168.178.242:/ifs/xfs 246328320 139534336 106793984 57% /isimount/isi9000/0003
192.168.178.240:/ifs/xfs 246328320 139534336 106793984 57% /isimount/isi9000/0004
192.168.178.241:/ifs/xfs 246328320 139534336 106793984 57% /isimount/isi9000/0005
sles-01:~ # dsmisi umount isi9000
Umount processing isi9000.
sles-01:~ # df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 2003976 0 2003976 0% /dev
tmpfs 2015768 0 2015768 0% /dev/shm
tmpfs 2015768 10020 2005748 1% /run
tmpfs 2015768 0 2015768 0% /sys/fs/cgroup
/dev/mapper/system-root 34588672 8459784 26128888 25% /
/dev/mapper/system-home 26201600 17137260 9064340 66% /home
tmpfs 403156 0 403156 0% /run/user/0
bash-4.2# df
Filesystem 512-blocks Free %Used Iused %Iused Mounted on
/dev/hd4 2097152 1603136 24% 10092 6% /
/dev/hd2 8388608 3595032 58% 42562 10% /usr
/dev/hd9var 8388608 7394656 12% 6944 1% /var
/dev/hd3 16777216 14220504 16% 4121 1% /tmp
/dev/hd1 262144 261040 1% 18 1% /home
/dev/hd11admin 262144 261416 1% 5 1% /admin
/proc - - - - - /proc
/dev/hd10opt 12582912 11002864 13% 13864 2% /opt
/dev/livedump 524288 523552 1% 4 1% /var/adm/ras/livedump
/dev/tsmlv 57933824 0 100% 42907 61% /tsm
192.168.178.247:/ifs/ORA 492655680 160125904 68% 107534133 29% /isi/isi8200-clus/0001
192.168.178.248:/ifs/ORA 492655680 160125904 68% 107534133 29% /isi/isi8200-clus/0002
192.168.178.246:/ifs/ORA 492655680 160125904 68% 107534133 29% /isi/isi8200-clus/0003
192.168.178.245:/ifs/ORA 492655680 160125904 68% 107534133 29% /isi/isi8200-clus/0004
192.168.178.249:/ifs/ORA 492655680 160125904 68% 107534133 29% /isi/isi8200-clus/0005
192.168.178.242:/aliasora 492655680 213587952 57% 182152549 49% /isi/isi9000/0001
192.168.178.241:/aliasora 492655680 213587952 57% 182152549 49% /isi/isi9000/0002
192.168.178.243:/aliasora 492655680 213587952 57% 182152549 49% /isi/isi9000/0003
192.168.178.240:/aliasora 492655680 213587952 57% 182152549 49% /isi/isi9000/0004
192.168.178.244:/aliasora 492655680 213587952 57% 182152549 49% /isi/isi9000/0005
192.168.178.240:/ifs/ORANEW 492655680 213587952 57% 182152549 49% /isi/isi9000-a/0001
bash-4.2# dsmisi umount
Umount processing isi8200-clus.
Umount processing isi9000.
Umount processing isi9000-a.
bash-4.2# df
Filesystem 512-blocks Free %Used Iused %Iused Mounted on
/dev/hd4 2097152 1603136 24% 10092 6% /
/dev/hd2 8388608 3595032 58% 42562 10% /usr
/dev/hd9var 8388608 7394632 12% 6944 1% /var
/dev/hd3 16777216 14220504 16% 4121 1% /tmp
/dev/hd1 262144 261040 1% 18 1% /home
/dev/hd11admin 262144 261416 1% 5 1% /admin
/proc - - - - - /proc
/dev/hd10opt 12582912 11002864 13% 13864 2% /opt
/dev/livedump 524288 523552 1% 4 1% /var/adm/ras/livedump
/dev/tsmlv 57933824 0 100% 42907 61% /tsm
dsmisi wipe¶
This command flushes all saved cluster information. This can be helpful if a cluster had connection issues which led to a faulty local cluster information.
Syntax:
dsmisi wipe
Examples:
bash-4.2# dsmisi wipe
Removing cached data for isi8200-clus.
Removing cached data for isi9000-a.
Removing cached data for isi9000.
dsmisi check¶
This will run accessibility checks on each node on the mounted ISILON cluster nodes. It will show if a mount is stale and do a simple write test and show if a node reacts slowly.
Syntax:
dsmisi check
Examples:
sles-01:~ # dsmisi check
[INFO] dsmisi status completed successfully
[INFO] "isi9000","192.168.178.242",/isimount/isi9000/0001,OK
[INFO] "isi9000","192.168.178.243",/isimount/isi9000/0002,OK
[INFO] "isi9000","192.168.178.240",/isimount/isi9000/0003,OK
[INFO] "isi9000","192.168.178.241",/isimount/isi9000/0004,OK
[INFO] "isi9000","192.168.178.244",/isimount/isi9000/0005,OK
[INFO] "isi9210","192.168.178.177",/isi9210mount/isi9210/0001,OK
[INFO] "isi9210","192.168.178.176",/isi9210mount/isi9210/0002,OK
[INFO] "isi9210","192.168.178.175",/isi9210mount/isi9210/0003,OK
dsmisi conncheck¶
This command can check if the ssh connection for all clusters at once or a specific cluster is working correctly.
Syntax:
dsmisi conncheck <clustername>
Parameters:
<clustername> (Optional) - Clustername from *dsmisi.conf*. If provided, only this cluster will be tested.
Examples:
sles-01:~ # dsmisi conncheck
Cluster isi9000 (v9.0.0.0)
lost connection
Connection check failed for local user "root" trying to connect to the ISILON as user "dsmisi".
Cluster isi9300 (9.3.0.0)
Connection check successful!
Cluster isi9400 (9.4.0.0)
Connection check successful!
Cluster isi9400xfs (9.4.0.0)
Connection check successful!
dsmisi setpath¶
This command can manually set the links for all configured I/O server stanzas. Usually, this will be instead be automatically done by the daemon.
Syntax:
dsmisi setpath
Examples:
sles-01:~ # dsmisi setpath
dsmisi, version 3.2.2.1 x86_64 (0511144231063)
Copyright (C) 2023 General Storage Software GmbH
Setpath processing Test.
Activating I/O paths for Test(isi9300): /test/Test/isi9300
Setpath completed.
Check with “dsmisi status -s”:
sles-01:~ # dsmisi status -s
dsmisi, version 3.2.2.1 x86_64 (0511144231063)
Copyright (C) 2023 General Storage Software GmbH
Cluster isi9300 (9.3.0.0):
192.168.178.190 not mounted
192.168.178.191 not mounted
192.168.178.192 not mounted
192.168.178.193 not mounted
I/O Server Test.
Cluster isi9300,4 file path /test/Test/isi9300 active.
dsmisi createsnaps¶
This command will create snapshots according to requests existing for a specific ISILON cluster, if the option “IsiSnapProxy” is not set to no
or all configured clusters, if the option “IsilonSnapProxy” is set to yes
.
Syntax:
dsmisi createsnaps <clustername>
Parameters:
<clustername> (Optional) - Clustername from *dsmisi.conf*. If provided, snapshot creation will only be done for this cluster.
Examples:
sles-01:~ # dsmisi createsnaps
dsmisi, version 3.2.0.19-58 x86_64 (081091622970S)
Copyright (C) 2022 General Storage Software GmbH
Starting Snapshot creation...
dsmisiSnapFile /ifs/xfs/dsmisi/disis.sles-01.20220221094000 for Export found.
Snapshot created!.
Snapfile /ifs/xfs/dsmisi/disis.sles-01.20220221094000 deleted after successful snapshot creation!
Snapshot creation end.
Starting Snapshot creation...
dsmisiSnapFile /ifs/dsmisitest/dsmisi/disis.sles-01.20220221093943 for Export found.
Snapshot created!.
Snapfile /ifs/dsmisitest/dsmisi/disis.sles-01.20220221093943 deleted after successful snapshot creation!
Snapshot creation end.
sles-01:~ # dsmisi createsnaps isi9210
dsmisi, version 3.2.0.19-58 x86_64 (081091622970S)
Copyright (C) 2022 General Storage Software GmbH
Starting Snapshot creation...
dsmisiSnapFile /ifs/dsmisitest/dsmisi/disis.sles-01.20220221094053 for Export found.
Snapshot created!.
Snapfile /ifs/dsmisitest/dsmisi/disis.sles-01.20220221094053 deleted after successful snapshot creation!
Snapshot creation end.
dsmisi listsnaps¶
This command will list snapshots for a specific ISILON cluster or all configured clusters.
Syntax:
dsmisi listsnaps <clustername>
Parameters:
<clustername> (Optional) - Clustername from *dsmisi.conf*. If provided, snapshots will only be shown for this cluster.
Examples:
sles-01:~ # dsmisi listsnaps isi9000
dsmisi, version 3.2.0.19-58 x86_64 (081091622970S)
Copyright (C) 2022 General Storage Software GmbH
ID Name Path
--------------------------------------------------------
228 sles-01_20220218114559 /ifs/xfs/dsmisi4v
230 sles-01_20220218115122 /ifs/xfs/dsmisi4v
232 sles-01_20220218120812 /ifs/xfs/dsmisi4v
234 sles-01_20220218120850 /ifs/xfs/dsmisi4v
236 sles-01_20220218121015 /ifs/xfs/dsmisi4v
238 sles-01_20220218121106 /ifs/xfs/dsmisi4v
240 sles-01_20220218121526 /ifs/xfs/dsmisi4v/freezetest
242 sles-01_20220218121556 /ifs/xfs/dsmisi4v/freezetest
244 sles-01_20220218161036 /ifs/xfs/dsmisi4v
246 sles-01_20220221094000 /ifs/xfs/dsmisi4v
--------------------------------------------------------
Total: 10
sles-01:~ # dsmisi listsnaps
dsmisi, version 3.2.0.19-58 x86_64 (081091622970S)
Copyright (C) 2022 General Storage Software GmbH
ID Name Path
--------------------------------------------------------
228 sles-01_20220218114559 /ifs/xfs/dsmisi4v
230 sles-01_20220218115122 /ifs/xfs/dsmisi4v
232 sles-01_20220218120812 /ifs/xfs/dsmisi4v
234 sles-01_20220218120850 /ifs/xfs/dsmisi4v
236 sles-01_20220218121015 /ifs/xfs/dsmisi4v
238 sles-01_20220218121106 /ifs/xfs/dsmisi4v
240 sles-01_20220218121526 /ifs/xfs/dsmisi4v/freezetest
242 sles-01_20220218121556 /ifs/xfs/dsmisi4v/freezetest
244 sles-01_20220218161036 /ifs/xfs/dsmisi4v
246 sles-01_20220221094000 /ifs/xfs/dsmisi4v
--------------------------------------------------------
Total: 10
ID Name Path
----------------------------------------------------
7 s7 /ifs/dsmisitest
9 sles-01_20220218124406 /ifs/dsmisitest/snaptest
11 sles-01_20220218125243 /ifs/dsmisitest/snaptest
13 sles-01_20220218160949 /ifs/dsmisitest/snaptest
15 sles-01_20220221085606 /ifs/dsmisitest/snaptest
17 sles-01_20220221085940 /ifs/dsmisitest/snaptest
19 sles-01_20220221090228 /ifs/dsmisitest/snaptest
21 sles-01_20220221092227 /ifs/dsmisitest/snaptest
23 sles-01_20220221093856 /ifs/dsmisitest/snaptest
25 sles-01_20220221093843 /ifs/dsmisitest/snaptest
27 sles-01_20220221093943 /ifs/dsmisitest/snaptest
29 sles-01_20220221094053 /ifs/dsmisitest/snaptest
----------------------------------------------------
Total: 12
dsmisi cleanupsnaprequests¶
This command clean up snapshot requests (for which a snapshot attempt failed at least once) for a specific ISILON cluster or all configured clusters.
Syntax:
dsmisi cleanupsnaprequests <clustername>
Parameters:
<clustername> (Optional) - Clustername from *dsmisi.conf*. If provided, the cleanup will only be done for this cluster.
Examples:
To get a failed snapshot attempt, we place a request for a non-existent path on our ISILON cluster:
sles-01:~ # dsmisi requestsnap -i isi9000 -p snaptest
[INFO] dsmISI snapshot request file was placed on the ISILON isi9000!
Then we try to create the snapshot for our request:
sles-01:~ # dsmisi createsnaps isi9000
dsmisi, version 3.2.0.19-58 x86_64 (081091622970S)
Copyright (C) 2022 General Storage Software GmbH
Starting Snapshot creation...
dsmisiSnapFile /ifs/xfs/dsmisi/disis.sles-01.20220221094432 for Export found.
Error in field(s): path
snapshot path '/ifs/xfs/snaptest' does not exist
Couldn't create a snapshot.
Could not create snapshot for Snapfile /ifs/xfs/dsmisi/disis.sles-01.20220221094432
Snapshot creation end.
This bad request will not be deleted automatically, so the next snapshot creation will try to process the request again:
sles-01:~ # dsmisi createsnaps isi9000
dsmisi, version 3.2.0.19-58 x86_64 (081091622970S)
Copyright (C) 2022 General Storage Software GmbH
Starting Snapshot creation...
dsmisiSnapFile /ifs/xfs/dsmisi/disis.sles-01.20220221094432 for Export found.
Error in field(s): path
snapshot path '/ifs/xfs/snaptest' does not exist
Couldn't create a snapshot.
Could not create snapshot for Snapfile /ifs/xfs/dsmisi/disis.sles-01.20220221094432
Snapshot creation end.
To clean up the bad request file, we execute the cleanupsnaprequests command:
sles-01:~ # dsmisi cleanupsnaprequests isi9000
dsmisi, version 3.2.0.19-58 x86_64 (081091622970S)
Copyright (C) 2022 General Storage Software GmbH
Starting Snapshot Request cleanup...
dsmisiSnapFile /ifs/xfs/dsmisi/disis.sles-01.20220221094432 found.
Found a failed Snapshot Request in /ifs/xfs/dsmisi/disis.sles-01.20220221094432.
Snapfile /ifs/xfs/dsmisi/disis.sles-01.20220221094432 cleaned up.
Snapshot cleanup end.
dsmisi requestsnap¶
This command places a snapshot request file on a configured and mounted ISILON cluster, and, if specified, waits for a snapshot.
Syntax:
dsmisi requestsnap [-i isiName] [-p relativePath] <-r retentionDays> <-t export|xfs> <-w no|(yes> <-s seconds>)
Parameters:
[-i isiName] - Clustername from *dsmisi.conf*. The snapshot request will be for a directory or filesystem on this cluster.
[-p relativePath] - The directory path for which the snapshot should happen. If the directory you want to snapshot is mounted on "/isi9210mount/isi9210/0001/snaptest" for example, you would specify "-p snaptest".
<-r retentionDays> (Optional) - The number of days for which the snapshot should exist before it is eligible for deletion. If not specified, this will be 14 days.
<-t export|xfs> (Optional) - If an xfs filesystem mounted with ``dsmisi4v`` is target of a snapshot request, this has to be specified with ``-t xfs``, else the snapshot will be for a directory.
<-w no|(yes> <-s seconds>) (Optional) - If ``-w yes -s <seconds>`` is specified, dsmisi will wait for the snapshot to be taken instead of just placing the snapshot request file on the ISILON for later snapshot creation. If ``-s`` is set, dsmisi will wait for these number of seconds before giving up, else it will wait 180 seconds before giving up and deleting the snapshot request.
Note
-p relativePath
does not actually have to be a relative Path. If a snapshot request should be done for a directory on the ISILON, which is not mounted by the client, you can also specify an absolute path.
Make sure that the path exists and that the configured user for snapshot creation has the necessary reading rights for the given directory.
Examples:
sles-01:~ # dsmisi requestsnap
Usage: dsmisi requestsnap [-i isiName] [-p relativePath] <-r retentionDays> <-t export|xfs> <-w no|(yes> <-s seconds>)
Parameters in '<>' are optional. If not specified, it will be '-r 14 -t export -w no'
If you set -w yes, you can specify the timeout with -s. Else timeout will be 180 seconds.
Simple snapshot request for a directory without waiting for snapshot creation:
sles-01:~ # dsmisi requestsnap -i isi9210 -p snaptest
[INFO] dsmISI snapshot request file was placed on the ISILON isi9210!
Snapshot request with -w yes -s 90
. This waits until either the snapshot is done or timeout of 90 seconds is reached:
sles-01:~ # dsmisi requestsnap -i isi9210 -p snaptest -w yes -s 90
[INFO] dsmISI snapshot request file was placed on the ISILON isi9210!
[INFO] dsmISI snapshot request will now wait until the snapshot is taken or the timeout value of 90 seconds is reached!
[INFO] Snapshot not taken yet, timeout value of 90 seconds is not reached. (Waiting for: 0 seconds)
[INFO] Snapshot not taken yet, timeout value of 90 seconds is not reached. (Waiting for: 4 seconds)
...
[INFO] Snapshot not taken yet, timeout value of 90 seconds is not reached. (Waiting for: 76 seconds)
[INFO] Snapshot not taken yet, timeout value of 90 seconds is not reached. (Waiting for: 80 seconds)
[INFO] Snapshot is done!
Snapshot request for an xfs filesystem:
sles-01:~ # dsmisi requestsnap -p dsmisi4v/freezetest -i isi9000 -w yes -s 200 -t xfs
[INFO] dsmISI snapshot request file was placed on the ISILON isi9000!
[INFO] dsmISI snapshot request will now wait until the ISILON is ready for snapshot creation or the timeout value of 200 seconds is reached!
[INFO] ISILON has not yet answered, timeout value of 200 seconds is not reached. (Waiting for: 0 seconds)
...
[INFO] ISILON has not yet answered, timeout value of 200 seconds is not reached. (Waiting for: 72 seconds)
[INFO] ISILON is ready. Issuing sync and freeze on filesystem!
[INFO] Snapshot not taken yet, timeout value of 10 seconds is not reached. (Waiting for: 0 seconds)
[INFO] Snapshot is done! Unfreezing filesystem...
Snapshot request with an absolute path specified:
sles-01:~ # dsmisi requestsnap -p /ifs/RECOVERY -i isi9000 -w yes -s 200
[INFO] dsmISI snapshot request file was placed on the ISILON isi9000!
[INFO] dsmISI snapshot request will now wait until the snapshot is taken or the timeout value of 200 seconds is reached!
[INFO] Snapshot not taken yet, timeout value of 200 seconds is not reached. (Waiting for: 0 seconds)
[INFO] Snapshot not taken yet, timeout value of 200 seconds is not reached. (Waiting for: 4 seconds)
...
[INFO] Snapshot not taken yet, timeout value of 200 seconds is not reached. (Waiting for: 48 seconds)
[INFO] Snapshot is done!
dsmisi directsnap¶
This command connects to a PowerScale cluster to issue a snapshot with the specified parameters. To properly function, the system where this command is issued has to be in the PowerScale system zone and must be connecting with a user having all necessary rights to invoke a snapshot.
Syntax:
dsmisi directsnap [-i isiName] [-p ISILONpath] <-r retentionDays>
Parameters:
[-i isiName] - Clustername from *dsmisi.conf*. The snapshot request will be for a directory or filesystem on this cluster.
[-p ISILONpath] - The *absolute* path of the directory the snapshot should be taken for (e.g. /ifs/data/path).
<-r retentionDays> (Optional) - The number of days for which the snapshot should exist before it is eligible for deletion. If not specified, this will be 14 days.
Examples:
sles-01:~ # dsmisi directsnap
Usage: dsmisi directsnap [-i isiName] [-p ISILONpath] <-r retentionDays>
Parameters in '<>' are optional. If not specified, it will be '-r 14'
CAUTION: This function will only work if the dsmISI client is configured to access the ISILON's system zone!
Snapshot creation for the directory ‘/ifs/data’ with a retention of 2 days:
sles-01:~ # dsmisi directsnap -i isi9500 -p /ifs/data -r 2
Created snapshot sles-01_20231013111006 with ID 2
Snapshot sles-01_20231013111006 for /ifs/data with a retention of 2 days was taken!