GMail-RAID5

By popular demand…

Disclaimer: This is neither useful nor even usable and of course in no way reliable. Do not try this at home or at all.

Using multiple GMail accounts via GMailFS – a fuse driver using libgmail.py – and Linux Software RAID as a RAID5 storage.

  1. Prerequisites:
    • $n GMail accounts
    • fuse
    • libgmail.py
    • gmailfs
    • mdadm
  2. Mount your GMail accounts
  3. for i in `seq 0 $n`; do
      mount.gmailfs -p -o username=Daniel$i none /mnt/gmailfs$i
    done

  4. Create data spaces
  5. for i in /mnt/gmailfs*/; do
      dd if=/dev/zero of=${i}loopfile bs=5M count=2
    done

    This will take some time, depending on your available upstream bandwidth and CPU cycles. (GMailFS/fuse are ressource hogs. Later versions seem to scale better.) This gives you a 10MB file in each account. The default GMailFS “blocksize” is 5 MB iirc.

  6. Assign your device nodes
  7. LOOPS=
    for i in /mnt/gmailfs*/loopfile; do
      LOOPS+="$(losetup -f) "
      losetup -f $i
    done

  8. Define your RAID
  9. mdadm --create /dev/md0 -n $n -l 5 $LOOPS

  10. Create a filesystem
  11. mkfs.xfs /dev/md0

  12. mount
  13. mount /dev/md0 /mnt/gmailraid

Yes, this is sick. Yes, it wastes enormous amounts of resources.

This entry was posted in Uncategorized. Bookmark the permalink.

One Response to GMail-RAID5

  1. bimbo says:

    hi, i think your idea isn’t that crasy at all. you can save time and internet resources by creating log-resource files that keeps all the information of each account on every account. i’ve been thinking to work on this project, I have some ideas, just no time. anyway good try. this may be the future of file sharing. you can clone entire Gig of data file in matter of a couple of hours to another or more empty public account(s).

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>