SourceForge.net Logo

User-space file system for Conduant StreamStor

A read-only filesystem for the Conduant StreamStor disk recorders. These recorders are used in Mark5, one of the several types of astronomic and geodetic VLBI data storage computers.

This file system provides normal file access to the data stored on the recorder diskpack(s). It works in normal kernel 2.4 and kernel 2.6 on normal Linux distros. On a Mark5 the file system makes any 'disk2file' step obsolete, as you no longer have to copy scans out onto disk before you can access them. In addition scans become accessible to normal software for FTP, Tsunami UDP, Grid-FTP, UDT, NFS or cluster export, data processing such as correlation, Matlab, and so on.

Of the Haystack recorders the Mark5A, Mark5B(+) and Mark5C are supported. Haystack has also another fuseMk5 that provides Mark5C support and it comes preinstalled on the Mark5C. For Mark6 there are several playback and record programs available from various sources.

The fuseMk5 file system is implemented via FUSE. FUSE is part of all Linux distros. It is a generic library and kernel module that makes writing and debugging file systems very easy. It is used by many other user-space file systems such as GridFS, sshfs, ZFS for Linux and iFuse.

Project details

Brief documentation is on the project wiki.

Source code is available in a git repository. Licensing is GNU LGPL.

No binaries are distributed because the Conduant StreamStor library licensing scheme is not clear on binary redistribution. You will have to compile fuseMk5 from source code, on a system that has the Conduant StreamStor SDK installed, and that has the Linux packages for FUSE development (typically, aptitude install libfuse2 libfuse-dev fuse-utils).

Playback reaches a rate of about 1.4 Gbit/s. The bottleneck is the ancient PCI-X bus of the StreamStor card.

Future development details

In principle the StreamStor PCI-X board could be replaced with four PCI Express IDE/PATA cards that support two devices (master, slave) on one IDE cable. At JIVE the disks of a module were found to contain 65536-byte blocks. The first 8 byte of each block are an unused 32-bit integer, followed by a 28-bit block sequence number (for de-striping / gather) and a 4-bit filler. The user directory is found at the end of every disk at 11272704 bytes before the end of the disk.

Usage

oper@Mark5% fuseMk5 /mnt/diskpack
fuseMk5 Version 1.1.8 for Mark5A/B/C
FuseMk5 mode   : autodetect
Bank selected  : A
Prefetch cache : 16777216
System autodetect result: Mark5A/5B
Diskpack autodetect: user dir length 83424 suggests Mark5A/Mark5B-
Checking that Mark5 software not running (TCP port 2620)...
Opening diskpack...
Selected bank 0. It has label 'FGI-0005/4000/1024Recorded'

.. in another console window:
oper@Mark5% ll /mnt/diskpack/euro89_cta*
-r--r--r--    1 oper     users    960411032 Dec 31  1969 /mnt/diskpack/euro89_cta26_246-2239
-r--r--r--    1 oper     users    2304363960 Dec 31  1969 /mnt/diskpack/euro89_cta26_246-2357
-r--r--r--    1 oper     users    2207595680 Dec 31  1969 /mnt/diskpack/euro89_cta26_247-0045
-r--r--r--    1 oper     users    2112310824 Dec 31  1969 /mnt/diskpack/euro89_cta26_247-0228
-r--r--r--    1 oper     users    2111945200 Dec 31  1969 /mnt/diskpack/euro89_cta26_247-0615
...
oper@Mark5% /usr/bin/time cat /mnt/diskpack/euro89_cta26_246-2239 > /dev/null
    0.20user 0.63system 0:09.79elapsed 8%CPU (0avgtext+0avgdata 0maxresident)k    0inputs+0outputs (108major+12minor)pagefaults 0swaps
oper@Mark5-637% /usr/bin/time md5sum /mnt/diskpack/euro94_mh_191-1616
    6c6b9e39759d5b83525d50f3c9900aba  euro94_mh_191-1616
    1.00user 0.48system 0:04.97elapsed 29%CPU (0avgtext+0avgdata 0maxresident)k
    0inputs+0outputs (1major+198minor)pagefaults 0swaps
oper@Mark5% scp /mnt/diskpack/euro94_mh_191-1616 oper@abidal.metsahovi.fi:/raid/
...
oper@Mark5% fusermount -u /mnt/diskpack

Exporting diskpack content over NFS is complicated by the fact that NFS serers usually run in kernel space, whereas the fuseMk5 file system is implemented in user space and is not directly visible to kernel space. To export the diskpack over NFS please read README-NFS-export.txt.


Project admin and developer: Jan Wagner,