Agrupamento VPS geograficamente diversificado que age como um VPS?

2

Eu quero um cluster de 3 ou mais servidores VPS em diferentes cidades que funcionem como um servidor VPS, significando:

% Quando eu atualizo um arquivo em um VPS no cluster, é  "automaticamente" atualizado em todos os outros VPSs.

% Quando executo um comando em um VPS, ele é executado automaticamente em todos os outros.

% Quando eu atualizo uma entrada do banco de dados em um VPS, ele é atualizado automaticamente  todos os outros (que é o mesmo que o ponto 1 para dbs que usam o arquivo  armazenamento)

% Se um VPS ficar inativo, ele "recupera" quando voltar.

Em outras palavras, os VPS são espelhos exatos um do outro.

Eu percebo os endereços IP (e talvez até mesmo o /etc/resolv.conf e alguns outros arquivos) deve ser diferente, mas a idéia geral é que eles idêntico a visitantes externos.

Como os VPSs podem hospedar blogs, etc., o espelhamento deve ser preservado quando um usuário de navegação faz um comentário em um blog. Em outras palavras, eu não pode ter um VPS central e enviar atualizações, já que os usuários podem fazer mudanças em qualquer VPS, não apenas o central.

Existe tal coisa? Eu tentei criar meu próprio usando o iwatch e Replicação do MySQL, mas não funcionou bem na prática.

Eu sei sobre link , mas esses servidores estão todos em um único local (e não exatamente o que eu descrevo acima).

    
por barrycarter 16.12.2010 / 01:18

4 respostas

2

Tudo é possível com a tecnologia e o orçamento certos. Para ter uma ideia do que precisa ser feito:

1: Se você usa algum tipo de RDBMS como o MySQL, você pode facilmente configurar a replicação Master-Master entre 2 ou mais servidores mysql, o que garantirá que todas as gravações cheguem a cada um dos outros servidores, cada uma com seu próprio ID de incremento. No entanto, os bancos de dados de alto tráfego sempre ficarão atrasados, dependendo do layout da rede e da distância entre cada servidor VPS.

2: A sincronização de arquivos é um pouco mais difícil de fazer. O mais fácil pode ser ter scripts locais executando rsyncs a cada N minutos para manter todos os arquivos em sincronia. Se esses forem apenas VPS únicos e não um build dedicado em cada Datacenter, essa seria uma das maneiras mais fáceis.

3: O balanceamento de carga será difícil, pois são apenas VPS únicos. Você poderia fazer round robin DNS para cada ip VPS, mas não o mais eficiente quando um host está inativo. Você pode definir o TTL para baixo, mas alguns provedores não respeitam o DNS TTL.

Para dar um exemplo do que uma empresa constrói, isso seria:

1: MySQL executado em nós DRBD Primários / Secundários em cada Datacenter em sua própria máquina física / virtual. Em seguida, cada configuração de localização para replicação mestre / mestre. Fault Tolerant em cada Datacenter, mas ainda tem problema Lag descrito acima.

2: SAN dedicada para armazenar os arquivos globais que devem ser compartilhados com a Replicação 24x7. Não é barato por qualquer meio, mas o que as empresas fazem.

3: DNS Com um dispositivo de balanceamento de carga TTL ou BGP muito baixo. Mais caro, mas será capaz de fazer melhores algoritmos de balanceamento de carga - O usuário é colocado em uma região mais próxima, ou a região é evitada quando abaixada ou sobrecarregada.

    
por 29.03.2011 / 23:27
0

Não tenho conhecimento de uma solução pronta como esta, mas você pode criar um cluster com o Amazon EC2.

    
por 16.12.2010 / 01:30
0

Não está claro a partir da pergunta que liberdade existe para escolher a tecnologia de implementação. Se você pode escolher um banco de dados nosql distribuído como o Cassandra, a replicação de dados em muitos nós deve ser possível, supondo que não importa se leva um segundo ou dois para os dados se propagarem.

Eu não sei sobre o envio de arquivos do sistema, mas você provavelmente poderia empurrar o conteúdo da web estático com um sistema de arquivos em cluster ou mesmo rsync. Para manter o estado de múltiplas máquinas, você pode querer olhar para o cfengine que irá ajudá-lo tanto na manutenção de pacotes quanto na configuração em muitas caixas.

Se você está indo para o problema, você provavelmente deve fazer syslogging em rede para estes boxen também.

    
por 27.03.2011 / 01:01
0

O Windows Server 2008 tem o que você procura embutido. Basta agrupar os servidores usando a função interna, atribuir um nó primário (administrador de cluster), ajustar a segurança e as configurações do cluster e, em seguida, adicionar IIS, SQL, e os outros como aplicativos e serviços do cluster.

Shawn J.

    
por 18.04.2011 / 18:33

Tags