Gecko: Contention-Oblivious Disk Arrays for Cloud Storage. Ji Yong Shin, Mahesh Balakrishnan, Tudor Marian, Hakim Weatherspoon. 11th USENIX Conference on File and Storage Technologies (FAST'13) San Jose, CA, U.S.A., Feb 2013.
Download as pptx.
Alpha version (do not use to store your critical data): repository snapshot.
You can explore the source code by pointing your browser here (may be slightly out of date).
Download and build the snapshot (type 'make' in the gecko folder---all subsequent instructions assume gecko folder to be the current directory). Make sure you have the Linux headers installed, e.g. in Ubuntu the package is called linux-headers-2.6.xx-xx where xx-xx should match your current kernel (type 'uname -r' to find it out). The kernel module was tested on kernel versions 2.6.35 and 2.6.36.
Edit the in.sh file to reflect the disks attached to your system and run it (alternatively, you can edit the in-loop-devs.sh file if you plan to use loop devices, say in a virtual machine).
You can start fresh; e.g. by setting the first parameter of in.sh to 0, which will not load the gecko metadata from a persistent location (e.g. /tmp/foo) effectively acting like a block-level quick format. Further, you can also zap the existing file system and create a fresh one (sudo mkfs.ext2 -b 4096 /dev/mapper/gecko).
Mount the existing file system (sudo mount -t ext2 -o noatime /dev/mapper/gecko /mnt/). Note that if you don't need a file system, you can interact directly with the /dev/mapper/gecko block device as with any regular block device (e.g. blockdev, or POSIX operations like open / read / write / close).
The file system is mounted as root, hence you will need to create some folders that your regular user has access to (e.g. sudo mkdir /mnt/tudorm && sudo chown -R tudorm:tudorm /mnt/tudorm).
Perform work on the file system.