Storage Controller Certification
Level 2 Test Plan

Introduction
Required Hardware and Software
Required Hardware Configuration
System Configuration I
System Configuration II
Required Software Configuration
Hardware Certification Tests
Manual Tests
Automated Tests

Introduction

This document provides detailed descriptions of the manual storage controller certification tests. After you successfully complete the manual tests described in this document, use the HCTS to run the automated tests.

These Level 2 tests provide greater test coverage than the Level 1 tests. See Storage Level 1 Tests and Storage Level 2 Tests for further details.

When a driver supports multiple controllers, the controller that supports the most extensive feature set is designated the primary controller. Additional controllers supported by the same device driver are known as supplementary controllers.

The tests described in this document are used for one of these three purposes:

Note: The tests described in the Storage Controller Certification Level 1 Test Plan are for functional testing of controllers at Level 1 or for certifying any supplementary controllers that are supported by the same driver under test as a primary controller.

Run all tests on both system configurations.

Required Hardware and Software

Make sure your system meets the general hardware and software requirements for all certifications stated in the Hardware Certification Test Suite Installation Guide.

This section describes additional hardware and software required to execute the storage controller certification tests.

Required Hardware Configuration

System Configuration I

The minimum requirements for this configuration are as follows:

Fibre Channel

RAID

SATA

SCSI

USB Hard Drives

System Configuration II

The minimum requirements for this configuration are as follows:

SCSI

RAID

Note: While a dual-processor machine covers the minimum requirements for this configuration, use a quad-processor machine for RAID controllers used in servers.

Fibre Channel

USB Hard Drives

SATA

Back to Top


Required Software Configuration

Back to Top


Hardware Certification Tests

These tests require two systems. Run all tests from System Configuration II, and use System Configuration I as the client.

Run all tests as user root unless otherwise indicated in the HCTS test ReadMe file.

Manual Tests

First run the set of tests for all controllers, then run the tests specific to the storage technology of the driver under test.

Note: If you are only certifying a USB hard disk, the first set of tests for controllers does not have to be run.

All Controllers

SCSI

RAID

Fibre Channel

USB Hard Drives

SATA

Back to Top


Verify Driver Diskette Format and Contents

You only need to perform this test if you are doing one of the following:

Required Hardware

Required Software

Test Strategy

The audit_itu(1M) utility verifies the format and contents of a driver diskette created using pkg_drv(1M) or pkg_drv2patch(1M).

Test Procedure

  1. Insert the driver diskette into the diskette drive.

  2. Verify the driver diskette format and contents.

    # volcheck
    # audit_itu

Expected Results

Back to Top


Testing New Installation of Solaris and the Driver

This test verifies that the driver can be installed on the system and removed properly.

Required Hardware

Test Strategy

Test Procedure

  1. Install the test machine with the Solaris release and the driver under test.

  2. At the initial Solaris Device Configuration Assistant screen, press F4_Add Driver and follow the instructions provided.

  3. After the driver is installed, continue installing the Solaris OS.

  4. Ensure that the test system is sliced correctly.

    Note: To specify slice layout during Solaris installation, do the following:

  5. After the Solaris installation completes, reboot the system and enter the Configuration Assistant by pressing Escape when this prompt is displayed:

    SunOS Secondary Boot version xx
    
        Solaris Booting System
    
    Running Configuration Assistant...
    Press ESCape to interrupt autoboot in 5 seconds...

  6. When the Solaris Device Configuration Assistant screen appears, press F2_Continue to display a list of device drivers loaded from the driver media that have been associated with controllers in the system.

  7. Examine the Solaris Boot screen to verify that all physical devices connected to the driver under test appear in the list.

  8. When prompted, reinsert the driver media.

  9. Use the Driver Post-Installation Checklist to verify that the driver is installed correctly.

  10. Verify that all devices connected to the controller under test can be accessed.

  11. Remove the driver from the system (see the pkgrm(1M) man page) and verify that there are no error messages.

  12. Add the driver to the system (see the pkgadd(1M) man page) and use the Driver Post-Installation Checklist to verify that the driver is installed correctly.

  13. Verify that all devices connected to the controller under test can be accessed.

  14. Reboot the system, and ensure that no error messages appear.

Expected Results

Back to Top


Testing Driver Installation on a System Running Solaris

Required Hardware

Test Strategy

