Nomad is a distributed file system supporting disconnected operation.
The current goals include:
Once these are done, we will reevaluate the next set of goals.
First, you need to get the code itself. Since Nomad is under heavy development, there are no releases yet. So, for now you have to clone it using git:
$ git clone https://github.com/jeffpc/nx01.git
After you have cloned the repository, you will need to check out the submodules:
$ git submodule init
$ git submodule update
Now that you have all the necessary code, you can build it.
$ cmake -DCMAKE_INSTALL_PREFIX=/prefix .
$ make
$ make install
This will build and install the binaries and libraries under the specified prefix.
You can also define the following cmake variables to help it find libjeffpc.
WITH_JEFFPC_LIB=<directory containing libjeffpc.so>
WITH_JEFFPC_INCLUDES=<directory containing jeffpc/jeffpc.h>
Setting WITH_JEFFPC
to /path
yields the same effect as setting both:
WITH_JEFFPC_LIB=/path/lib
WITH_JEFFPC_INCLUDES=/path/include
For example:
$ cmake -DCMAKE_INSTALL_PREFIX=/prefix -DWITH_JEFFPC=/opt/jeffpc .
First you need to create a config file. For an example along with a
description of the syntax refer to examples/nomad.conf
.
Either place the config file at /etc/nomad.conf or set the NOMAD_CONFIG
environment variable to the config file's location. All nomad executables
that require a config file check the environment variable, and if not set
they fall back to the hardcoded /etc/nomad.conf
.
For example:
$ export NOMAD_CONFIG=/some/where/nomad.conf
$ nomadadm host-id
0xabcdefabcdefabcd
| sunavl | common | objstore
-------------+--------+--------+----------
sunavl | - | n | n
common | n | - | n
objstore | y | n | -
objs. module | ? | ? | n
client | y | y | y
server | n | n | n
tool | n | n | n
y = yes, linked against
n = no, not linked against
- = not applicable
? = may be linked against as necessary
The above table assumes the lack of the avl library on the system. If it is present, it is used instead of sunavl.