User manual

Frequenty Asked Questions 233
SANTOOLS® is registered in US Patent and Trademark Office No 3,107,854 All rights reserved.
· On Unix systems:
· libHBAPAI.so is the common library, installed in /usr/lib for 32-bit systems, and the appropriate 64-bit library
locations depending on operating system.
· HP/UX (32-bit) links /opt/snia/api/lib/libHBAAPI.sl to /usr/lib
· HP/UX (64-bit) links /opt/snia/api/lib/pa20_64/libHBAAPI.sl to /usr/lib
· For LINUX32, LINUX64, and SPARC Solaris, we bundle our own HBA API library. Our installer will copy it to
/usr/lib as libHBAAPISANtools.so. This was necessitated because we saw some inconsistencies between
the API libraries bundled with Qlogic, Emulex, and JNI. If you have installed the manufacturer's standard
libHBAAPI.so file, and running one of these operating systems, that library will be ignored. You must install the
libHBAAPISANtools.so file in /usr/lib. No entries will be required in the /etc/hba.conf file. If you have another
application running that uses the standard libHBAAPI runtime, it is not supposed to conflict. If you discover an
application that results in a conflict, please let us know.
4.3. Can I issue any arbitrary SCSI command with the HBA API?
No. The scope of the HBA API is limited to discovery of Fibre Channel components. Generic SCSI pass through has
been discussed, but has been deemed generally dangerous, as it bypasses the operating system protections and also
causes several SCSI-related issues (including problems with breaking reservations, potentially corrupting data, or
interrupting I/O). As such it is not included in the API.
4.4. What is the difference between a platform WWN and a node WWN?
· platform WWN - unique world-wide identifier for a computer system used to tie together in software the association
between many components within that system
· node WWN - unique world-wide identifier used to associate many port world wide names within a system. This is
used currently in two ways: first, to specify the relationship between ports on a common device (one node WWN
and several port WWNs on a HBA), secondly to identify ports on a system (one node WWN and many port WWNs
on a system with many HBAs). Unfortunately the use of this is not consistent within currently deployed hardware.
4.5. What is persistent binding?
Persistent binding is a feature of HBAs which remembers the last SCSI address a particular Fibre Channel target has
been mapped to. For example, that a port on a physical disk (world wide name 01:02:03:04:05:06:07, LUN 0) was last
seen at SCSI address (bus=0,target=3,lun=0) on the operating system. Persistent binding ensures that this is
consistent from reboot to reboot unless changed by the user.
Some HBA vendors automatically persistently bind devices, while others require manual configuration. Persistent
binding is most important in the case of operating systems which remember devices by SCSI address or in the case
of raw volumes used by databases.
5. Development Questions
5.1 What is the common HBA library?
The common library is a component of the HBA API, typically called HBAAPI.DLL or libHBAAPI.so which loads vendor
specific library support for HBAs. (This library is specific to an operating system and is supposed to be
bundled with the HBA API drivers supplied by your controller vendor. If that is not the case, please let both
your HBA vendor know about this, as well as SANtools so we may work with your HBA vendor to supply the
proper files and get them tested.)
5.2 What operating systems are supported by the HBA API common library?
The initial work on the HBA API was done on Windows NT, Windows 2000, and Solaris 2.6, 2.7, and 2.8. Other
operating systems are also planned for support. (SPARC Solaris 7-9, Windows 2000/XP/2003, HPUX, and LINUX
are available. Other operating systems may have them as well, but are not supported by SMARTMon-UX.)
5.3 Does the HBA API support asynchronous event notification?
Version 1.0 of the spec does not support asynchronous event notification, however this capability is a central part of
Version 2.0 of the spec.
5.4 What is the maximum buffer size that can be passed to the common HBA function
HBA_SendCTPassThru?
This is a vendor specific limitation and depends on the vendor of your HBA. (It does not matter, we do not use this