Test Procedure

  1. Verify that the system is running.

  2. Install the Solaris environment on a disk drive that is not connected to the controller supported by the driver under test.

  3. Install the driver by inserting the driver media.

  4. Reboot the system when driver installation completes.

  5. Press Escape to run the Configuration Assistant.

  6. Examine the Solaris Boot screen to verify that all physical devices connected to the controller and supported by the driver under test have corresponding software entries.

  7. Use the Driver Post-Installation Checklist to verify that the driver is installed correctly.

Expected Results

Back to Top


Testing Driver Installation During a Solaris Release Upgrade

Run this test on either System Configuration I or System Configuration II. It only has to be run once.

Required Hardware

Test Strategy

Test Procedure

  1. Install the Solaris operating environment on a disk drive that is not connected to the controller supported by the driver under test.

  2. To start the Solaris environment upgrade, insert the Solaris Device Configuration Assistant boot diskette for the release to be installed, and reboot the system.

  3. At the initial Solaris Device Configuration Assistant boot screen, press F4_Add Driver and insert the driver media when prompted.

  4. Continue the installation process. When you are prompted for the type of installation to perform, choose the Upgrade option (see the installation guide for your system).

    Initial         Upgrade         Exit
  5. See the Driver Post-Installation Checklist to verify that the driver is installed correctly.

Expected Results

Back to Top


Realmode Drivers Test

Controllers supported by the Solaris Operating System potentially require two drivers:

The realmode driver is used to identify hardware in the computer and runs prior to booting the Solaris kernel. For bootable controllers, the realmode driver assists in booting from the controller.

After the Solaris kernel boots, the protected mode driver is loaded and begins communication with the controller.

Required Hardware

Test Strategy

Test Procedure

  1. Reboot the system.

  2. Run the Configuration Assistant utility by pressing Escape when this prompt is displayed:

    SunOS Secondary Boot version xx
    
        Solaris Booting System
    
    Running Configuration Assistant...
    Press ESCape to interrupt autoboot in 5 seconds...

  3. When the Solaris Device Configuration Assistant screen appears, press F2_Continue.

  4. The system determines the bus types, then displays the Identified Devices screen, which lists the hardware present in the system.

  5. Verify that the name of the controller used for testing the driver is displayed, then press F2_Continue.

  6. Press F4_Device Tasks from the Identified Devices screen, and then select View/Edit Devices to display the controller's ports and interrupts (IRQs).

  7. Checking IRQs to verify that there are no hardware conflicts in the system.

  8. Return to the Identified Devices screen and press F2_Continue to begin loading realmode drivers and verify that the realmode driver under test is loaded by watching for this message:

    Loading Driver driver.bef ...

    When the Solaris Boot screen appears, it lists all the bootable devices available on the system (the * indicates the default bootable device).

  9. Ensure that there is a valid target ID for each SCSI peripheral controlled by the driver under test.
    A valid SCSI target ID is a number between 0 and 15. At this point, the realmode driver should have recognized all the controllers and peripherals. The following is an example Solaris Boot screen:

    [ ] NET: Intel Pro100/B Fast Ethernet on Board PCI bus 1, at Dev 1
    [ ] DISK: (*) Target 0, QUANTUM VIKING II 4.5 WSE 4110
        on Symbios Logic 53c875 SCSI on Board PCI Bus 1, at Dev 3
  10. Boot the system.

  11. When the system comes up, view the device files created in the /devices and /dev/dsk directories to verify that the Solaris driver created device files for all the peripherals connected to the controller under test.

    Another method is to execute the prtconf command and verify that instances were created for each controller.

    # prtconf

    This sample fragment shows some of the entries in the output:

            . . .
    pci1069,20, instance #0
        sd, instance #0
        sd, instance #1 (driver not attached)
        sd, instance #2 (driver not attached)
        sd, instance #3 (driver not attached)
        sd, instance #4 (driver not attached)
        sd, instance #5 (driver not attached)
        sd, instance #6
        sd, instance #7 (driver not attached)
        sd, instance #8 (driver not attached)
        sd, instance #9 (driver not attached)
        sd, instance #10 (driver not attached)
        sd, instance #11 (driver not attached)
        sd, instance #12 (driver not attached)
        sd, instance #13 (driver not attached)
        sd, instance #14 (driver not attached)
        sd, instance #15 (driver not attached)
        sd, instance #77
        sd, instance #78
        sd, instance #79
            . . .
    #

    You can also use the format utility to check for disk drives.

    # format

    All available disk drives are listed.

For more information about testing CD-ROM and tape drives, see CD-ROM Support Test and Tape Support Test.

Expected Results

References

Back to Top


Driver Post-Installation Checklist

Required Hardware

Test Strategy

After a driver is installed, certain files specific to the driver are created and other files are modified. By checking these files, you can determine whether the driver is properly installed.

