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.

Planning Sheet

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!