The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

IBM::StorageSystem::Drive - Class for operations with a IBM StorageSystem drive

VERSION

Version 0.01

SYNOPSIS

IBM::StorageSystem::Drive is a utility class for operations with a IBM StorageSystem drive.

        use IBM::StorageSystem;
        
        my $ibm = IBM::StorageSystem->new(      user            => 'admin',
                                        host            => 'my-v7000',
                                        key_path        => '/path/to/my/.ssh/private_key'
                                ) or die "Couldn't create object! $!\n";

        # Get drive ID 2 as an IBM::StorageSystem::Drive object - note that drive ID 2 
        # is not necessarily the physical disk in slot ID 2 - see notes below.
        my $drive = $ibm->drive( 2 );

        # Print the drive capacity in bytes
        print $drive->capacity;
        
        # Print the drive vendor and product IDs
        print "Vendor ID: ", $drive->vendor_id, " - Product ID: ", $drive->product_id, "\n";
        
        # Print the SAS port status and drive status for all drives in a nicely formatted list
        printf("%-20s%-20s%-20s%-20s\n", 'Drive', 'SAS Port 1 Status', 'SAS Port 2 Status', 'Status');
        printf("%-20s%-20s%-20s%-20s\n", '-'x18, '-'x18, '-'x18, '-'x18);
        map { printf( "%-20s%-20s%-20s%-20s\n", $_->id, $_->port_1_status, $_->port_2_status, $_->status) } $ibm->get_drives;

        # e.g.
        # Drive               SAS Port 1 Status   SAS Port 2 Status   Status              
        # ------------------  ------------------  ------------------  ------------------  
        # 0                   online              online              online              
        # 1                   online              online              online              
        # 2                   online              online              online              
        # 3                   online              online              online
        # ...

        # Print the drive ID, slot ID, MDisk name and member ID of all drives
        foreach my $drive ( $ibm->get_drives ) { 
                print '-'x50, "\n";
                print "Drive ID  : " . $drive->id . "\n";
                print "Slot ID   : " . $drive->slot_id . "\n";
                print "MDisk ID  : " . $drive->mdisk_name . "\n";
                print "Member ID : " . $drive->member_id . "\n";
        } 

        # e.g.  
        # --------------------------------------------------
        # Drive ID  : 0
        # Slot ID   : 17
        # MDisk ID  : host-9
        # Member ID : 3
        # --------------------------------------------------
        # Drive ID  : 1
        # Slot ID   : 19
        # MDisk ID  : host-2
        # Member ID : 11
        # --------------------------------------------------
        # Drive ID  : 2
        # Slot ID   : 19
        # MDisk ID  : host-1
        # Member ID : 8
        # --------------------------------------------------
        # ... etc.

METHODS

FPGA_level

Returns the Field Programmable Gate Array (FPGA) level of the drive.

FRU_identity

Returns Field Replacable Unit (FRU) identity number of the drive.

FRU_part_number

Returns FRU part number of the drive.

RPM

Returns the Revolutions Per Minute (RPM) spindle rating of the drive.

UID

Returns Unique Identifier (UID) of the drive.

block_size

Returns drive block size.

capacity

Returns the drive capacity in bytes.

enclosure_id

Returns the ID of the enclosure in which the drive is physically located.

error_sequence_number

Returns the most recent error sequence number (if any).

firmware_level

Returns the drive firmware level.

id

Returns the drive ID (see NOTES section).

mdisk_id

Returns the mdisk ID number of which this drive is a member.

mdisk_name

Returns the mdisk name of which this drive is a member.

member_id

Returns the drive MDisk member ID number.

node_id

Returns the drive node ID.

node_name

Returns the drive node name.

port_1_status

Returns the drive SAS port 1 status.

port_2_status

Returns the drive SAS port 2 status.

product_id

Returns the drive product ID.

quorum_id

Returns the drive quorum ID.

slot_id

Returns the drive slot ID (see the NOTES section).

status

Returns the drive status.

tech_type

Returns the drive technical type.

use

Returns the drive use type.

vendor_id

Returns the drive vendor ID.

NOTES

Note that the drive ID is not equivalent to the slot ID - the slot ID identifies the physical enclosure slot in which the drive is located whereas the drive ID is used to uniquely identify the drive within the context of the StorageSystem system.

The member ID is used to identify the drive within the context of the MDisk of which it is a member.

AUTHOR

Luke Poskitt, <ltp at cpan.org>

BUGS

Please report any bugs or feature requests to bug-ibm-v7000-drive at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=IBM-StorageSystem-Drive. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc IBM::StorageSystem::Drive

You can also look for information at:

ACKNOWLEDGEMENTS

LICENSE AND COPYRIGHT

Copyright 2013 Luke Poskitt.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.