Hardware/System Setup for Uncompressed Video I/O

By Chris Pirazzi.

This is a repository for information on how best to configure hardware and software on SGI systems for uncompressed video disk I/O. Please send us some mail if you have additional tips or experiences with that you'd like to share with other lurkers.

Disk Subsystems

You need to put together a disk subsystem capable of your desired video rate, capacity, and reliability. You need to choose:

Platform-Specific Notes

Here is a place to collect this information about SGI platforms: Currently we present some information about O2/mvp systems. If you have data to contribute for any platform, send us some mail.

O2 systems with mvp

Hardware

O2 systems come with two single-ended ultra SCSI busses. The internal bus serves the CD-ROM and two internal 3.5" drive bays with SCA connectors (one bay on the R10k O2). The external bus is available on a "68-pin high density" connector. O2 also has a half-size PCI slot which you can use for an additional ultra SCSI or other interface card.

Several SGI developers and customers have successfully recorded and played back VL_PACKING_YVYU_422_8 active-region uncompressed video in the 4 major video timings (17-22 MB/sec) using only the O2's external ultra SCSI bus.

An official SGI-supported disk solution for uncompressed video is to chain together four SGI 4GB or 9GB disks and plug them into your external SCSI connector. Here are the SGI part numbers:

P-4G-EXT          EXT 4G DISK DRIVE For O2/Octane (get 4 of these)
P-9G-EXT          EXT 9GB DISK DRIVE For O2/Octane (or 4 of these)
CBL-SCSI3/3-.25   CABLE SCSI3 TO SCSI3 .25M (get 3 of these)
CBL-SCSI3/3-.75   CABLE SCSI3 TO SCSI3 .75 METERS (get 1 of these)
We have found this combination to work reliably.

Unofficially, the lurkers have had good luck with Ciprico's Spectra 6900 ultra-SCSI disk array. We were also successful with with Ciprico's lower-end Spectra 6500 (25 GB, RAID-3, not hot pluggable) ultra-SCSI disk array, but we hear there may have been hardware changes between the beta unit we used and the final product which sacrificed throughput. If any lurkers have experience with this, please let us know. It is mere coincidence that we tried Ciprico's arrays first. Don't take the above as an endorsement of them over anyone else, they're just what we've had time to try out. Other customers have had good luck with disk arrays from Hammer.

Others have reported excellent results using the single-ended version of the SGI http://www.sgi.com/Products/hardware/servers/products/OriginVault.html Origin Vault (a 6-disk enclosure) on O2, although this is not currently a supported configuration.

After much experimentation and hair-pulling, we have also had some luck with hand-brewed third-party disk enclosure + disk setups. These setups are much cheaper than the turnkey solutions, but offer no RAID or hot pluggability and are much harder to get working reliably. We found that most 2-4 disk SCSI enclosures available at computer stores and mail-order catalogs are simply not designed to operate at ultra speeds, and generate unacceptable numbers of SCSI cable problems and other electrical problems. We tore up several commonly available SCSI enclosures and discovered wiring in blatant violation of SCSI electrical specs (the vendors were able to get away with this at lower bus speeds). The frequency of electrical failures varied not only by enclosure and SCSI cable length, but also by drive! If you choose to go this route, we strongly recommend using the shortest SCSI cables you can find (we have had most luck with 10 inch cables between the enclosure and the O2), making sure to terminate properly, and using the smallest number of boxes you can (1 is best).

Also, disk drives you buy off the shelf may work, but in many cases SGI tunes or configures the firmware of their supported disks to improve performance. The lurkers make no excuse for SGI's disk drive prices, but we can at least say that buying SGI drives saves customers the kind of hassles described above.

We'd appreciate any additional experiences or hints you have to offer in the area of disks and disk arrays that work on O2.

Software

The http://www.sgi.com/Technology/toolbox.html Developer Toolbox contains some good sample code and tips on recording and playing compressed and uncompressed video on O2 under src/exampleCode/video/O2/captureNplay/. These examples use the O2 buffering API (see What Are the SGI Video-Related Libraries? for more info on buffering APIs). This case study will provide additional examples of uncompressed video i/o that use the classic buffering API.

Depending on how your disk i/o software is structured, you may need to apply the following IRIX 6.3 tune, which increases the size of the O2 SCSI driver's scatter gather list, so that simultaneous large I/Os to different SCSI disks can occur in parallel:

You may also want to tune the platform-independent kernel tunable variable maxdmasz. You need this in rare cases where you are issuing multi-megabyte I/Os:

In Software Methods for Disk I/O, we will give you the necessary information to determine if these tunes will help you. If you want, you could just do them anyway (they cause the kernel to eat up slightly more memory).