Discovery of IBM SVC storage server is not creating all the relationships


Description

Relationship between cmdb_ci_storage_volume and cmdb_ci_fc_export is missing

Cause

This is a third-party issue. SMI-S server for IBM SVC is not returning LUN in correct format, that's why relationships are missing and the generated ones seem to be incorrect.

In the SMI 1.5 Storage Server probe. we convert device number (LUN) to hexadecimal format before storing it in CMDB and creating relationships, but in the case of IBM SVC device number returned is already in hexadecimal format.

You can find more information about this here https://www.ibm.com/support/knowledgecenter/SSB27H_6.2.0/fa2ad_scsi_use_luns.html


Resolution

For the workaround of this issue, update the SMI 1.5 Storage Server probe to not convert device id in hexadecimal format.

For that please replace following line in findDeviceID() method

deviceId = reference && parseInt(reference.DeviceNumber, 16);


with


if(cimController.SystemCreationClassName.indexOf('IBMTSSVC') != -1)

        deviceId = reference && reference.DeviceNumber;

else

      deviceId = reference && parseInt(reference.DeviceNumber, 16);

Additional Information

Our schema for storage discovery is complicated and sometimes customers look into CMDB and misunderstand the data.
We have cmdb_ci_storage_volume, cmdb_ci_fc_export and cmdb_ci_storage_controller on the storage side and cmdb_ci_fc_initiator ,cmdb_ci_fc_target and cmdb_ci_fc_disk on the host side.
The storage server exports the volume with a LUN identifier and the host imports a LUN identifier.
A storage server can export a single volume to multiple hosts and it uses different LUN each time to export it . That means that LUN number will be different for volume and FC export.
Please refer to this SMI-S docs for more information https://www.snia.org/sites/default/files/technical_work/SMIS/SMI-S_v1.8r5_Block.pdf