O armazenamento em cluster em um ambiente virtual será muito difícil e caro devido à maneira como o armazenamento compartilhado em um cluster funciona.
A replicação também tem limites e pode ser mais do que você precisa, especialmente porque a empresa do sql 2005 está gastando cerca de US $ 25 mil para cada processador ou US $ 14 mil por servidor + CALs. Com a replicação, você precisaria ter duas licenças de empresa, um cluster no qual você precisaria apenas de uma única licença.
Já que você está apenas no SQL Express agora, você pode querer dar o primeiro salto para a edição do grupo de trabalho SQL e configurar o envio de logs de um servidor para o outro. Se você tiver uma necessidade para a próxima etapa até o SQL Standard, então eu iria com o espelhamento de banco de dados.
Na verdade, a menos que haja uma razão específica para isso, gostaria de ir com o espelhamento de banco de dados sobre a maioria dessas soluções, embora haja uma pequena alteração na degradação de desempenho em sistemas de transação muito altos, bem como um pouco mais de complexidade para configurar do que algo como o envio de log. O cluster seria a configuração mais complexa e definitivamente mais cara devido aos requisitos de hardware.
Confira esses links:
link - Soluções de alta disponibilidade
link - Cluster de Failover
link - Espelhamento de banco de dados link - Envio de log
link - Preço
< href="http://www.sqlservercentral.com/articles/Disaster+Recovery/sqlserver2005highavailability/2421/"> link - Alta disponibilidade no SQL Server Central
link - Impressionante livro de alta disponibilidade para o SQL 2005 que recomendo a todos os MS DBA