LowEndBox - Cheap VPS, Hosting and Dedicated Server Deals

How to Setup a Highly Available Wordpress Site From Scratch: Two Years Later, It Still Works!

LET TutorialsI’ve been working on making my LowEnd empire of cheap VPS systems more reliable and better-managed.  This has ranged from keeping better track of config info to automating with Ansible to using high availability.

Tonight I was working on a couple MySQL-based web sites and remember a tutorial series I did a little over two years ago entitled “How to Setup a Highly Available WordPress Site From Scratch”.

This six-parter walks through setting up two VPS systems, configuring MariaDB and replication, using DRBD and OCFS2 for filesystem replication, and tying it all off with round-robin DNS.

And it still works!  Just configured DRBD tonight on a pair of Hetzner Cloud systems using their volume storage.  Here’s a couple tips if you’re working with Hetzner Cloud.

First, setup and use private networking for replication to get better speed.

Second, the volume is presented as something like /dev/sdb.  Do the following:

1. unmount it.  It’ll be mounted as /mnt/something

2. comment it out in /etc/fstab

2. nuke it:

dd if=/dev/zero of=/dev/sdb bs=1000000 count=10

Make a new primary partition:

gparted /dev/sdb
mklabel gpt
mkpart primary ext2 1MiB 100%

…and you should be good to go.   You can just use /dev/sdb in your r0.res.




  1. Thanks for your useful information.

    March 15, 2023 @ 2:00 am | Reply
  2. We enjoyed your content, thank you

    October 16, 2023 @ 7:19 am | Reply

Leave a Reply

Some notes on commenting on LowEndBox:

  • Do not use LowEndBox for support issues. Go to your hosting provider and issue a ticket there. Coming here saying "my VPS is down, what do I do?!" will only have your comments removed.
  • Akismet is used for spam detection. Some comments may be held temporarily for manual approval.
  • Use <pre>...</pre> to quote the output from your terminal/console, or consider using a pastebin service.

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