Pode haver várias soluções para o seu caso.
Primeiro - sim, você copia todo o seu diretório www para outro servidor com o apache instalado e o php exatamente as mesmas versões que no primeiro nó. Se o seu aplicativo usa armazenamento de arquivos, o melhor é colocá-lo em compartilhamento - NFS ou sshfs, por exemplo (em um servidor separado). Se você quiser colocar esse armazenamento de arquivos em ambos os servidores de aplicativos, precisará sincronizá-los em tempo real (não é uma boa solução). O NFS criado na SAN é, neste caso, o melhor, porque você tem proteção da SAN etc.
Quanto ao banco de dados - único servidor de banco de dados, separado do aplicativo, hospedado com RAM razoável e espaço em disco, pode lidar com um monte de conexões e um monte de consultas. Você teria que começar a se preocupar se consultas por segundo chegassem a milhares. Mas se você chegar a esse ponto, a solução é, já sugerido, cluster db. Para criar um cluster, você precisa de pelo menos 3 servidores de banco de dados e um balanceador de carga (proxy).
Então, seu conjunto consistiria em:
- balanceador de carga para servidores da web
- pelo menos 2 aplicativos / servidores da web
- servidor de banco de dados
- servidor de arquivos (se necessário)
ou, no caso de cluster db:
- balanceador de carga para servidores de banco de dados
- 3 servidores de banco de dados em um cluster