Getting Started.

  1. First decide what you are looking for, what are you trying to confirm is good?

  2. Now decide whether you are doing a distructive test or a Read-only test. If you are doing a readonly test then I recommend you do not run this as root, and that you make sure you do not have permission to update the files and devices. Make sure you use the O_RDONLY option.

    diskomizer -o O_RDONLY=1 ...
  3. Now choose your devices or files to test. Be aware that with out the O_RDONLY option being set non zero, the contents of any device or file that you choose as your victim will be lost. For example I am going to be testing /dev/rdsk/c1t0d0s0 and /dev/rdsk/c1t1d0s0:

    diskomizer -o DEVICE="/dev/rdsk/c1t0d0s0 /dev/rdsk/c1t1d0s0"

    Or create an options file which specified these devices on the DEVICE line.

    DEVICE=/dev/rdsk/c1t0d0s0 /dev/rdsk/c1t1d0s0

    Diskomizer does not support any form of filename expansion (globbing) in the way the shell does, but you can get the shell to do it for you, here is how (korn shell), this will test slice 2 on every disk on controller 0, be very careful when doing this:

    diskomizer -o DEVICE="$(echo /dev/rdsk/c0*s2)"
  4. Do you want to to background the program?

    Yes: Set the options STDOUT and STDERR to redirect Standard out and Standard error respectively to files and set the option BACKGROUND to background it.. For example I am going to be writing to files called "stdout" and "stderr", So I have:

    STDOUT=stdout
    STDERR=stderr
    BACKGROUND=1

    or use the option file called background that is in /opt/SUNWdiskomizer/etc/background as your first option file, e.g.:

    diskomizer -f background -f your_option_file

Testing Individual disks.

When testing disks use the option file /opt/SUNWdiskomizer/etc/disks which will set the defaults for testing individual disks as opposed to testing the memory systems or volumes.

diskomizer -f disks -o DEVICE="$(echo /dev/rdsk/c0*s2)"

or if you want to background:

diskomizer -f disks -f background -o DEVICE="$(echo /dev/rdsk/c0*s2)"

Testing RAID devices

Because software raid devices tend to be larger than individual disks you normally need to increase the number of read and write threads per device to get a reasonable load.

diskomizer -f raid -o DEVICE="/dev/md/rdsk/md50"

Hardware RAID devices should be treated like disk drives since the limit on the load will be determined by a single driver instance.

Acceptance testing for new devices and drivers

When a new device and/or driver needs to be tested, use the EXPERT_READ_BUFFER_GAP and EXPERT_WRITE_BUFFER_GAP settings to make sure that some of the io buffers that are used are not aligned. This will verify that the device and it's driver can cope with non aligned buffers but the performance of Diskomizer will not be quite as good. The options are set for you when you use the acceptance configuration file, e.g.:

diskomizer -f acceptance -o DEVICE="$(echo /dev/rdsk/c0*s2)"

Doing surface analysis

You can use diskomizer to do fast surface analysis of current drives. Diskomizer can be configured to write and read every block on the all the disks to number of times to do a surface analysis of all the standard blocks on the device. You can specify the number of times to write and read each block with the SEQUENTIAL_PASSES option. Then set WTHREADS to zero. These options are set when you use the analysis option file:

diskomizer -o NLOOPS=3 -f analysis -o DEVICE="$(echo /dev/rdsk/c0*s2)"

This will do three passes of all the data on each drive on controller c0. The number of passes must be set before the analysis file is specified.