Test Procedure

  1. Verify that one of these two sets of files are present.
    driver_name is the name of the driver under test.

    or:
  2. Verify that entries for the installed driver appear in these files:

    For example, to locate the ncrs driver entry in the /etc/name_to_major file, type:

    # grep ncrs /etc/name_to_major
    ncrs 20

Expected Results

Back to Top


CD-ROM Support Test

Required Hardware

Test Strategy

Test Procedure

  1. Reboot the system.

  2. Press Escape to interrupt autoboot.

  3. When the Solaris Boot screen is displayed, locate the CD-ROM SCSI target ID.
    The SCSI target ID is a number between 0 and 15. Following is a sample Solaris Boot screen:

    [ ] NET : Intel Pro100/B Fast Ethernet
        on Board PCI bus 1, at Dev 1
    [ ] DISK: (*) Target 0, QUANTUM VIKING II 4.5 WSE 4110
        on Symbios Logic 53c875 SCSI on Board PCI Bus 1, atDev

    Then reboot the system again, and verify that the controller is configured correctly.

  4. After the system reboots, insert a CD into the CD-ROM drive and type these commands:

    # volcheck
    # df -k

    Examine the df command output, looking for an entry similar to this:

    /vol/dev/dsk/c1t0d0/x/y 253974 253974 0 100% /cdrom/x/y
    where x and y are directories and file names.

  5. Type:

    # mount

    Look for a CD-ROM entry similar to this:

    /cdrom/sol_9_404_x86/s0 on /vol/dev/dsk/c1t0d0/sol_9_404_x86/s0 readonly/nosetuid/nodevices/intr/largefiles/xattr/onerror=panic/dev=1740002 on Thu Sep 9 08:58:00 2004
  6. List the directory contents of the CD-ROM.

    # ls -lR /cdrom

Expected Results

Back to Top


Tape Support Test

Required Hardware

Test Strategy

Test Procedure

  1. Verify that the system is running.

  2. Insert a tape into the tape drive and reboot the system.

  3. At the shell prompt, type the following:

    # ls -l /dev/rmt

    Output similar to the following is displayed, where n is the tape drive instance:

    lrwxrwxrwx 1 root root 55 Oct 28 12:32 /dev/rmt/n ->
      ../../devices/pci@0,0/pci1011,26@a/pci1069,20@8/st@4,0:
  4. If the files are not displayed, type these commands:

    # tapes -r /dev
    # ls /dev/rmt

  5. View the output and select the tape drive device file.

    If only one tape drive is installed on the system, use /dev/rmt/0 for the file.

  6. To verify that I/O operations can be performed on the tape, type the following commands, where ksh can be substituted by the name of any file:

    # cd /tmp
    # tar cvf /dev/rmt/0 -C /bin ksh
    # tar xvf /dev/rmt/0
    # sum /bin/ksh ksh

Expected Results

Back to Top


Booting From a Disk Drive Test

Required Hardware

Test Strategy

Test Procedure

  1. Reboot the system.

  2. Run the Configuration Assistant utility by pressing Escape when this screen is displayed:

    SunOS Secondary Boot version xx
    
    Solaris Booting System
    
    Running Configuration Assistant...
    
    Press ESCape to interrupt autoboot in 5 seconds...
  3. When the Solaris Device Configuration Assistant screen appears, press F2_Continue. At the Identified Devices screen, press F2_Continue.

  4. When the Solaris Boot screen is displayed, choose the disk drive that contains a Solaris boot partition and is connected to the HBA supported by the driver under test.

    This example of a partial Solaris Boot screen shows some of the bootable controllers present on the system. This example is for a 32-bit x86 platform:

    [ ] NET : Intel Pro100/B Fast Ethernet
    on Board PCI bus 1, at Dev 1
    [ ] DISK: (*) Target 0, QUANTUM VIKING II 4.5 4110
    on Symbios Logic 53c875 SCSI on Board PCI Bus 1, at Dev 3
  5. After the system reboots, the Solaris Common Desktop Environment windowing system displays a login window.

  6. If there are problems booting from the disk drive, note all the error messages displayed while the system is booting, for debugging purposes. A common error message displayed on the screen is operating system not found.

Expected Results

The system reboots from the disk drive containing the root (/) file system and connected to the controller supported by the driver under test.

Back to Top


Creating LUNs Test

Required Hardware

Test Strategy

Creating LUNs is part of SCSI functionality. Using a target with multiple drives, each drive can be given a specific LUN number to identify itself using one target number.

Test Procedure

