Automount Snapshot


Summary: I present a method for transparently auto-creating lvm snapshots on use.

1) The problem

I'm using rsync to transfer a backup area to another computer. The problem is that if the backup area changes during rsync then rsync complains bitterly and returns nasty error codes making me thing it has failed.

2) The normal solution

The "normal" solution (for those who run Linux Logical Volume Manager, that is) is to create a "snapshot" volume .

The problem with the "normal" solution is that someone has to manage the snapshots -- and I don't like coupling the thing which performs the backup with the rest of the system. That increases system complexity.

3) My "hack"

So, I realized that I could use the automounter (autofs) to do what I needed. If the map for an automounter mount point is executable it is called as a script and can return what to link. Eureka!

So my solution was to create an automounter executable map that creates the snapshot and returns it based on the request. In other words, you add the following to your automount master file:

/mnt/path /etc/autofs/auto.snapshot-storage

now when you execute

ls /mnt/path/something

Then the text "something" is passed to /etc/autofs/auto.snapshot-storage , and that script creates a snapshot partition /dev/storage/something-snap based on the partition /dev/storage/something and returns it to be mounted.

If one previously existed that previous one gets removed.

This mount will exist as long as some process keeps /mnt/path/something open. After nothing touches it for a while (how long is controled by the regular automounter timeout) then it will automatically be unmounted. When it's next mounted it will be generated again.


(last updated 2006-11-19 13:55 GMT )