Qual solução é mais adequada para um determinado cenário depende strongmente dos aplicativos e dados envolvidos, não há uma abordagem "global" que possa funcionar sempre, em qualquer lugar.
Existem muitos cenários diferentes envolvidos. Alguns exemplos:
- Os controladores de domínio do Active Directory são projetados para funcionar como um banco de dados distribuído, multi-mestre e replicado; e você também precisa ter DCs locais em uma configuração WAN, porque as máquinas Windows associadas ao domínio precisam ter um DC disponível para funcionar corretamente. Ao mesmo tempo, com o AD você não se beneficiaria de ter uma replicação de nível inferior, na camada do servidor virtual ou na camada de armazenamento físico, já que você não pode ter um controlador de domínio. mount "um banco de dados copiado de outro, e você não pode iniciar um CD clonado e esperar que ele funcione (nem tente fazer isso, a reversão do USN é desagradável ).
- Para um servidor de arquivos, o oposto é verdadeiro: embora existam tecnologias de replicação em nível de aplicativo (DFS no Windows), para grandes quantidades de dados, uma replicação em nível de armazenamento é provavelmente a melhor abordagem .
- Agora, digamos que você esteja usando o Exchange; sistemas Exchange recentes (2007-2010) são projetados com a replicação de banco de dados transacional em mente, e essa é a única abordagem oficialmente suportada; você realmente pode copiar um banco de dados do Exchange e montá-lo em outro servidor do Exchange (chamado de "portabilidade do banco de dados"), para que a replicação em nível de armazenamento possa funcionar ... mas é muito mais doloroso, e mover os usuários para tal servidor requer uma reconfiguração pesada. Além disso, embora nos dois cenários mencionados acima, realmente é um ponto em ter cópias locais dos dados em vários locais (o AD é necessário em todos os lugares e os usuários em diferentes escritórios podem precisar acessar os mesmos dados do servidor de arquivos ), para o Exchange, isso só faz sentido em um cenário de recuperação de desastre, porque, em operação normal, cada usuário acessa apenas sua própria caixa de correio, que só pode estar ativa em um único servidor por vez.
- Para vários sistemas de banco de dados, isso pode funcionar tanto no nível do aplicativo quanto em qualquer nível subjacente; mas isso depende muito do aplicativo: se você precisar modificar dados em vários locais (em vez de apenas lê-los), não há como a replicação de armazenamento mesclar cópias conflitantes, e você precisará permitir que o DBMS lide com isso.
Cada tecnologia tem seus próprios benefícios e casos de uso; realmente não existe uma abordagem "tamanho único".