MDS 2.4 Core GRIS Providers
The MDS 2.4 release includes core MDS GRIS providers for the AIX and Tru64 operating systems. The grid-info-mds-core provider has also been enhanced to provide system configuration administration.
Background and Model
When the GRIS handling a resource status query suffers a cache miss, it dispatches an information provider to probe the necessary information. This means that the information providers may be on the critical path defining the query latency a client observes. To optimize this path, providers are specialized at install time for the specific platform to which MDS is being installed.
Each external provider tool generates LDIF output representing MDS data objects. For proper GRIS operation, these objects should match the schema loaded in the GRIS slapd service (non-matching data will be suppressed by slapd).
Each provider generates a small bit of information about a specific aspect of the resource. Therefore, it is likely that a fairly complete set of provider tools will be implemented for all supported OSs using only a few variants of each provider category. Most Unix-flavored OSs will share some of these tools, differing only in the permutation of variants defined.
Another optimization is to avoid probing any values at runtime that are supposed to be static for a host installation: resource hostname FQDN and MDS DIT names are set statically as part of the service installation. More importantly, shell built-in functions are preferred to external commands since this reduces the fork() load on the host.
Tool Output Format
Output data is in LDIF format and must match the schema distributed with the providers. Core MDS GRIS provider schema are documented separately in the MDS 2.4 release set. See MDS 2.4 Schemas.
Tool Parameterization
The provider tools accept several parameters to complete the static data configuration (hostname, DN suffix), as well as potential options to select subsets of data.
These parameters are normally configured in the GRIS back end provider configuration file, and GRIS invokes the tools with these host or use-specific options.
-dn suffix, or root of
all objects
-log log file (grid-info-system.log).
-probe-cache file used to exchange data between companion scripts.
-probe-full command string to generate full data without cache.
In MDS 2.4, all providers support options to restrict the output objects and a special output format that is used to merge the base platform description object as a special case.
-dn distinguished name
of object.
-hostobj report only top-level platform object.
-devclassobj report intermediate devclass objects.
-devobjs report leaf objects.
-noobjs report no objects (silent probe only).
-classify prefix output lines to support "sort | uniq" merge of single
object.
-validto-secs control timeout - for how long data is valid.
-keepto-secs control timeout – for how long data should be kept.
Tool Categories and Variants
grid-info-mds-core
Generates MdsSoftwareDeployment object containing information about automatically detected data such as $GLOBUS_LOCATION, base DNs of servers, and slapd process ids; and user-configured data such as administrator’s e-mail address and comments on the deployment.
grid-info-platform-*
Generates base MdsComputePlatform type object, reporting the compute platform type and instruction-set architecture.
grid-info-platform-uname works generically on most unix variants.
grid-info-os-*
Generates MdsSoftwareDeployment object containing information about the host operating system, as well as extension MdsOperatingSystemSummaryInfo data for the base platform object.
grid-info-os-uname works generically on most unix variants.
grid-info-cpu-*
Generates MdsCpuSummaryInfo, MdsDeviceClassCpu, MdsDeviceCpu objects describing the CPUs available on the system.
grid-info-cpu-linux interprets Linux 2.2/2.4 "/proc/cpuinfo".
grid-info-cpu-irix interprets Irix 6.4/6.5 "hinv" program output.
grid-info-cpu-solaris interprets Solaris "sysinfo" program output.
grid-info-cpu-aix interprets AIX "lsattr" and "lsconfig" program output.
grid-info-cpu-tru64 interprets Tru64 "helper executable" program output.
grid-info-cpufast-*
Rapidly generates same output of grid-info-cpu-* by reading an inventory output from a cache file and updating only the "CPU free" attributes using system load-average information. This provides high-frequency load information at reduced cost.
grid-info-cpufast-uptime interprets "uptime" program output.
grid-info-mem-*
Generates MdsPhysicalMemorySummaryInfo, MdsVirtualMemorySummaryInfo, MdsPhysicalMemory, and MdsVirtualMemory objects describing host RAM and VM status.
grid-info-mem-linux interprets Linux 2.2/2.4 "/proc/meminfo".
grid-info-mem-irix interprets Irix "top" program output.
grid-info-mem-solaris interprets Solaris "top" program output.
grid-info-mem-aix interprets AIX "lsps", "lscfg", and "lsattr" program output.
grid-info-mem-tru64 interprets Tru64 "vmstat" program output.
grid-info-net-*
Generates MdsNetworkInterfaceSummaryInfo, MdsDeviceClassNetworkInterface, and MdsDeviceNetworkInterface objects.
grid-info-net-linux interprets Linux "ifconfig" output for active interfaces.
grid-info-net-tru64 interprets Tru64 "netstat -in" numeric interface info, but does not provide netmask info.
grid-info-net-netstat interprets Irix/Solaris/AIX "netstat -in" numeric interface info, but does not provide netmask info.
grid-info-fs-* [-scratch <mount point>]...
Generates MdsFilesystemSummaryInfo, MdsDeviceClassFilesystem, and MdsFilesystemInfo objects. By default reports all local filesystems, while -scratch <mount> options select reporting only of local filesystem(s) at specified mount points.
grid-info-fs-posix interprets Posix "df -l -k [<mount>]..." output.
grid-info-fs-irix interprets Irix "df -l -k [<mount>]..." output.
grid-info-fs-aix interprets AIX "df -P -k [<mount>]..." output.
grid-info-fs-tru64 interprets Tru64 "df -l -k [<mount>]..." output.
Software Composition
The integrated core GRIS providers are composed hierarchically to share common shell script functionality.
grid-info-common
grid-info-cpu-aix
grid-info-cpu-common
grid-info-cpu-irix
grid-info-cpu-linux
grid-info-cpu-solaris
grid-info-cpu-tru64
grid-info-cpufast-uptime
grid-info-fs-aix
grid-info-fs-common
grid-info-fs-irix
grid-info-fs-posix
grid-info-fs-tru64
grid-info-mem-aix
grid-info-mem-common
grid-info-mem-irix
grid-info-mem-linux
grid-info-mem-solaris
grid-info-mem-tru64
grid-info-net-common
grid-info-net-linux
grid-info-net-tru64
grid-info-net-netstat
grid-info-os-uname
grid-info-platform-uname
grid-info-platform-merged
grid-info-mds-core
Supported Platforms and Tool Variants
Support status is unknown (but probably requires porting effort) for all unlisted platforms. Support for listed platforms is as described below.
AIX
5L
grid-info-platform-uname
uses 'uname -m/-p'
grid-info-os-uname uses 'uname -s/-r/-v'
grid-info-cpu-aix uses 'lsattr' and 'lsconfig'
grid-info-mem-aix uses 'lsps', 'lscfg', and 'lsattr'
grid-info-fs-aix uses 'df -P -k'
grid-info-net-netstat uses 'netstat -in'
Linux
Red Hat 7.1 to 7.3
2.2 and 2.4 kernels
grid-info-platform-uname
uses 'uname -m/-p'
grid-info-os-uname uses 'uname -s/-r/-v'
grid-info-cpu-linux uses /proc/cpuinfo
grid-info-mem-linux uses /proc/meminfo
grid-info-fs-posix uses 'df -l -k'
grid-info-net-linux uses 'ifconfig'
Irix
6.5/6.4
grid-info-platform-uname
uses 'uname -m/-p'
grid-info-os-uname uses 'uname -s/-r/-v'
grid-info-cpu-irix uses 'hinv -v -c processor'
grid-info-mem-irix uses 'top -d1 -b'
grid-info-fs-posix uses 'df -l -k'
grid-info-net-netstat uses 'netstat -in'
Solaris
2.5.1
2.7
grid-info-platform-uname
uses 'uname -m/-p'
grid-info-os-uname uses 'uname -s/-r/-v'
grid-info-cpu-solaris uses 'sysinfo -class device -format report -type cpu'
grid-info-mem-solaris uses 'top -d1 -b'
grid-info-fs-posix uses 'df -l -k'
grid-info-net-netstat uses 'netstat -in'
Tru64
5.0A/5.1/5.1A/5.1B
grid-info-platform-uname
uses 'uname -m/-p'
grid-info-os-uname uses 'uname -s/-r/-v'
grid-info-cpu-tru64 uses 'helper executable'
grid-info-mem-tru64 uses 'vmstat'
grid-info-fs-tru64 uses 'df -l -k'
grid-info-net-tru64 uses 'netstat -in'
Custom Information Providers
You can create your own information providers by following the procedures described in MDS 2.4 GRIS Specification Document: Creating New Information Providers (PDF).