ceph/branches/sage/cephmds2
sageweil 88a5f86387 import/exports logged;
mds log capped with import_map on shutdown


git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@1023 29311d96-e01e-0410-9327-a35deaab8ce9
2007-01-22 17:56:46 +00:00
..
client work so far on the journaling, mds update stuff 2007-01-19 19:52:42 +00:00
common sage mds branch 2007-01-19 19:48:59 +00:00
crush sage mds branch 2007-01-19 19:48:59 +00:00
doc work so far on the journaling, mds update stuff 2007-01-19 19:52:42 +00:00
ebofs sage mds branch 2007-01-19 19:48:59 +00:00
include work so far on the journaling, mds update stuff 2007-01-19 19:52:42 +00:00
jobs sage mds branch 2007-01-19 19:48:59 +00:00
mds import/exports logged; 2007-01-22 17:56:46 +00:00
messages import/exports logged; 2007-01-22 17:56:46 +00:00
mon sage mds branch 2007-01-19 19:48:59 +00:00
msg sage mds branch 2007-01-19 19:48:59 +00:00
osd sage mds branch 2007-01-19 19:48:59 +00:00
osdc sage mds branch 2007-01-19 19:48:59 +00:00
script sage mds branch 2007-01-19 19:48:59 +00:00
test sage mds branch 2007-01-19 19:48:59 +00:00
cfuse.cc sage mds branch 2007-01-19 19:48:59 +00:00
config.cc work so far on the journaling, mds update stuff 2007-01-19 19:52:42 +00:00
config.h work so far on the journaling, mds update stuff 2007-01-19 19:52:42 +00:00
COPYING sage mds branch 2007-01-19 19:48:59 +00:00
cosd.cc sage mds branch 2007-01-19 19:48:59 +00:00
fakefuse.cc sage mds branch 2007-01-19 19:48:59 +00:00
fakemon.cc sage mds branch 2007-01-19 19:48:59 +00:00
fakesyn.cc sage mds branch 2007-01-19 19:48:59 +00:00
Makefile sage mds branch 2007-01-19 19:48:59 +00:00
newsyn.cc sage mds branch 2007-01-19 19:48:59 +00:00
README sage mds branch 2007-01-19 19:48:59 +00:00
tcpfuse.cc sage mds branch 2007-01-19 19:48:59 +00:00
tcpsyn.cc sage mds branch 2007-01-19 19:48:59 +00:00
TODO import/exports logged; 2007-01-22 17:56:46 +00:00

pmds = parallel metadata server/system

'test' is a standalone proccess that runs all clients, OSDs, and MDSs
in a single process with a basic message passer (FakeMessenger).
Useful for debugging.

'pmds' uses MPI for communication.

'import' builds a metadata store on ./osddata/ by taking find output
from stdin.  Make sure find is run from the current directory so that
import can stat the files it's fed.  The find root becomes the file
system root; feel free to use relative paths.

This is all GPL, etc.


Getting started:

 1- Comment out the LEAKTRACER= line in the Makefile if you don't have
    LeakTracer installed (you probably don't).
 
 2- make (test and import targets are testing ones; pmds uses MPI)

 3- Build an OSD metadata store:
      # mkdir osddata
      # find /some/big/dir | ./import root

 4- Single proc sim:
      # ./test
    or more likely,
      # ./test > out

 5- Change parameters in config.cc.

 6- If you want stats logged, mkdir log (make sure you have enough
    file handles; there's one open file per client).


Notes on pmds (MPI version):

 - On mcr/alc I have to 
     # setenv LD_LIBRARY_PATH /usr/lib/mpi/mpi_gnu/lib
   for the GNU runtime MPI libs (otherwise you get the Intel ones,
   which segfault).

 - Each MDS and OSD gets its own node.  Clients are divided over
   whatever is left over.  So make sure you tell MPI to give you at
   least num_mds+num_osd+1 processes (num_mds etc defined in
   config.cc).



2004.08.25 sage@newdream.net