Every day i get a notice about a new framework that will solve all problems in software development, a new role in teams organization or remove a role will make all fast and error prone.
In small and medium business real life is normal to find the revolutionary technology of 200x that will be the definitive problem solving, recently i found a heavy ML350 G4p server executing business E.R.P. over a Suse Linux 10 Sp1
Software has been heavily adapted and after 12 years continues working, after talk with the customer about that all the software has been reached end of life, and this will be a risky adventure he admits the problem but his strategy will be continue using the software as long is possible.
I call the software provider and talk about if were possible to update all software components and maintain the software running more years, unfortunately database server and operative system had been reached the end of life and We need to acquire, new hardware, new licenses and pay a ERP migration because it wasn’t included in maintenance agreement.
In this case the customer didn’t want to buy new hardware, licenses and pay a new installation, software is running well and under his point of view software and hardware has not been amortized yet.
After talking with all stakeholder we decided that acquiring a new hardware is mandatory, after 12 years of service a hardware fault is a safe bet increasing every hour, nowadays get a replacement in second hand market is not the best deal
In this scenario the best option is convert physical server into a virtual machine and keep working for years, we had two options Xen with XCP-NG and KVM with Proxmox, We choose Proxmox because it was a solution that fits better in customer infrastructure.
1st step was verify if Suse Linux 10 can run in a Proxmox environment, unfortunately we only get a DVD of Suse Linux 10 Sp4 and after run an install I discover that Virtio net and VirtioBlock interfaces were supported, it was a good notice, technically kernel was the same and can be a valid solution.
2nd step: We create a backup running Clonezilla in physical server, Surprisingly it took 1hour dump all the content and we didn’t have problems with strange raid controllers
3nd step: We create a virtual machine similar to our original hardware and run clonezilla in order to recover our original data (USB device is a hard disk that contains clonezilla backup)
4nd step we restore our Clonezilla backup in your virtual machine
In this case we used test machine not a bleeding edge computer but faster than the original HP
After finishing the restoration I try to start the image but boot loader was not restored
5st step Prepare Recovery
Start your virtual machine from the machine running install DVD and choose Rescue System
6th Mount Filesystems
We will run blkid command to get a list of volumes and identify where is our filesystem take a photo from your phone to remember the UUID
Our / filesystems is in /dev/vda2 we will mount in /mnt
mount /dev/vda2 /mnt
we also need acces to our cdrom
mount /dev/hdc /media/cdrom
We will need the new kernel and we will copy new kernel rpm packages to our hard disk
mkdir /mnt/root/kernel_sp4
cp /media/cdrom/suse/i586/kernel-* /mnt/root/kernel_sp4
7th Adjust FSTAB
Open vim and run
vim /mnt/etc/fstab
Since kernel 2.6 fstab supports UUID we will use that info to configure the new fstab
also i removed floppy device and use device for swap partition
8th Configure kernel modules
vim /etc/sysconfig/kernel
we remove cciss and mtp because we will not use that hardware and add virtio_pci virtio_blk virtio-pci virtio-balloon virtio-blk
9th Grub device maps
Our grub device maps points to old cciss hp raid we new to map to vda
vim /boot/grub/device.map
we will remove floppy too
10th step Chroot system
mount --rbind /proc /mnt/proc
mount --rbind /sys /mnt/sys
mount --rbind /dev /mnt/dev
chroot /mnt
mount -a
11th update kernel
We need to know what kernel is installed
rpm -qa | grep kernel
we only need to update our installed kernel
cd /root/kernel_sp4
rpm -i kernel-smp-2.6.16.60-0.85.1.i586.rpm
now we can reboot and our system will be fully functional, I copied mac address from original server and network worked perfect