Zumastor Summer of Code Ideas

Zumastor Logo We would love to have a Summer of Code student contribute to Zumastor.

Here are a few quick ideas:

Remove 64 snapshot limit

aka issue 6.

Language: C
Skills required: Linux kernel coding
Difficulty: 2 Months?

Zumastor's ddsnapd.c uses a 64 bit bitmask (e.g. search for "snapmask") internally to say which snapshots a particular block belongs to. This limits us to supporting 64 snapshots. Daniel Phillips has an idea for switching to using extents instead of a bitmap, and estimates this would take about two months to get working.

Improve Support for Volume Resizing

aka issue 20.

Language: C
Skills required: Userspace coding / Linux kernel coding
Difficulty: 2 Months?

Part 1, userspace, easy: Zumastor, lvm2, and ext3 all have support for offline resizing, but they're not integrated together. It should be possible to to hook into LVM2's interfaces so offline resize of zumastor ext3 volumes can be done with a single lvm command.

Part 2, kernel space, hard: The ext3 filesystem and lvm2 both have support for online resizing; see e.g. this recipe or this recipe. modification. It should be relatively straightforward to add support to Zumastor for online resizing.

Easy way for users to access snapshots e.g. in Nautilus

aka issue 37.

Language: any universally deployed scripting language (bash / perl / python)
Skills required: moderate scripting
Difficulty: 2 months

The first part is a simple commandline utility that lists the snapshots of a particular directory or file, in a way that could be extended to work with any kind of snapshot (zumastor, netapp, samba, ...). That should only take a couple weeks. It should run fine even on systems that do not have Gnome or KDE installed.

The next part is to extend Nautilus and/or Konqueror to let a user right click a file, choose 'Previous Versions', and see the old versions of the file. This shouldn't require any C/C++ coding at all. There are even tutorials showing how to write plugin scripts for Nautilus and for Konqueror, which should help a lot.

There are already several such snapshot plugins for Nautilus (see e.g. here), but they are specific to a single type of snapshot, whereas we want to support several.

This part of the idea is also listed on KDE's SoC ideas page. (And it should be listed on Gnome's too, probably.)

Bring up clustered mode (NFS on ocfs2 on ddraid)

aka issue 90.

Language: C
Skills required: Linux kernel coding, sysadmin skills
Difficulty: 2 Months?

We have a clustered mode waiting to go (see the Cluster RAID, Cluster Snapshots, Cluster Block Device documents at http://zumastor.org/), but it hasn't gotten any attention because we've been working on getting the single-node configuration solid. Ripe for a student to swoop in, update it to work with recent kernel, make sure it place nice with ocfs2 and nfs, and benchmark it. This is an opportunity to design and code, but it does involve a lot of real world testing.

Our clustered mode is implemented in ddraid.c, which is an alternative to dbrd. The best filesystem to use on top of it is probably OCFS2.

© 2008 Google