FMS includes an extensive file striping system that provides the following benefits:

File Striping Figure

FMS accomplishes these benefits by using a multi-level storage scheme for each file record. At the highest level, data is divided among I/O "queues". Each queue is responsible for managing the data in its memory region. Disks may physically be attached directly to the memory region or be at a central location.

Within each queue, the data is further divided into "stripes". Running in parallel, the stripes transfer their part of the record to their individual disk.

Each stripe may consist of multiple "volumes", which are used to increase capacity.

The figure above shows a FMS file system having 2 queues, 3 stripes per queue and 2 volumes per stripe.

Only symmetrical configurations are supported. The capacity of each volume must be identical.

The total speedup is the number of queues times the number of stripes per queue. For this example, data would be transferred at a rate of (2)(3) = 6 times faster than each individual disk.

The total capacity is the total number of volumes times the capacity per volume. For this example, the total storage would be (2)(3)(2)=12 times the data that could be stored on an individual disk.

When a file is opened for your application, FMS physically opens a file on each queue and stripe to hold the data. As you write each to the file, FMS divides your records up equally among the queues and stripes. When the volume becomes full, FMS automatically switches to the next volume. Because the configuration is symmetrical, all volumes will be switched at the same time.

FMS numbers the queues, stripes and volumes from 0 through 9. The 3 digit queue/stripe/volume number uniquely identifies each disk. For example, disk 021 in the above figure is in queue 0, stripe 2 and volume 1. The maximum number of queues, stripes per queue and volumes per stripe is 10 each, for a total of 1000 volumes.

Using the FMS File Striping System

The FMS File Striping System is easy to use. Simple follow these steps:
  1. Set the FMS Parameters NUMIOQ, NUMSTP, NUMVOL and MBYTES.
    These parameters specify the number of queues, number of stripes per queue, number of volumes per stripe and the size of each volume in megabytes. If you are using only one volume per stripe, the parameter MBYTES is not required. FMS assumes that the files you create will fit on a single volume in each stripe.

    Usually these parameters are set in the license file so they may be easily changed if the hardware configuration is modified.

    Example

    FMSSET
    NUMIOQ=2
    NUMSTP=3
    NUMVOL=2
    MBYTES=1024
    RETURN
  2. Create directories FMSDISKqsv
    FMS accesses the file system through directories you provide. The directories are named

    FMSDISKqsv

    where qsv is the queue/stripe/volume number. One directory is required for each volume.

    The performance and capacity you obtain depends on where you place these directories. It is important to distinguish between these directories used by FMS and physical disks. You may place the directories anywhere in the file system. One or more directories can be placed on a single physical disk. In an extreme example, it is possible to have all FMS directories reside on a single disk.

    To obtain the best performance, you should balance the disk stripes among the physical disks to achieve a uniform transfer rate. For example, if you have one disk that transfers data twice as fast as another, place two stripes on the faster disk.

    The capacity is limited by the space available in the smallest directory. You may want to rearrange the files on your system to provide FMS the maximum space.

    Example

    In the above figure, you would create the following 12 directories (UNIX notation used):

    Directory Created Queue Stripe Volume
    mkdir /disk0/FMSDISK000 0 0 0
    mkdir /disk1/FMSDISK001 0 0 1
    mkdir /disk2/FMSDISK010 0 1 0
    mkdir /disk3/FMSDISK011 0 1 1
    mkdir /disk4/FMSDISK020 0 2 0
    mkdir /disk5/FMSDISK021 0 2 1
    mkdir /disk6/FMSDISK100 1 0 0
    mkdir /disk7/FMSDISK101 1 0 1
    mkdir /disk8/FMSDISK110 1 1 0
    mkdir /disk9/FMSDISK111 1 1 1
    mkdir /disk10/FMSDISK120 1 2 0
    mkdir /disk11/FMSDISK121 1 2 1

  3. Create links pointing to the directories.
    FMS finds the directories in the file system by links you provide in the current working directory. One link is required for each directory.

    Example

    In the above figure, you would create the following 12 links (UNIX notation used):

    ln -s /disk0/FMSDISK000 FMSDISK000
    ln -s /disk1/FMSDISK001 FMSDISK001
    ln -s /disk2/FMSDISK010 FMSDISK010
    ln -s /disk3/FMSDISK011 FMSDISK011
    ln -s /disk4/FMSDISK020 FMSDISK020
    ln -s /disk5/FMSDISK021 FMSDISK021
    ln -s /disk6/FMSDISK100 FMSDISK100
    ln -s /disk7/FMSDISK101 FMSDISK101
    ln -s /disk8/FMSDISK110 FMSDISK110
    ln -s /disk9/FMSDISK111 FMSDISK111
    ln -s /disk10/FMSDISK120 FMSDISK120
    ln -s /disk11/FMSDISK121 FMSDISK121

One final tuning note. Operating too many disks in parallel on a single SCSI bus may exceed the bandwidth of the bus or the controller. On most systems, this is between 3 and 4 disks. The best solution is to divide the stripes evenly among the I/O busses.