Joseph, how many boxes you intend to setup?
You can use NLB (Network Load Balancer) to set up multiple servers, but NLB only responds to heart beat, alternatively ARR (Application Request Routing) but what if your ARR goes down? so for a high availability environment you'll be setting up combination of ARR and NLB, keeping database on 2 boxes (master and slave configuration).
in addition, you'll be setting up DFS-R (Distributed File System - Replication) to share the moodle and moodle data folders across all servers.
any more questions, feel free to ask (keeping in mind due to some busy schedule, I will be replying with a slight delay)