siolib
Command-line ProgramsTwo command-line utilities have been provided with the SIO library
for testing purposes. swrite
will write data from a Unix
file into a file stored in sio_fs
and sread
will copy data from sio_fs
back to a normal Unix file.
The sio_fs
implementation in siolib
uses
the Cheops file manager, distributed separately with the
NASD release.
swrite
works by creating a symbolic link into which it
encodes the location in Chops of the actual storage object. This
symbolic link is useless to standard Unix programs; only programs that
are linked against the sio library and call sio_open
to
open them can interpret what they point at.
swrite
and sread
both require that
the Cheops file manager and at least one NASD drive be running.
The documentation that comes with the NASD 1.0 release describes
how to start a drive. The Cheops manager can be run in a mode where
it stripes data across many drives. The siolib
library
and command-line programs are unaware of your drive configuration:
you should just see increased bandwidth as you run against more
drives.
Here is a summary of the steps needed to get to the point where
you can run sread
and swrite
. We presume
that $NASDROOT
is set to the root directory of your
NASD installation:
/dev/sda
and formatting it first (the -f
option to pdrive
). Note that we are running the
drive as root, since it needs to access the physical device
/dev/sda
, which typically is protected against
casual use by non-priveleged users.
cheops.dtab
file to tell the Cheops
manager where the drives are. The format of the file is one
entry per line. Each entry looks like:
where keyword
currently can only be
drive
, server
and port
specify the name and port of a NASD drive, and id
is a unique number associated with each drive. For instance,
if you are running two drives, one on rhoda
and
one on shirley
, your cheops.dtab
file might look like:
(port 6661 is the standard NASD port).
cheops.dtab
file you created in step 2.
The Cheops manager lives in
$NASDROOT/cheops/mgr/cheops_mgr
. It requires at least
one argument, the partition number to use on each drive. Make
sure that you pick a partition number that is not being used
for any other purpose on all of the drives listed in
cheops.dtab
. The Cheops manager will create the
partition if it doesn't exist. For example:
starts the Cheops manager using the cheops.dtab
file in the current working directory and using partition number
3 on all drives listed in it.
cheops.mtab
file to tell the routines
in siolib
how to contact the Cheops manager.
This file has a format identical to that of
cheops.dtab
, except that the only keyword currently
allowed is manager
. If, for instance, you are
running the Cheops manager on a machine called cookie, your
cheops.mtab
file would look like:
(port 6663 is the standard Cheops manager port).
At this point, you are ready to run swrite
and
sread
. They must be run in the same directory that
the cheops.mtab
file is in. Both programs take the
same arguments:
Option | Description |
---|---|
-v |
Turn on verbose output; one dot per megabyte transfered is printed to show progress. |
-t |
Show timing of run in megabytes per second. |
-b blksz |
Set the number of bytes that are read from/written to
the files in each request. The defaults are 64kB for
swrite and 256kB for sread
|
swrite
expects source
to be the name
of a Unix file. It reads its contents and writes them into NASD
via the Cheops manager (which stripes the data across the drives
as per its cheops.dtab
file). The target
argument to swrite
is also the name of a "file" in
Unix, but this file will actually be a symbolic link created by
swrite
, whose contents are specially interpreted by
the code in siolib
's sio_open
primitive.
For instance:
/some/big/file
was written into
NASD via siolib
, and the symbolic link
siowrite.test
was created to "point" at the data in a way
that sread
can make sense of.
sread
performs the inverse operation of copying data
out of NASD and into a regular Unix file:
While running swrite
and sread
, you
will notice messages being printed by the Cheops manager. Error
conditions are clearly noted by both the manager and by the
swrite
and sread
programs. If you are
unsure of the source of an error, siolib
can be
compiled with additional debugging messages turned on, as described
in compiling siolib.
Last modified: Wed Feb 17 19:50:26 EST 1999