This procedure shows how to create LUNs on a target with multiple CD-ROMs.

  1. Edit /kernel/drv/sd.conf. Given that the logical name for the target with multiple CD-ROMs is c1t6d0 and there are five CD-ROM drives, add the following four lines to /kernel/drv/sd.conf:

    name="sd" class="scsi" target=6 lun=1;
    name="sd" class="scsi" target=6 lun=2;
    name="sd" class="scsi" target=6 lun=3;
    name="sd" class="scsi" target=6 lun=4;

    Note that entry lun=0 does not have to be added because there is already an entry for lun=0 in sd.conf.

  2. Reboot the system.

  3. Configure the entries in /dev/dsk by using the devfsadm(1M) command.

  4. Check /dev/dsk for the new entries for LUNs 1 through 4. There should be entries beginning with c1t6d1, c1t6d2, c1t6d3, and c1t6d4.

Expected Results

The LUNs created are configured correctly in /dev/dsk.

Back to Top


RAID Support Test

Required Hardware

Required Software

Test Strategy

Exercise the different levels of RAID supported by the controller.

Note: The Hardware Certification Test Suite does not test the RAID management utility functions (see the Solaris Operating System Driver Design Guidelines).

Definitions for some of the different RAID types are provided for reference:

RAID 0
This RAID type is also referred to as striping. Allow at least two disk drives for this RAID level. This RAID level provides no fault tolerance. Recovering lost data is not part of this RAID implementation.
RAID 1
This RAID type is referred to as mirrored. Allow at least two disk drives for this RAID level testing. One disk is operational, and the other disk is a mirror image of the first.
RAID 5
This RAID type is referred to as Disk Striping With Distributed Parity. Allow at least three disk drives to configure this RAID level.

Test Procedure

  1. Configure RAID types using the RAID management utility available with the controller.

    Note: You must configure all the RAID types that the RAID management utility supports. If any of the RAID levels cannot be configured, the controller will not pass certification.

  2. On multi-channel controllers, you must configure packs across channels.

Expected Results

All RAID levels that the RAID management utility supports can be configured.

Back to Top


Targets Above ID 16 Test

Required Hardware

Test Strategy

This test verifies that a Fibre Channel disk drive set to a target ID of 16 can be recognized by the Solaris software.

Test Procedure

  1. Change the target ID of your disk to a number greater than 16 (see the Fibre Channel disk documents for instructions).

  2. Perform a verbose reconfiguration reboot of the system by typing b -rv at the prompt.

    <<< Current Boot Parameters >>>
    
    Boot Path :/pci@1,0/cpqncr@9/sd@1,0:a 
    Boot args: 
    
    Type b[file name] [boot-flags] <Enter> to boot with options 
    i <Enter>                         to enter boot with interpreter 
    <Enter>                           to boot with defaults 
    
    
    <<< time out in 5 seconds >>>
    
    Select (b)oot or (i)nterpreter: 
  3. Run the mount command to ensure that the driver can see the high target. For example:

    # mount /dev/dsk/c2t18d0s0 .mnt

Expected Results

Back to Top


USB Hard Drive Verification Test

Test Strategy

This test verifies that Solaris can recognize the USB hard drive as a storage device.

Required Hardware

Test Procedure

  1. Hot plug a USB hard drive into your system.

  2. Type the following command to ensure that the USB hard drive is configurable:

    # format -e

    The output from this command is similar to the following:

    c0d0 <DEFAULT cyl 23523 alt 2 hd 64 sec 63>
    /pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0
    c2t0d0 <DEFAULT cyl 1264 alt 2 hd 10 sec 258>
    /pci@0,0/pci103c,12bc@1d,2/storage@1/disk@0,0
    

    The second disk named c2t0d0 is a USB disk.

  3. Type the following command to verify that there is a USB disk entry:

    # cfgadm

    The output of this command is similar to the following:

    Ap_Id Type Receptacle Occupant Condition
    usb0/1 unknown empty unconfigured ok
    usb0/2 unknown empty unconfigured ok
    usb1/1 unknown empty unconfigured ok 
    usb1/2 unknown empty unconfigured ok
    usb2/1 usb-storage connected configured ok
    usb2/2 unknown empty unconfigured ok
    

    The sixth row starting with usb2/1 is a USB disk.

  4. Unplug the USB hard drive.

  5. Verify that the USB disk is no longer present by typing the following command:
    # cfgadm

    The USB disk usb2/1 should no longer be there.

Expected Results

Solaris recognizes the USB hard drive as a storage device.

Back to Top


USB Hard Drive Partition and Format Test

