Month: January 2019

  • RAID nonsense

    Last week, I did some maintenance on the tilde.team box. Probably should have written about it sooner but I didn’t make time for it until now.

    The gist of the problem was that the default images provided by Hetzner default to RAID1 between the available disks. Our box has two 240gb SSDs, which resulted in about 200gb usable space for /. It also defaulted to giving us a huge swap partition which I deem unnecessary for a box with 64gb of RAM.

    The only feasible solution that I’ve found involved using the rescue system and the installimage software to reconfigure the disk partitions.

    deepend recently upgraded to a beefier dedi (more threads and more disk space) and had a bit of contract time on the old one. He offered to let me use it as a staging box for the meantime while I reinstalled and reconfigured my raid settings.

    I’ve migrated tilde.team twice before (from Linode > Woothosting > Hetzner > and now back to Hetzner on the same box) using a slick little rsync that I’ve put together.

    rsync -auHxv --numeric-ids \
        --exclude=/etc/fstab \
        --exclude=/etc/network/* \
        --exclude=/proc/* \
        --exclude=/tmp/* \
        --exclude=/sys/* \
        --exclude=/dev/* \
        --exclude=/mnt/* \
        --exclude=/boot/* \
        --exclude=/root/* \
        root@oldbox:/* /

    As long as the destination and source boxen are running the same distro/version, you should be good to go after rebooting the destination box!

    The only thing to watch out for is running databases. It happened to me this time with mysql. There were 3 pending transactions that were left open during the rsync backup. It kept failing to start after I got the box back up, along with all the other services that depend on it.

    Eventually I was able to get mysqld back up and running in recovery mode (basically read-only) and got a mysqldump of all databases. I then purged all existing mysql data, reinstalled mariadb-server, and restored the mysqldump. Everything came up as expected and we were good to go!

    The raid is now in a RAID0 config, leaving us with 468gb (not GiB) available space. Thanks for tuning in to this episode of sysadmin adventures!