Interested in moving to Binary Lane?  Both Digital Ocean and our service utilise KVM for virtualization which makes the conversion process relatively simple.


In this guide we will demonstrate how to transfer an Ubuntu VPS off Digital Ocean by cloning the hard disk, along with how to handle the differences between the two services.


Requirements


To perform the migration, you will need two things:

  1. root login over SSH to the Digital Ocean server that will be cloned ("the source server") - if you normally use SSH keys, you will have to explicitly assign a root password.
  2. mPanel login to the Binary Lane server ("the destination server"). The Binary Lane server should be created with the same Linux distribution and disk size as the source server.

Preparing the source server


During the migration, we are going to transfer an exact byte-for-byte copy of the virtual hard disk. For this process to work correctly, it is best-practice for most services to be shutdown and the source disk to be mounted read-only.

First, shut down any services (but not SSH) you are running:

 

service apache2 stop
service mysql stop
# etc...

 

Second, remount the disk as read-only:

 

echo u > /proc/sysrq-trigger


At this point the source server is temporarily unusable - once the migration is complete, reboot the source server.


 

Preparing the destination server


Login to mPanel and go to the main management screen for the destination server. At the bottom of the page, there is a section for selecting what happens when your cloud server boots:



Change from "Distribution kernel" to "Finnix Recovery CD" and click the Save button. Your VPS will reboot into Finnix, which looks like this:



Press ENTER and you will shortly reach a pretty normal bash prompt:



You may wish to zoom in slightly to make the text more readable.  At this point, your Binary Lane cloud server is running a "LiveCD" and we can directly modify the virtual hard disk.


Transferring the virtual hard disk


With both the source and destination servers prepared, the actual data transfer process is relatively simple. To perform the transfer, carefully type the following command - unfortunately it must be typed as the rescue environment does not support copy and paste:

 

ssh root@src.ip.addr.ess "dd if=/dev/vda bs=1M | gzip -1" | gunzip | pv -W | dd of=/dev/vda1 bs=1M

 

Replace src.ip.addr.ess with the IP address used by your source server.


After entering your root SSH password for the source server, a progress bar will be displayed allowing you to see how many GB have been transferred.


Configuring the installation


With the virtual hard disk now copied to Binary Lane, we need to make some final adjustments to allow it to boot:

  • Install Grub so that the Binary Lane virtual BIOS can find your Linux installation and boot it
  • Change the network configuration to DHCP so that your VPS can start using its Binary Lane IP address

This is easiest to accomplish by chroot-ing into the virtual disk as follows:

 

mount /dev/vda1 /mnt
mount -o bind /proc /mnt/proc
mount -o bind /dev /mnt/dev
chroot /mnt

 

At this point you are now "inside" your linux installation without having actually booted it, allowing configuration to be modified as required. In this case, its just two commands:

  

grub-install /dev/vda
sed -i s/static/dhcp/ /etc/network/interfaces

  

The process from start to finish looks like this:



Final steps


To complete the migration, scroll to the bottom of mPanel page - change the boot method back to "Distribution kernel" and click the Save button.  After doing this, from within Finnix enter the following command:

 

poweroff

 


That's it!  Your Binary Lane server will now boot with an exact copy of your source server's virtual disk - including the same packages, services, files, and database contents.


To modify it further, SSH to your Binary Lane IP address using the same root password from your Digital Ocean server.