Duplicate existing FreeBSD Server in VM
dave.list at pixelhammer.com
Thu Nov 1 19:47:18 PDT 2007
Terry Sposato wrote:
> I have just installed a machine and have it setup running a web based CRM
> solution. I want to have an exact duplicate of this machine running as a VM
> for redundancy reasons.
> What is the best way to go about getting this exact machine transferred to
> the VM? Both machines exist on the same network and will be able to talk to
> each other, I have been thinking of a couple of different ways to get all my
> data across which is the easy part, but I want to match everything that is
> installed, base system, ports etc.
> Anyone have any ideas or point me into the right direction?
You can use dump over ssh easily enough, here are my notes from using it
to create multiple production machines from a single test server. There
are better ways I am sure, but this is quick and easy if you are
familiar with FreeBSD installs.
Note #1 In the first comment line I say to boot the live file system CD,
that is what you would do in the VM, just as you would normally boot an
installer CD, but use a Live filesystem CD instead.
Note #2 I used several slices with sizes some may not agree with. It was
a choice we made for various reasons, the servers have been running for
three years. You may have more or less slices of varying sizes, adjust
the steps below to your preferences.
Note #3 You will need to check and WRITE DOWN which slice is which mount
point, /, /var, /usr and so on. Your disks may be different if you
choose not to create a seperate /tmp, or /var.
I'll be out of the office for a week, but you can try and adjust as
needed, it won't hurt anything and you can always overwrite and try
again. WRITE IT DOWN.
Works for us, I've used it several times, adjusting as needed for the
system I am cloning.
# boot live filesystem cd
# use disklabel to check/create slices
/dev/ad0s1b 256mb swap
/dev/ad0s1a 256mb /mnt/ufs.1 softupdates
/dev/ad0s1e 256mb /mnt/ufs.2 softupdates
/dev/ad0s1d 256mb /mnt/ufs.3 softupdates
/dev/ad0s1f all /mnt/ufs.4 softupdates
/dev/ad1s1d 20000mb /mnt/ufs.5
# unmount the new slices
# make newfs on each slice
# remount the slices
mount -t ufs -o rw /dev/ad0s1a /mnt/ufs.1
mount -t ufs -o rw /dev/ad0s1e /mnt/ufs.2
mount -t ufs -o rw /dev/ad0s1d /mnt/ufs.3
mount -t ufs -o rw /dev/ad0s1f /mnt/ufs.4
# fetch the filesystems from the test server
# you will need to enable root ssh access on the test server for this.
ssh root at 10.0.240.130 dump -0L -f - /dev/ad0s1a | restore -rf - /dev/ad0s1a
ssh root at 10.0.240.130 dump -0L -f - /dev/ad0s1e | restore -rf - /dev/ad0s1e
ssh root at 10.0.240.130 dump -0L -f - /dev/ad0s1f | restore -rf - /dev/ad0s1f
ssh root at 10.0.240.130 dump -0L -f - /dev/ad0s1d | restore -rf - /dev/ad0s1d
# change the following entries in rc.conf, remember everything is
mounted under /mnt!
# X = the ecluster number 1,2,3,4,5,6,7,8, etc.
ifconfig_em0="inet 10.0.240.13X netmask 255.255.255.0"
Reboot the new server, it should come up just fine.
Three years now I've asked Google why they don't have a
logo change for Memorial Day. Why do they choose to do logos
for other non-international holidays, but nothing for
Maybe they forgot who made that choice possible.
More information about the freebsd-questions