jeffpc / nx01

testing
MIT License
1 stars 0 forks source link

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.

Building and Installing

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 .

Running

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

Internal Dependencies

             | 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.