XorMon, open source under GPL v3, monitors IBM storage: Storage Virtualize (SVC), Storwize, FlashSystem, DS8000, XIV, A9000, DS3000 to DS5000 with a REST API, Cloud Object Storage, Storage Scale, Storage Defender and Storage Ceph. It graphs capacity, IO, data throughput and latency per pool, volume, drive, port or host, depending on the model, and alerts on performance and hardware events.
Which IBM storage systems does XorMon monitor?
XorMon supports 14 IBM storage products and product families, from IBM Storage Virtualize (SVC) and the Storwize family to FlashSystem, DS8000, XIV, Storage Scale and Cloud Object Storage.
Storage Virtualize is the former IBM Spectrum Virtualize and IBM SVC. The Storwize family covers V7000, V7000-Unified, V5000 and V3700; FlashSystem covers 9XXX, 7XXX, 5XXX, CXXX, V9000, V840, 900, 840 and A9000; IBM Storage Accelerate is XIV. XorMon is the full-stack successor to the first-generation LPAR2RRD and STOR2RRD tools. STOR2RRD device definitions can be imported into XorMon, and both tools can run side by side on the same devices.
Which IBM FlashSystem and Storwize metrics does XorMon collect?
For SVC, Storwize and FlashSystem 9XXX, 7XXX, 5XXX, CXXX and V840, XorMon graphs IO, data throughput and latency per pool, volume, IO group, RAID group, drive and host.
The IBM tab of the feature matrix has one column per storage family. For these models it also lists capacity per pool, child pool and capacity tier, transfer size, block size, cache hit and cache usage per volume, hardware compression per pool, IO and data per port, and CPU system and CPU compress. DS8000 and DS6800 add back-end IO, data and latency per pool and volume, and PPRC IO, data and latency per port.
XorMon connects over SSH to SVC, Storwize and FlashSystem, through DSCLI to DS8000, over SMI-S to XIV and A9000, and over REST API to DS3000 to DS5000 models that have one, Cloud Object Storage, Storage Scale and Storage Defender.
On SVC, Storwize and FlashSystem, XorMon connects on port 22 (SSH) with a dedicated xormon user, by password or SSH keys. The role depends on the firmware: Monitor from 8.3.1.2, Restricted Administrator from 8 up to 8.3.1.2, and Administrator on older firmware. DS8000 uses a user with the monitor role on ports 1750 and 1751, XIV and A9000 a readonly user on port 5989, and DS3000 to DS5000 a monitor role user on port 8443, configured as NetApp E/EF-series. XorMon can coexist with IBM Spectrum Control (TPC) on the same SVC, Storwize or FlashSystem if both tools use the same sample rate.
How does XorMon track IBM storage capacity and alert on problems?
XorMon offers detailed capacity monitoring per storage total, pool and tier for IBM Storwize, SVC and FlashSystem, and the feature matrix marks performance and hardware event alerting in all nine IBM columns.
Detailed capacity monitoring tracks formatted, raw, replication, snapshot, virtual, deduplication, compressed and spare capacity, and uses the smart trending graphs of Enhanced Predictions. A storage alert group selects volumes by regex, a metric such as latency and a threshold. Event alerting raises an alert when a device turns red in the global health status dashboard, and a clear alert when it turns green again.
mount DSCLI-7.9.41.59.iso /mnt -o loop,ro
umask 022
/mnt/IMAGES/HMC/Disk1/InstData/Linux/NoVM/dsclisetup.bin -i console
Preparing to install...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
Congratulations. IBM System Storage DS Command Line Interface has been
.......
successfully installed to: /opt/ibm/dscli
If you get en error "Error: Could not find or load main class com.zerog.lax.LAX" during installation start, then set up this env variable and start it again:
Create a user on the storage with restricted rights
If you prefere to non encrypted communication with the storage then edit /opt/ibm/dscli/profile/dscli.profile file adding the string "port:1750".
This way the DSCLI will be able to use the port on a non encrypted protocol.
Allow access from the XorMon host to the storage on ports 1750 and 1751 (encrypted communication).
Under xormon Unix user identification do following
Make sure you have execution rights on : /opt/ibm/dscli/dscli
Log as administrator into DSCLI
(you might create xormon user on the storage even from the other admin api like TPC ..)
If you get following error then it is probably a firewall issue:
$ /opt/ibm/dscli/dscli -hmc1 192.168.1.1 -user admin
CMUN00018E Unable to connect to the management console server
Log as storage administrator and create user xormon under monitor role:
Connection check, it should not ask for a password:
$ /opt/ibm/dscli/dscli -hmc1 <HMC1 ip addr> -user xormon ver -l
Date/Time: December 10, 2013 3:01:43 PM CET IBM DSCLI Version: 7.7.10.317
DS: -
DSCLI 7.7.10.317
StorageManager 7.7.5.0.20121203.1
================Version=================
Storage Image LMC
===========================
IBM.2107-75CXXXX 7.7.10.294
XorMon storage configuration
Add storage into configuration from the UI:
Settings icon ➡ Storage ➡ New ➡ Vendor:device ➡ IBM DS8000
You can get DEVID from DSCLI:
$ /opt/ibm/dscli/dscli -hmc1 192.168.1.1 -user xormon
Date/Time: April 18, 2013 2:55:36 PM CEST IBM DSCLI Version: 7.6.31.165 DS: -
dscli> lssi -s
ID
================
IBM.2107-75VG681
When you get this error:
dscli> lssi -s
Date/Time: April 18, 2013 3:04:25 PM CEST IBM DSCLI Version: 7.6.31.165 DS: -
CMUC00201E lssi:: You are logged in with an expired password and limited
authorization. Use the chuser command to changer password and restore normal authorization.
Run "Test" for configured storage device, it must show "OK"
Wait about 1 hour, then reload the web browser, you should see it in XorMon UI
XorMon collects data from Storage Scale (formerly Spectrum Scale / GPFS) and IBM Elastic Storage Server from GUI nodes using REST API.
At least one GUI node has to be installed in the cluster.
IBM Storage Scale version 5.1.0 and newer are supported.
Note there is not supported monitoring of AIX based nodes as Storage Scale does not support installation of performance monitoring package on them, read this.
Network connectivity
Open HTTPS 443 REST API port from XorMon to all Storage Scale GUI node IP addresses on the firewall.
User configuration
Perform the following steps to create a GUI user and assign user role:
Log in to Storage Scale GUI
Go to Services > GUI page in the IBM Storage Scale GUI
Click Users
Click Create User - the Create User window appears
(example uses 'stor2rrd' user but use 'xormon' preferably)
Type the name of the new user in the Name field
Select Monitor as User Group
Type the password in the Temporary password and Confirm password fields
Click Create
Login to GUI with the new user and change Temporary password to a new one
XorMon storage configuration
Add storage into configuration from the UI:
XorMon UI ➡ Settings icon ➡ Device ➡ Storage ➡ New ➡ Vendor:device ➡ IBM Storage Scale
Configure only GUI nodes
Configure GUI nodes' hostnames/IPs
Fill in the user from previous step
Run "Test" for configured storage device, it must show "OK"
Wait about 1 hour, then reload the web browser, you should see it in XorMon UI
IBM Storage Virtualize (former IBM Spectrum Virtualize and IBM SVC).
Allow access from the XorMon host to the IBM SVC / Storwize / FlashSystem storage on port 22 (ssh).
Storage access
There are 2 possibilities how to connect the storage:
Use user/password
Create new user "xormon" on the storage
Storage firmware 8.3.1.2+: use "Monitor" role
$ ssh superuser@<storage control enclosure IP address> "svctask mkuser -name xormon -usergrp "Monitor"
Using this user role requires setting statistics_frequency on attached storage to 5 minutes under superuser
ssh superuser@<storage control enclosure IP address> "svctask startstats -interval 5"
# make sure it has been done by:
ssh superuser@<storage control enclosure IP address> "lssystem" | grep statistics
statistics_status on
statistics_frequency 5
Storage firmware 8+ up to 8.3.1.2: use "Restricted Administrator"
$ ssh superuser@<storage control enclosure IP address> "svctask mkuser -name xormon -usergrp RestrictedAdmin"
Older firmwares: use "Administrator" role.
It is the lowest role which allows retrieve of statistics data from the storage. Read this for explanation.
$ ssh superuser@<storage control enclosure IP address> "svctask mkuser -name xormon -usergrp Administrator"
SSH-keys
Create SSH-keys on XorMon host under xormon user if do not exist yet. Type enter instead of passphrase
# su - xormon
$ ls -l ~/.ssh/id_rsa.pub
$ ssh-keygen -t rsa -N ""
Generating public/private rsa key pair.
Enter file in which to save the key (/home/xormon/.ssh/id_rsa):
...
$ ls -l ~/.ssh/id_rsa.pub
-rw-r--r-- 1 xormon xormon 382 Jun 1 12:47 /home/xormon/.ssh/id_rsa.pub
You might need to add this into your SSH cfg in case of rsa using on OpenSSH 8.8+ especially in case ssh connection fails with: "no matching host key type found. Their offer: ssh-rsa"
vi ~/.ssh/config
Host *
HostKeyAlgorithms=+ssh-rsa
PubkeyAcceptedAlgorithms=+ssh-rsa
New storage devices might require stronger key, use this one instead of above 'RSA'
$ ssh-keygen -t ecdsa -b 521 -N ""
Copy ssh-key into the storage under storage superuser
In case of IBM Storwize V7000 Unified use one of "Control Enclosure" IPs (definitely not "File Module" IP). Detailed description of IBM Storwize V7000 Unified.
$ scp ~/.ssh/id_rsa.pub superuser@<storage control enclosure IP address>:/tmp/123tmp
Create new user "xormon" on the storage
Storage firmware 8.3.1.2+: use "Monitor" role
$ ssh superuser@<storage control enclosure IP address> "svctask mkuser -name xormon -usergrp Monitor -keyfile /tmp/123tmp"
Using this user role requires setting statistics_frequency on attached storage to 5 minutes under superuser
ssh superuser@<storage control enclosure IP address> "svctask startstats -interval 5"
# make sure it has been done by:
ssh superuser@<storage control enclosure IP address> "lssystem" | grep statistics
statistics_status on
statistics_frequency 5
Storage firmware 8+ up to 8.3.1.2: use "Restricted Administrator"
$ ssh superuser@<storage control enclosure IP address> "svctask mkuser -name xormon -usergrp RestrictedAdmin -keyfile /tmp/123tmp"
Older firmwares: use "Administrator" role.
It is the lowest role which allows retrieve of statistics data from the storage. Read this for explanation.
$ ssh superuser@<storage control enclosure IP address> "svctask mkuser -name xormon -usergrp Administrator -keyfile /tmp/123tmp"
If xormon user already exists on the storage then assign him new ssh-keys:
$ ssh superuser@<storage control enclosure IP address> "svctask chuser -keyfile /tmp/123tmp xormon"
Check if that works:
$ ssh -i ~/.ssh/id_rsa xormon@<storage control enclosure IP address> "svcinfo lssystem"
id 00000100C0906BAA
name SVC
location local
partnership
bandwidth
...
XorMon storage configuration
Add storage into configuration from the UI:
XorMon UI: Settings icon ➡ Device ➡ Storage ➡ New ➡ Vendor:device ➡ IBM Storwize / SVC / FlashSystem
Run "Test" for configured storage device, it must show "OK"
Wait about 1 hour, then reload the web browser, you should see it in XorMon UI
Troubleshooting
Storwize 8.5.0+ and support for multi-factor user authentication (REMOTE account usage)
There is a bug in Storwize code which does not allow to use REMOTE account for xormon ssh access.
Upgrade to Storwize code versions 8.5.0.10 (Q3-Q4 2023) or use LOCAL account
Configure IBM FlashSystem A9000 like XIV.
Create a user on the storage and check the storage connectivity
make sure that CIM service is running.
It should be running by default but especially on A9000 we have seen it has been stopped.
Use the storage UI or command line like this:
cim_show
cim_enable
Allow access from the XorMon host to the storage on port 5989 (SMI-S).
When you use the XIV UI then create xormon user in category readonly
Add storage into configuration from the UI:
XorMon UI:Settings icon ➡ Device ➡Storage ➡ New ➡ Vendor:device ➡ IBM XIV / A9000
Do not use shell special characters like @#!?|$*[]\{}`"'& in the password, use rather ;:.+- instead.
Run "Test" for configured storage device, it must show "OK"
Wait about 1 hour, then reload the web browser, you should see it in XorMon UI
It gets data REST API of the storage. Not all however support it.
if you use older models with no REST API available, then you must use CLI method supported by STOR2RRD only so far.
Configuration
Allow access from the XorMon host to the NetApp storage on port 8443.
Storage user: either use pre-defined user 'monitor' which has monitor role or create 'xormon' under same role
Change its password if necessary through the storage UI.
XorMon storage configuration
Add storage into configuration from the UI:
XorMon UI: Settings icon ➡ Device ➡ Storage ➡ New ➡ Vendor:device ➡ NetApp E/EF-series (use this one on purpose)
Run "Test" for configured storage device, it must show "OK"
Wait about 1 hour, then reload the web browser, you should see it in XorMon UI
Installation is same as for IBM SVC/Storwize.
It get data using REST API provided by the Management node.
Storage connectivity
Allow access from the XorMon host to the IBM COSS storage on port 443 (https).
Create read-only user
Login to IBM COSS Web UI
Navigate to Security ➡ Accounts ➡ Create Account
Assign read-only operator role
Assign read-only access to Manager Device
(example uses 'stor2rrd' user but use 'xormon' preferably)
XorMon storage configuration
Add storage into configuration from the UI:
Settings icon ➡ Storage ➡ New ➡ Vendor:device ➡ IBM ➡ Cloud Object Storage
Run "Test" for configured storage device, it must show "OK"
Wait about 1 hour, then reload the web browser, you should see it in XorMon UI