"realtime" fs mirror application (backup, Python and Linux inotify)

Discussion in 'Python' started by Roc Zhou, Oct 24, 2007.

  1. Roc Zhou

    Roc Zhou Guest

    Recently I started an open source project "cutils" on the sourceforge:
    http://sourceforge.net/projects/crablfs/

    The document can be found at:
    http://crablfs.sourceforge.net/#ru_data_man

    This project's mirrord/fs_mirror tool is a near realtime file system
    mirroring application across 2 or more hosts, something like MySQL's
    replication, but it's for the file system especially with a great
    amountof small files, such as the php scripts and images of a website
    or the
    (vitual) websites.

    There are several ways to use this tool. The simplest is to mirror a
    host's file system to another host for backup, and use the rotate
    function(in the future version) or rotate scripts to get a daily or
    hourly snapshot with the hard link.

    Or futhur more, you can use it this way:
    This graph should be displayed with monospaced fonts:

    +----------+
    | worker | -[mirrord] -----------\
    +----------+ |
    ...... |
    |
    +----------+ |
    | worker | -[mirrord] -----------\
    +----------+ |
    V
    [fs_mirror]
    |
    +----------+ +----------+
    | worker | -[mirrord] ---> | backup |
    +----------+ +----------+
    | |
    [take_over] |
    | |
    V |
    +----------+ |
    | rescue | <------------------- NFS
    +----------+

    This is the multi to one backup, which is cost efficient. If one of
    the worker hosts fails, you can subsitute the failed worker with the
    rescue host, with the aid of any high available method, such as
    heartbeat
    project. By this way, you can use 1 or 2 hosts to support the HA of
    more than 3 servers.

    Or you can also use it as an IDS(Intrusion Detection System) like a
    realtime "tripware", or you can make a mirror chain that a host B
    mirrors from A and be mirrored by C, etc ... I will also try to
    research a way
    to use it as a distributed implemetation with one write and multi-read
    model.

    mirrord/fs_mirror makes use of inotify, which is a function afforded
    by the recent Linux (from 2.6.12). It is a counterpart of FAM, since
    Linux FAM has stopped so long.

    Now it works for me, on a RHEL4 system and the LFS 6.2, I hope this
    tool can be useful to you too.

    Thanks.
    Roc Zhou, Oct 24, 2007
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.

Share This Page