Dealing with a Legacy Suse Linux 10 SP1 moving to KVM

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)

Proxmox Virtual Machine

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

Error Loading OS

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

Original 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

New fstab

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

modules original
modified modules

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

new device.map

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

Get installed 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

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.