Sistema de arquivos do dispositivo de bloco compartilhado (sistema de arquivos de cluster sem rede)

3

Existe algum sistema de arquivos que pode ser montado várias vezes e suporta o acesso simultâneo de arquivos para o Linux? Basicamente eu quero algo como um sistema de arquivos de cluster, mas sem a necessidade de ter uma rede em execução para um gerenciador de bloqueio distribuído. Isso pode ser muito útil em conexão com máquinas virtuais que podem compartilhar dados com o host ou outra VM sem a necessidade de criar um link de rede. Isso eu quero evitar manter a arquitetura de rede segura (máquina virtual na DMZ), mas compartilhar arquivos grandes. Não há necessidade de ampliá-lo, apenas duas máquinas que montam o mesmo dispositivo de bloco.

Não deveria ser possível ter informações de bloqueio de arquivos diretamente no disco?

    
por fungs 18.11.2011 / 14:21

2 respostas

0

Eu diria que você pode fornecer N VMs e acessar o mesmo dispositivo de bloco, mas apenas para leitura. Você percebe essa palavra palpite.

As coisas vão cair rapidamente se qualquer uma das VMs começar a modificar as coisas, já que qualquer cache de disco das outras VMs agora será inválido.

A dificuldade em ter informações de bloqueio de arquivos no disco é que ninguém fez isso ainda. Sem pensar profundamente, a ideia de uma transação atômica de leitura / modificação / gravação em um disco é provavelmente o problema básico.

Eu acho que você poderia pegar um sistema de arquivos típico que já é multiencadeado, descobrir onde o (s) bloqueio (s) é (em) usado (s) e alterá-lo para algum tipo de operação de leitura / modificação / gravação no disco.

O outro problema com leitura / modificação / gravação no disco é que, se você bloquear muito, seu desempenho será muito ruim, já que todas as alterações no disco exigem:

  • bloqueia o disco (procura, lê / modifica / escreve)
  • leia o setor que você deseja alterar (procurar / ler)
  • faça a alteração e escreva (escreva)
  • desbloqueia o disco (procura, lê / modifica / escreve)

Provavelmente não ajuda, mas eu olharia para algo como o BSD Jails como um sistema de VM mais leve se você realmente não quer fazer networking.

    
por 18.11.2011 / 17:50
0

Para dar uma resposta à minha própria pergunta: na situação de (para) virtualização existem alguns sistemas de arquivos compartilhados em evolução que podem ser usados para compartilhar arquivos sem rede entre instâncias. O XenFS é uma abordagem que não está ativamente em desenvolvimento, eu acho. Mas para o KVM, e esperançosamente para o XEN em breve, existe um mecanismo de compartilhamento de pastas baseado na biblioteca virtio chamada 9p_virtio .

    
por 07.05.2012 / 16:52