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:
- an interconnect for your disk or disk array. could be:
- fast-wide SCSI 2 (20 MB/sec peak), single-ended (SE) vs. differential (DF)
(fast-wide is also called "fast-10 wide")
- ultra-wide SCSI 3 (40 MB/sec peak), single-ended (SE) vs. differential (DF)
(ultra-wide is also called "fast-20 wide")
- fibre channel (100 MB/sec peak)
- sometimes FDDI or HIPPI
- third-party or SGI PCI, VME, GIO, EISA, or other cards
which interface directly to a disk array or provide one
of the above interconnects.
- what RAID level you need, and whether you need hot-swap
capability. The RAID level indicates how redundantly your data
is stored, in case one or more of your disks fails. RAID-0
means no redundancy. RAID-1, RAID-3, and RAID-5 imply various
methods of replicating your data (replicating all the bits,
parity, etc.) for reliability.
- whether to buy a third-party disk array which delivers the
required bandwidth as a single unit, or use SGI's disk striping and
RAID support to get the required bandwidth across several independent
disks. SGI's home page at http://www.sgi.com describes several SGI
and third-party disk array solutions. Try clicking on "Find" and
searching for RAID.
Platform-Specific Notes
Here is a place to collect this information about SGI platforms:
- the busses to which you can connect storage devices that are useful
for uncompressed video i/o:
- how many built-in
- how many accessible using PCI, VME, GIO, EISA cards, or SGI IO options
- for SCSI:
- fast-wide vs ultra-wide
- single-ended vs. differential vs. both
- for external busses, what connector:
- 50-pin "Centronics" connector
- "50-pin SCSI-2" / "50-pin High Density" connector
- "68-pin wide SCSI-3 P" / "68-pin High Density SCSI-3" connector
- for internal busses, what drive bay size, what
drive connector:
- "50-pin Low Density Unshielded" / "50-pin ribbon cable"
- "68-pin Low Density Unshielded" / "68-pin ribbon cable"
- 80-pin SCA-2 connector (SCA-1 is obsolete)
- may also be fibre channel, etc.
- SGI-supported disk vaults/enclosures and disks you
can use for uncompressed video i/o
- third-party disk array, disk enclosure and disk solutions that
work reliably. certain third-party video i/o solutions have been
specifically qualified by SGI.
- tips on enclosure and disk solutions to avoid
- tips on configuring your OS software for best performance
(kernel/system tuning, setting up filesystems).
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:
- Become root
- cd /var/sysgen/master.d
- Edit the file adp78
- Go down to the line containing:
int adp_num_sg[ADP78_NUMADAPTERS] = {258, 258, 258, 258, 258, 258, 258};
- Note the unusually helpful comments in this file, which explain
the function of the adp_num_sg variable.
- Change the line so it says:
int adp_num_sg[ADP78_NUMADAPTERS] = {1026, 1026, 1026, 1026, 1026, 1026, 1026};
- Reboot your system
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:
- Become root
- Type: systune -i
- Type: maxdmasz 4097 (or whatever number of kilobytes you desire)
- Answer yes to the "are you sure question"
- Type: quit
- Reboot your system
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).