open-osd.org
Home | Links | git | Mailing List
OSC software OSD implementation
As part of investigations into using OSDs as storage devices
in
direct-attached parallel file systems, systems researchers at OSC
()
have developed these
codes. The background for the project can be found on this
overview page.
A
git Mirror of OSC's OSD internal svn repository. Can be found
here at open-osd.org. (See below)
Thanks to Ananth Devulapalli, the maintainer of the project at OSC, for
letting us do this.
I have also tied the project with TOMO's
tgt git-tree as a submodule, so a user that needs an OSD2
target need only clone one head and everything will sync automatically.
The git tree is here:
git-clone --recursive git://git.open-osd.org/osc-osd.git
for behind a firewall:
git-clone --recursive http://git.open-osd.org/git/trees/osc-osd.git
or viewed
on the web
The tgt submodule can also be accessed at:
git://git.open-osd.org/osc-osd.git/tgt.git
or viewed
on the web
[Please
don't clone directly. Use the git-submodule command from within osc-osd
project to sync everything automatically. See below]
Tree description
osc-old-git
- branch: Historic git-tree
This is the dead git tree that is still available at:
web - http://git.osc.edu/?p=osd.git
or git://git.osc.edu/osd.git
It is no longer updated and won't even compile at current
state. But it has the longest available history of the project.
osc -
branch: OSC's svn Mirror
Is a branch I manually rebase-merged between the
osc-old-git and a git-branch I made with the help of the svn_fetch3.sh script.
OSC would let me have a read-only access to their GPL parts of the SVN
repository, with the help of a script I import this repository into
git. The script is incremental and is run from time-to-time to update
on OSC's progress. From today on all commits to this branch will be
made only by the svn_fetch3.sh script.
SVN_FETCH -
tag
This tags the patch that adds the first version of svn_fetch3.sh script
and friends, from here on the tree branches from the original git tree
and starts the SVN import.
master - branch
At this branch I keep open-osd patches to the OSC project, as
well as the integration with the tgt submodule. Checking out
this
branch should give a user working results. Other branches might not
compile and/or need farther manual configuration. Here I will try to
keep a working version.
The "osc"
branch might advance faster then "master".
I will try to only cut master at points that compile and pass my
tests, so users have a good chance of a working set. Needless to say
that osc-old-git is frozen.
osc will
never rebase, and will only advance forward. Other then exact commits
from svn it will contain updates to the svn_fetch* scripts if needed.
master will
rebase, with open-osd pending patches flouting above osc branch. When/if
some of the patches get accepted by Ananth or are fixed in some other
way, they will get dropped. So for users, they should "git-remote
update" plus "git-checkout -b ..." and not just "git-pull"
from master.
How to get started?
One might follow these steps:
$ git
clone --recursive git://git.open-osd.org/osc-osd.git
(Please use relatively new git version > 1.5.3.x)
$
cd osc-osd/
- If you forgot the --recursive switch above You will need an additional step
$ git
submodule init
$
git submodule update
The --recursive switch will auto-clone the tgt git tree and will checkout
the exact point of the tree needed at that point of the osc-osd tree.
- That's it you are ready to:
$ make
- For running the target also read osd-target/README and tgt/doc/.
But basically you should run ./up for a debug load of an OSD2 target. The backing store of the target will be at the default
/tmp/...
- For farther instructions on how to run the Initiator please
read osd-initiator/README and so on. You might need Kernel patches or
new Linux versions, for proper bsg support.
From time to time if you want to update on osc-osd progress you
might do:
- Save a working merge point: (optional)
$ git
tag WORKS_FOR_ME master
This can later be removed
if you're happy with the new stuff. I might keep these tagged as well.
$
git remote update
if you are on your own
branch then:
$ git
branch -f master origin/master
this will not work if
you're on master.
In that case do:
$
git-reset --hard origin/master
and one extra step
$
git-submodule update
This will sync tgt to the
proper commit point
-- BoazHarrosh - 23 Sep 2008