Como posso configurar o failover temporário para um compartilhamento de smb de “somente gravação”?

2

Tenho a tarefa de configurar um servidor de armazenamento que será usado para "receber" dados de uma máquina da Illumina executando operações de sequenciamento de DNA muito caras com capacidade de interrupção limitada. O sequenciador em si é anexado a um PC Windows fornecido pelo fornecedor para executar o software de controle, que espera um caminho onde possa despejar os dados (cerca de 12 a 16 TB em um período de duas semanas). O servidor de armazenamento fornece um compartilhamento para essa finalidade usando o CentOS / samba. Minha pergunta é: existe uma maneira de fazer com que o compartilhamento montado no PC com Windows seja "mapeado" ou pelo menos cache para o armazenamento local no caso de o servidor de armazenamento ou a rede ficar inativa? E, claro, eu gostaria de ser notificado de que isso aconteceu. Tenha em mente que não podemos simplesmente espelhar tudo localmente porque não há espaço suficiente. Basicamente eu quero que o software seqüenciador seja capaz de continuar escrevendo para o compartilhamento, desde que haja algum espaço local para manter os dados até que eles possam ser sincronizados. Se isso for possível, eu naturalmente adicionaria uma unidade extra ou duas para aumentar o tempo que temos para resolver o problema.

Sou principalmente um cara do Unix, por isso os ponteiros para soluções "óbvias" no mundo do Windows são apreciados. Eu não quero instalar todos os tipos de coisas malucas de terceiros na máquina Windows do sequenciador, mas soluções sólidas e testadas provavelmente estão bem.

EDIT: devo adicionar, não me importo se houver uma solução criativa que não use smb.

TLDR: o importante é que a) o software cliente do Windows vê um caminho onde pode gravar arquivos de dados b) de uma forma ou de outra esses arquivos acabam no servidor de armazenamento c) se a conexão de rede ou o servidor de armazenamento falhar, haverá alguma janela de tempo em que o software não será bloqueado e poderá continuar gravando dados, usando o armazenamento anexado localmente como um cache.

    
por Joe 06.10.2011 / 18:50

3 respostas

0

É um problema estranho. Esse é o tipo de coisa que você esperaria em um ambiente de armazenamento centralizado por causa de todo o valioso trabalho que está sendo feito pelos servidores centralmente, no entanto, eu nunca ouvi falar de alguém fazendo isso com armazenamento de conexão única.

Você não mencionou se o servidor de armazenamento foi fornecido ou o seu próprio - em qualquer caso, a única forma barata que eu sei de ter alta disponibilidade com arquivos é usar DFS e ter algum caminho alternativo preparado e pronto para mudar para. O problema é que você ainda terá falhas de gravação até que você remapeie o DFS para o novo compartilhamento.

Este é um problema simples de consertar se você tiver todo o dinheiro do mundo - basta instalar um dispositivo de armazenamento em cluster que suporta o deslocamento geográfico de nós e ter um driver multi-caminho em execução. Netapp usando um metro-cluster é um exemplo disso, e se você estiver olhando para discos, SVC da IBM com par de E / S dividido e talvez até espelhamento de VDisk.

edite: @mfinni me fez pensar em scripts. Você diz que seu aplicativo de controle quer um "caminho" para um grande compartilhamento de rede - ele precisa saber que é grande? E se você o instruísse a escrever na unidade local? Poderia ser configurado para gravar arquivos de tamanho específico pequeno o suficiente para manter um script em execução que os levaria para o NAS, pois eles são fechados pelo aplicativo de controle?

Além disso, ele gravará em fita? Uma unidade de fita seria perfeita para esses tipos de aplicativos somente para gravação - cada cartucho contém 1,6 TB de dados não compactados.

    
por 06.10.2011 / 22:41
1

Não realmente. Você poderia configurar um cluster de failover para o compartilhamento NAS, o que reduziria a probabilidade de falha. Isso não elimina a possibilidade de perda de dados, mas reduz os pontos de falha.

A maneira correta de fazer isso, se a perda de dados não for permitida, é uma das duas coisas:

  1. Retorne ao fornecedor do software para não permitir que os dados sejam perdidos quando o armazenamento da rede desaparecer.
  2. O software deve ser gravado localmente e, em seguida, você escreve um script de cópia que não será copiado se o armazenamento da rede desaparecer.
por 06.10.2011 / 19:04
0

Que tipo de saída um sequenciador de DNA tem? Eu estou supondo que é um banco de dados super grande dividido em arquivos de 2GB? Você poderia escrever um pequeno arquivo de lote que verifica se há mais de 2 arquivos e copia aquele com a data de modificação mais antiga e, uma vez concluído, o exclui. (supondo que ele apenas envie arquivos e não precise de arquivos antigos) se a cópia falhar por algum motivo (por exemplo, o NAS fica inativo), ela simplesmente não exclui os arquivos locais e envia um e-mail.

IMHO um NAS estável tem tanta chance de diminuir quanto o computador conectado ao seqüenciador de DNA, sim a rede pode cair mas se o NAS tiver uma porta Ethernet extra você pode simplesmente conectá-los diretamente usando um crossover (ou não , MDIX e tal ...)

    
por 07.10.2011 / 01:55