Test Strategy

This test verifies that the Solaris partitions, slices, and UFS file system can be built on the USB hard drive.

Required Hardware

Test Procedure

  1. Verify that the USB hard drive under test is not mounted.

  2. Create a partition on the USB hard drive by using the following command, where c2t0s0p0 is the name of the USB disk under test:

    # fdisk /dev/rdsk/c2t0s0p0

  3. Create two slices on the partition created in the previous step using the following command:

    # format

    This command produces a list of available disks.

  4. Select the USB disk you wish to format.

  5. At the format> prompt, type partition.

    format>partition

    A partion menu displays.

  6. Select the 0 - change '0' partition option by typing 0 and follow the instructions to make the two slices.

  7. Create a UFS file system on the slices.

    # newfs /dev/rdsk/c2t0d0s0

    where c2t0d0s0 is the USB hard disk under test.

    If the newfs command completes successfully, a UFS file system can be built on the USB hard drive and the test has completed successfully.

Expected Results

Back to Top


USB Hard Drive Mount, Read, and Write Test Procedure

Test Strategy

This test verifies that the USB hard drive can be mounted, unmounted, read, and written to successfully.

Required Hardware

Test Procedure

  1. Mount one slice of the USB hard drive.

    # mount /dev/dsk/c2t0d0s0 /mp

    where c2t0d0s0 is the slice of the USB hard drive under test.

  2. Verify that the USB hard drive is mounted and verify that the c2t0d0s0 USB Hard drive slice appears in the list of mounted file systems.

    # mount

  3. Copy a file to the USB hard drive.

    # cp -rf /testfile /test.c2t0d0s0

    In this command, testfile is a generic file on your system that can be copied to the mounted slice on the USB hard drive and test.c2t0d0s0 is the USB mount point.

    Validate that the file was copied successfully.

  4. Copy a file from the USB hard drive.

    # cp -rf /test.c2t0d0s0 /tmp/

    In this command, test.c2t0d0s0 is the USB mount point. Validate that the file was copied successfully from the mount point to the destination directory.

  5. Unmount the slice.

    # umount /dev/dsk/c2t0d0s0

  6. Verify that the hard drive is no longer mounted.

    # mount

    Validate that the entry for the USB hard drive is no longer in the output.

Expected Results

Back to Top


SATA Hard Drive Verification Test

Test Strategy

This test verifies that the SATA hard drive can be recognized successfully by the system.

Required Hardware

Test Procedure

  1. Reboot or reset the power of the test machine.
  2. When the system is powering on, get into the BIOS setup. If you do not see a message telling you how to get into the BIOS setup, read the documentation for your machine. When you are in the BIOS setup, enable the support for SATA hard drives.

    For example, on the Dell OptiPlex GX270 Desktop, press F2 to get into the BIOS, and then go to the following item:

    Drive Configuration
    SATA Primary Drive

    and:

    Drive Configuration
    SATA Secondary Drive

    Change the setting of "Drive Type" from "OFF" to "AUTO".

    Change other settings if needed.

    Save changes and exit BIOS setup.

  3. Perform a verbose reconfiguration reboot of the system. To do this, enter b -rv at the prompt when the following screen messages are displayed:

    <<< Current Boot Parameters >>>
    
    Boot Path :/pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0:a
    Boot args: 
    
    Type b[file name] [boot-flags] <Enter> to boot with options 
    i <Enter>                         to enter boot with interpreter 
    <Enter>                           to boot with defaults 
    
    <<< time out in 5 seconds >>>
    
    Select (b)oot or (i)nterpreter: b -rv
  4. When the system is up, log in as user root and open a terminal to execute the following command:

    # format -e

    The output from this command should be messages such as the following about the hard disks that are recognized by the system:

    Searching for disks...done
    
    AVAILABLE DISK SELECTIONS:
           0. c0d0 <DEFAULT cyl 26005 alt 2 hd 64 sec 63>
              /pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0
           1. c2d0 <DEFAULT cyl 58118 alt 2 hd 64 sec 63>
              /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0
           2. c3d0 <DEFAULT cyl 55872 alt 2 hd 64 sec 63>
              /pci@0,0/pci-ide@1f,2/ide@1/cmdk@0,0
    Specify disk (enter its number):

    Verify that this list includes the SATA disks. In the above example, c0d0 is the IDE disk that the system resides on, and c2d0 and c3d0 are the SATA disks attached to the SATA controller.

Expected Results

The SATA hard drives are recognized successfully.

Back to Top


Copyright 2005 Sun Microsystems, Inc. All rights reserved.