I need to do host to host migrations from old hardware to new hardware. Specifically, from HP BL460G7 to HP BL460G8. Both the old and new servers have 2 x 600GB 2.5" drives and are configured for RAID1. I can afford 30 minutes downtime per server.
There are four servers to migrate, the smallest has a total of 120GB allocated in logical volumes and the largest has 510GB allocated. Three servers are running RHEL5 and one is running RHEL6.
I've been racking my brain on how to do this within the given time frame and without destroying the OS and critical data.
My only thought is this:
- remove one drive from the old server (server is turned on)
- remove both drives from the new server (server is turned off)
- remove G7 drive from caddy and set aside
- remove G8 drive from caddy and install into G7 caddy
- install G8 drive in G7 caddy into old server
- wait for RAID controller to rebuild RAID1 array
- when finished shutdown old server
- remove G8 drive in G7 caddy
- install G8 drive in G8 caddy and insert into G8 (single drive installed)
- boot G8 server
- wait for OS to boot
- when OS has booted insert remaining drive
- wait for RAID array to rebuild
Does this sound sane?
EDIT: The RHEL5 are RHEL5.10 and the RHEL6 is RHEL6.6
I should have also noted that two of the systems are part of a hot four node cluster that does near constant replication of application "events" (its part of a critical infrastructure system). We have backups but we only use the in the event of total system failure.
Previous testing has shown about a maximum 'dd' between systems of around 50MBps which is far too slow.
EDIT: I was going to rely on kudzu to pickup and deal with the hardware changes.
It should be noted, that there may be other steps needed, depending on the distribution. Most notably the drivers (thanks for pointing that out @ewwhite).
Doing it this way, you still have the original server intact, so if anything goes wrong, there is an easy way back. But it requires some knowledge (grub/rsync/partitions), so I suggest doing some prep-work and testing in advance, before doing it live.
Two things:
Depending on the data contained within each server, the amount of data churn, and your provisioning scheme, it may make sense to install the necessary OS onto the new Gen8 ProLiant and synchronize the settings and other data portions at a point where you can quiesce the data.
Perhaps make a seed copy and derive your downtime requirement from the amount of time it takes to pick up the file changes on subsequent rsyncs. If you need to accelerate the transfer process or have lots of small files, there are techniques that can help with that.
I make these types of transitions often. With similar Linux installations, you rarely need more than an accurate package list (easily obtainable via Yum or RPM), the configuration directories (e.g.
/etc
) and your data partitions. If you don't already have a kickstart provisioning system, you can take advantage of the/root/anaconda-ks.cfg
file to get an idea of how the G7 system was built.To answer your question about simply moving the disks, based on the specific RHEL versions you mentioned, this is absolutely possible. You can move the disks/caddies and the HP Smart Array metadata is compatible between the P410 and P420 controllers that may be in your systems. However, I would not do this without fully updating the firmware of the drives and components in the new system first.
If your previous OS version is able to handle the new Hardware (mostly RAID controller) you can give a try to CloneZilla.
To check if it is possible to move from one hardware to another you cad pass all data from old to new server doing some tricks with dd.
Boot the new server with a live distro like SystemRescueCD, configure with an IP address and a dd command like this one:
On the current server perform
This will make a raw copy of your server's /dev/sda to the new server /dev/sda. This way you can perform a test without downtime on your original server and taking near zero risks.
The project manager has denied my request for a larger outage window.
The proposed procedure outlined in the question worked well in testing. The downtime was under 20 minutes. I used the hpacucli utility to monitor the progress on the G7 and then the Gen8, it was very useful for this.
I've yet to do this in anger but as stated this has worked well in testing for RHEL 5.10 on BL460G7 to BL460 Gen8.
I did not update the firmware.
The initial RAID1 re-sync in the G7 took a bit over an hour. The re-sync in the Gen8 took under 50 minutes. This concerned me but I've not been able to find any problems.
Thanks again for all the helpful comments and suggestions.