A near realtime fs mirror application (for backup, written in Python, by Linux inotify)

Roc Zhou chowroc.z+l at gmail.com
Mon Oct 22 07:08:22 CEST 2007


Recently I started an open source project "cutils" on the sourceforge:

The document can be found at:

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 amount
of 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] -----------\
      +----------+                       |
      +----------+                  +----------+
      |  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

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.


My Projects:
My Blog:
Looking for a space and platform to exert my originalities (for my
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20071022/0fb39285/attachment.html>

More information about the Python-list mailing list