Multiple disks are operated in parallel to transfer data between disk and memory more rapidly (file striping).
Multiple disks are bound together to create files much larger than the physical drives (volume binding).
Data transfers between disk and memory are distributed throughout the memory system, even if the memory is physically partitioned.
Transfers between memory and disk occur in parallel with processing to reduce run time.
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 SystemThe FMS File Striping System is easy to use. Simple follow these steps:
Set the FMS Parameters
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.
Create directories FMSDISKqsv
FMS accesses the file system through directories you provide. The directories are named
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.
ExampleIn 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
- 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.
ExampleIn 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.