NetBSD: Live Network Backup

Submitted by dvl
on April 28, 2005 - 4:36am

It is possible but inconvenient to manually clone a hard disk drive remotely, using dd and netcat. der Mouse, a Montreal-based NetBSD developer, has developed tools that allow for automated, remote partition-level cloning to occur automatically on an opportunistic basis. This facility can be used to maintain complete duplicates of remote client laptop drives to a server system. This network mirroring facility will be presented at BSDCAN 2005 in Ottawa, ON on May 13-15.

The facility has three main components: a client-side kernel component that monitors disk drive writes, a client-side userland program that initiates and handles client to server communication, and a server-side userland program that accepts incoming TCP connections and handles incoming encrypted data streams from multiple clients.


The facility today supports symmetric cryptography, based on a shared secret. The secret is established out-of-band of the network mirror facility today. User identification, authentication and session encryption are all based on leveraging the pre-established shared secret.

The system operates in a filesystem-agnostic basis, using 512 byte blocks as a lowest common denominator unit of exchange between client and server. At each client to server connection, the application identifies and maps changes to disk block states. Changed blocks are then encrypted and sent to the server. This indicates that a user could open his or her laptop in an airport, establish a WiFi link to an open access point, and remotely update their laptop backup without effort, knowledge or even good intentions.

The code is being released into the public domain free of license restrictions in any form. The initial proof of concept code has been written to NetBSD, but der Mouse expects the code to be easily portable to systems that allow hooks to be inserted into disk driver code. The code can be accessed via anonymous FTP at ftp.rodents.montreal.qc.ca:/mouse/livebackup/.

On May 13-14 at the University of Ottawa will be hosting BSDCAN 2005. BSDCAN 2005 is a technical conference for developers and people interested in the technology behind the BSD Operating Systems FreeBSD, NetBSD and OpenBSD.


For more information:

Live Network Backup
email: der Mouse <mouse @ Rodents.Montreal.QC.CA>
ftp: ftp.rodents.montreal.qc.ca:/mouse/livebackup

BSDCAN 2005:
email: Dan Langille <info @ bsdcan.org>
web: http://www.bsdcan.org/2005/

From a user perspective

CoffeeBreaks
on
April 28, 2005 - 7:38am

What are the advantages over a rsync/ssh solution? Performance (both in speed and disk accesses)?

If your 'master' disk fails, what would be the consequences?

lower level

zdzichu
on
April 28, 2005 - 2:00pm

This is backup on lower level. Rsync/ssh works on filesystem level, while proposed solution is block device based. They have some distinct differences, but I can't find good comparision on web right now.

Taking Linux-zealotry hat on: this could be also done on Linux, without additional kernel component. The key here is using LVM's Snapshot capability.
LVM should became ubiquitous. Fedora is doing great job making LVM default while install.
--
:wq

I think the main difference b

MozoHu (not verified)
on
April 28, 2005 - 7:52pm

I think the main difference between this and Rsync is "real-time" backup. The duplication is done right away the modification occured in the main disk.
And I don't think the snapshot of LVM could be compared with this feature. One is for mirroring data, one is for preserving freezed data image.

There is already implemented

Anonymous (not verified)
on
April 29, 2005 - 7:56am

There is already implemented & well-tested software which does this very thing in Linux. A kernel module reports to a userland tool when a file has changed and rsync moves the changes over at the filesystem level. However I don't see why a custom implementation of rolling checksum in a librsync-fashion couldn't also send changes at the partition/whole-disk level, even from userland (disks are files too, you know..). The kernel module could just report a 'guess' of where in the partition the change was noted and binary deltas in a given range could be sent over to the server. It's difficult to get this type of program not to be complex whilst only sending specific filesystem changes...

Couldn't you accomplish simil

Anonymous (not verified)
on
April 29, 2005 - 8:56am

Couldn't you accomplish similar things by copying the contents of a snapshot volume (not what the filesystem usually sees) to a server on the other end? The server side would have to merge the changes in to the last snapshot, though.

Synchronizing user deletions

Anonymous (not verified)
on
April 29, 2005 - 7:45am

Synchronizing user deletions and application corruptions "without effort, knowledge or even good intentions." Please don't use this as your only backup.

Backup...

Anonymous (not verified)
on
April 29, 2005 - 7:51am

This system is akin to RAID. RAID is not backup. True backup is a semantic thing, you backup your important information.
Even in a perfectly clean filesystem, with no application corruptions, no disk crashes, your data can be lost. That is why there are things like CVS.

No, this does not appear to b

Anonymous (not verified)
on
April 29, 2005 - 8:25am

No, this does not appear to be a realtime thing (which RAID would be), rather the user initiates the process. Sending all drive writes over the network would be pathetically slow unless at gigabit speeds!

Combined with LVM on the server side would be even better

nneul
on
April 29, 2005 - 8:06am

Then, you could use LVM on the server side to store snapshots, and still have the client keep a near real time update in sync on the server. That would allow multiple snapshot recovery of the clients getting past the "replicated corruption".

sounds like nbd to me

Anonymous (not verified)
on
April 29, 2005 - 10:10am

Is this a NetBSD version of Network Block Device (NBD)? NBD has been around in Linux for a few years. There is a variant of NBD called DRBD (Distributed Replicated Block Device) which has good integration with Heartbeat. (NBD is basically a network-raid-1.)

Hmmm... I'd like to see more layers on this.

Mr_Z
on
April 29, 2005 - 1:49pm

If you increase the block size a bit (say 1K to 4K) and did checksums on the blocks, you could possibly optimize away many of the block transfers over the network and get a decent speedup (along with cheap compression) to boot.

Treat the checksum as a hashing function. (Pick something reasonably strong, like SHA-1.) The backup server can determine if that block's already backed up. This would be most useful if you had many people sharing one backup server, because something tells me the same files appear on many machines. Also, the same block will come and go. And, you still get a bit-image backup of everyone's HDs.

Another good feature to have would be "snapshot points." Since you're only sending a delta over the network anyway, nothing stops you from storing things such that you can move between different FS revisions over time.

Way to not read the article.

Anonymous (not verified)
on
March 6, 2006 - 3:15pm

Way to not read the article.

"Changed blocks are then encrypted and sent to the server."

So unchanged blocks aren't. Thanks for playing.

Somewhat like Norton Ghost

Anonymous (not verified)
on
April 29, 2005 - 2:04pm

This is similar to another netBSD based network disk imaging system (forget the name). I did not get the impression from the writeup that this is a 'live' backup, but rather that you can save partitions to an image file and load them over the network. Say a 'doze PC gets a bad virus.. assuming you have important data backup facilities, you could reimage the entire machine remotely and start over with a good HD image for that machine.

If I am correct, netBSD only has to be involved in this for the server and the restoring client. You could conceivably have a netbsd boot cd that reloads the hard disk remotely. After loading, boot whatever OS it is that is on the image.

You'll also notice that the b

Anonymous (not verified)
on
April 29, 2005 - 3:18pm

You'll also notice that the block-level changes, as they are tracked, are updated by a client-side program. The client does, on some level, have to be running netBSD. However, if you ran a VM on top of netBSD that was running 'doze, then you could work within this setup.

RE: "... another netBSD based network disk imaging system"

cAPTAIN^k (not verified)
on
May 11, 2005 - 2:36pm

g4u - http://www.feyrer.de/g4u/

It's cool!

:)

Very nice chance backup serve

Vells (not verified)
on
August 4, 2005 - 6:44am

Very nice chance backup servers www servers for example , good. thnx

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.