Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Distributed I/O Daemon - a 9P file server
C Shell C++ Other

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
config
diod
etc
libdiod
liblsd
libnpclient
libnpfs
scripts
tests
utils
AUTHORS
COPYING
ChangeLog
DISCLAIMER.LLNS
INSTALL
META
Makefile.am
Makefile.in
NEWS
README
autogen.sh
configure
configure.ac
diod.spec
diod.spec.in

README

+----------+
| Building | 
+----------+

To build all of diod's features, you need a few prerequisites:

    lua, lua-devel (version 5.1 or better) [on debian/ubuntu liblua5.1-dev]
	For /etc/diod.conf config file support.

    munge, munge-libs, munge-devel
	For MUNGE authentication support.

    tcp_wrappers, tcp_wrappers-libs, tcp_wrappers-devel
	For TCP wrapper support.

    libcap, libcap-devel
	Necessary for correct handling of supplemental groups when
	server is running as root (DAC check is delegated to client).

Note: on Debian/Ubuntu, LUA requires the following configure flags:

    ./configure CPPFLAGS="-I/usr/include/lua5.1" --with-lua-suffix=5.1

+---------------------+
| Client Requirements | 
+---------------------+

Diod is a user space server for the kernel v9fs client (9p.ko, 9pnet.ko).
Although the kernel client supports several 9P variants, diod only supports
9P2000.L, and only in its feature-complete form, as it appeared in 2.6.38.

Earlier versions of the kernel that do not support 9P2000.L will fail
at mount time when version negotiation fails.  Some pre-2.6.38 versions
of the kernel that have 9P2000.L but still send some 9P2000.u ops may
fail in less obvious ways.  Use a 2.6.38 or later kernel, or a v9fs
backport such as this one of 2.6.38.5's v9fs to RHEL6.1's 2.6.32 kernel.

    git://github.com/garlick/9p-sac.git

+---------+
| Testing |
+---------+

Unit tests (make check):

    ./tests/misc
	Miscellaneous unit tests.
	Some tests will be skipped if not root.
	Others will be skipped if valgrind is not installed.

    ./tests/user
	User space client and user space server running across a socketpair.
	Some tests will be skipped if not root.
	Others will be skipped if you ARE root.
	None require kernel 9p support.

    ./tests/kern:
        Kernel space client and user space server running across a socketpair.
        Tests will be skipped if 9p cannot be modprobed.

Running by hand for debugging:

    Start diod server in foreground, with proto debug, no-auth, one export:
	sudo ./diod -f -d 1 -n -e /tmp/9

    Mount it:
        sudo mount -t 9p -n 127.0.0.1 /mnt \
            -oaname=/tmp/9,version=9p2000.L,uname=root,access=user

    Or mount with diodmount:
	sudo ./diodmount -n localhost:/tmp/9 /mnt

    Or if diodmount is installed as /sbin/mount.diod:
        sudo mount -t diod -n localhost:/tmp/9 /mnt

Running diod for I/O forwarding on clusters:

    On I/O node, set up /etc/diod.conf accordign to diod.conf(5), then:
       chkconfig diod on
       service diod start

    On compute node, if I/O node is fritz42, add entries like this to fstab
    (assumes diodmount is installed as /sbin/mount.diod):
       fritz42:/g/g0  /g/g0         diod  default 0 0
       ...

    Alternatively, use "zero-config" automounter method(*):
       set DIOD_SERVERS="fritz42" in /etc/sysconfig/auto.diod
       add to /etc/auto.master "/d /etc/auto.diod"
       mkdir /d
       chkconfig autofs on
       service autofs start
       ln -s /d/g.g0 /g/g0
       ...

    Note that at this point diod is only being tested with NFS file systems.
    Use it with Lustre or GPFS at your own peril - but if you do, please
    report issues!

(*)only works on exports that are themselves mount points, see /etc/auto.diod

+---------+
| Support |
+---------+

    Source access is on the github site:

        https://github.com/chaos/diod

    Wiki and issue tracker are on the google code site:

        http://code.google.com/p/diod/

    Diod can be discussed on the v9fs-users mailing list:

        https://lists.sourceforge.net/lists/listinfo/v9fs-users
Something went wrong with that request. Please try again.