We decided to upgrade the hardware on mount.at today and therefore had to shutdown the server for several hours. Hades is running again now, but not all services are restored to their full extend, the jabber server (jabber.mount.at) has been recovered already and should be usable again. Due to the fact that the bootloader was installed on a hdd that had a total breakdown and I/O errors that prevented a reinstallation of bootloader on the system drive, we had to setup the server again.
The main problem was that our backups of the Mnesia database where outdated, they had to be recovered from the old hdd (the one not broken :>). This procedure turned out to be far more complicated / frustrating than expected. Due to the fact that the control interface ejabberdctl relies on RPC, which require a valid hostname to function properly, the recovery wasn’t as simple as calling the program from the host we connected the old harddrive to. I wrote a small howto for anyone stuck in the same situation:
Solution: chroot
Mounting the harddrive
mkdir /mnt/hdd && mount /dev/sdaX /mnt/hdd
Mounting proc
mount -t proc proc /mnt/hdd/proc/
Change the hostname on the box to the hostname of the machine Mnesia was used on (changing the hostname within the chroot didn’t work), this is necessary because RPC will not work if you do not use the hostname of your old box
$editor /etc/hostname
Chrooting
chroot /mnt/hdd
Starting up the ejabberd daemon and executing backup procedure
/etc/init.d/ejabberd start && ejabberd_ctl backup /tmp/ejabberd.backup
Exit the chroot and copy the backup from /mnt/hdd/tmp/ejabberd.backup to the box you wish to apply it to, use
ejabberd_ctl restore /tmp/ejabberd.backup
to finally restore the backup …
You may need to follow this tutorial when porting the database to a host with a different hostname -> http://www.ejabberd.im/migrate-host
Mount.at will be unavailable for some time tomorrow as well, because the hardware upgrade could not be finished in today’s session, please stand by and sorry for any inconvenience caused.






