mirror of
https://github.com/ceph/ceph
synced 2024-12-26 21:43:10 +00:00
Ceph is a distributed object, block, and file storage platform
c1e8d37dec
This is more or less equivalent to the linux kernel list_head: each embedded item struct has only a next and prev pointer. As long as the same member item is always used, at a fixed offset from the containing class, we can go from an item to a contained class. The offset can either be passed to the list (head) constructor, or to the begin(), front(), back() members explicitly. Iterator has 3 modes.. current (list_for_each), cache_next (list_for_each_safe), and magic (uses cached next iff current is empty). Magic will work most of the time... as long as we don't re-add ourselves to a different list inside the iterator loop. (Note that if we do, we will iterator up to the other list's head, not detect it is a head, an get an invalid pointer and crash.) elist: add to makefile elist: require offset for cosntructor elist: fix pop_front/back |
||
---|---|---|
debian | ||
fusetrace | ||
man | ||
qa | ||
src | ||
web | ||
wireshark | ||
.gitignore | ||
AUTHORS | ||
autogen.sh | ||
builddebs.sh | ||
ceph.spec.in | ||
ChangeLog | ||
configure.ac | ||
COPYING | ||
INSTALL | ||
Makefile.am | ||
NEWS | ||
publish.sh | ||
pull.sh | ||
push.sh | ||
README | ||
RELEASE_CHECKLIST | ||
release.sh | ||
sign.sh |
Ceph - a scalable distributed file system ----------------------------------------- Please see http://ceph.newdream.net/ for current info. ---- To build the Linux kernel client, $ cd src/kernel $ make or $ make KERNELDIR=/path/to/linux $ insmod ceph.ko $ mount -t ceph 1.2.3.4:/ /mnt/ceph ... ---- To build the server daemons, and FUSE client, $ ./autogen.sh $ ./configure $ cd src $ make (Note that the FUSE client will only be built if libfuse is present.) ---- A quick summary of binaries that will be built in src/ daemons: cmon -- monitor daemon. handles cluster state and configuration information. cosd -- storage daemon. stores objects on a given block device. cmds -- metadata daemon. handles file system namespace. cmonctl -- send commands to the monitor cluster. userland clients: cfuse -- fuse client. csyn -- synthetic workload generator client. tools: mkmonfs -- create a fresh monfs (for a new filesystem) monmaptool -- create/edit mon map osdmaptool -- create/edit osd map crushtool -- create/edit crush map dupstore -- duplicate an osd object store (offline) development/debugging: fakesyn -- simulator with synthetic workload fakefuse -- simulator that mounts with fuse ---- see also src/README