Synchronising jails

Fbsd8 fbsd8 at a1poweruser.com
Sat Apr 28 02:27:58 UTC 2012


Frank Staals wrote:
> Hey Everyone,
> 
> I'm looking for a way to synchronise two jails. More specifically, I
> would like to keep/maintain an exact copy of a given jail. As an
> example: Suppose I build a jail A on some system (in my particular case
> build with ezjail) , and I copy the jail
> into jail B on some other system (using tar, as is mentioned
> here: http://forums.freebsd.org/showthread.php?t=17813). Now stuff
> happens in Jail A, e.g. files change, new stuff is installed etc. I
> would like to propagate these changes to jail B, but since the transfer
> is over WAN I would like not to have to copy the entire jail again, just
> the stuff that has changed since the last backup. It is safe to assume
> nothing in Jail B changes: I basically want to maintain the exact copy
> so if something would happen to the system running Jail A I can
> immediately switch to jail B without much hassle. 
> 
> Normally I would say this a perfect use case for rsync. But as the
> aforementioned thread mentions ``scp or similar wont work to copy a
> jail'', and I consider rsync similar to scp, I am under the impression
> that rsync would not be usable in this situation. Can anyone shed some
> light on this, or suggest an alternative to synchronise the jails?  
> 
> 
> Regards, 
> 
I have 3 different ideas that would work.

Method 1. move changes to basejail. Use qjail to create your hosta-jaila 
and hostb-jaila. Qjail has a bkup function that you can backup the 
hosta-jaila basejail in compressed dump format and move that file to 
hostb any way you want and then use qjail restore function to restore 
that dump file to hostb-jaila basejail. bkuping up basejail takes less 
than one minute.

method 2. move user data changes to jaila. create hosta-jaila and 
hosta-jailb both being the same. After changes to hosta-jaila run diff 
on hosta-jaila, hosta-jailb and them move the diff file to hostb and 
apply the diff to hostb-jaila.

method 3. move user data changes to jaila. Use qjail to backup 
hosta-jaila and restore it to hostb-jaila. Backing up a jail takes less 
than 15 seconds.

Note, Both hosta and hostb must be at same operating system version 
level. Ezjail also has function to bkup a jail but no way to bkup 
basejail. You can issue a "dump" command on the command line to create 
one after all jails are stopped.

In my book rsync is the automated way to keep two live system in sync 
real time. Maybe overkill in something that is pretty much stable. If 
say hosta/jaila is running a mail server or a website that remote users 
enter info into, then rsync is the only solution.




More information about the freebsd-questions mailing list