Estou procurando um sistema de arquivos distribuído que eu possa usar para armazenar muitos arquivos pequenos (< 1MB normalmente). O que eu quero é:
O que quero dizer com a ressincronização é que, eu estou bem com ambos os servidores fazendo operações de leitura / gravação, mesmo se eles dividirem o cérebro. Também estou ok se um processo local obtiver um bloqueio se o outro host não estiver acessível. A partir da ressincronização eu espero apenas uma visão consistente em nível de arquivo depois de um tempo - isto é - se o arquivo x
for modificado em ambos os nós durante um split-brain, eu realmente não me importo qual está disponível depois que eles se juntarem novamente contanto que seja um arquivo completo, não um bloco vindo de node1
e outro bloco de node2
.
Existe uma solução como essa por aí? Eu vejo que gluster tem alguns problemas com bloqueios de arquivos (mesmo em 3.1). Também notei que o OCFS2 entrará em pânico se ambos os nós dividirem o cérebro. Que outro sistema de arquivos me permitiria fazer o que eu quero?
O Gluster é outro sistema de arquivos do cluster, mas não tenho certeza de como isso funciona se um nó falhar
[MogileFS] [2] é um sistema de arquivos distribuído de código aberto que pode manipular muitos arquivos pequenos e não deve ter nenhum ponto único de falha. No entanto, acho que isso não tem suporte para bloqueio. Não tenho certeza se seria viável implementar o bloqueio no nível do aplicativo em vez de no sistema de arquivos?
Como sou um novo usuário aqui, não posso postar um segundo hiperlink em uma resposta, mas o MogileFS aparecerá no Google
/ edit: vejo que você tem apenas dois servidores. Talvez o DRBD faça o que você quer?