Quanto tempo o fsck pode suportar um volume de 30 TB?

17

Em meados de novembro, um VPS que estou alugando de uma empresa de hospedagem parou de responder. Quando entrei em contato com o suporte, eles explicaram que uma queda de energia no datacenter causou uma reinicialização forçada e um fsck. Por fim, perguntei por que estava demorando tanto e me disseram que o tamanho do volume é de 30 TB. A última vez que recebi uma atualização foi em fevereiro e eles não responderam à minha consulta mais recente.

Entendo que o fsck pode ser muito lento para alguns sistemas de arquivos, mas é possível que o fsck demore 6 meses em um volume de 30 TB ou devo assumir que essa empresa de hospedagem está mentindo para mim para continuar pagando minha conta a cada mês?

Brian Bi
fonte
39
Eles provavelmente estavam mentindo para você desde o início. Eu esperaria que isso levasse horas . Você deveria ter parado de pagar em dezembro.
Michael Hampton
15
Mesmo que não estejam mentindo, escolha uma configuração de software HW + que possa exigir um FSCK que por muito tempo mostre que é incompetente. Seja qual for o motivo, eles não estão fornecendo o serviço pelo qual você está pagando.
Peter Cordes
34
Soa como um fsck de cluster real!
JMK
2
@JMK Agora eu gostaria que houvesse uma maneira de sinalizar comentários por mérito extra, talvez adicionar a um corredor da fama.
pipe
2
O que @PeterCordes diz é o ponto principal. Você está pagando por um serviço. Você realmente sente muito por saber que eles estão tendo problemas, mas está ligando para o serviço pelo qual está pagando e não está recebendo.
Rob Moir

Respostas:

31

fscka velocidade depende principalmente do número de arquivos e de como eles estão espalhados no respectivo diretório. Dito isto, 6 meses por um fscké absolutamente absurdo: ele deveria ter sido concluído em algumas horas, no máximo, especialmente se o uso xfstiver o xfs_repairutilitário rápido . Aqui você encontra algumas fsckcorridas em escala - todas concluídas em menos de uma hora (3600s). Portanto, não é possível que você fsckainda esteja em execução.

De qualquer forma, uma perda inesperada de energia não causará um golpe completo fsck, mas apenas uma repetição de diário muito rápida (alguns segundos) . No entanto, se alguns arquivos principais foram danificados, o sistema operacional pode não ser inicializado.

Mas eles provavelmente só mentiram para você. Você deve parar de pagar imediatamente, pedir uma explicação e solicitar um reembolso total.

shodanshok
fonte
8
Se eles estiverem usando ext2, uma falha de energia exigirá um total fsck, e eu não ficaria surpreso se demorar alguns dias em um volume de 30 TB usado. Por outro lado, se eles estiverem usando ext2um volume de 30 TB, isso por si só é um motivo para procurar outros serviços de hospedagem.
Mark
14
O ext2 usa um contador de bloco de 32 bits, com um tamanho máximo de 4096 bytes (ou seja: uma página) em x86 e x86_64. Isso significa que ext2 (e ext3) são limitados a volumes de 8 TB, portanto não, o OP não pode estar usando ext2 / 3. De qualquer forma, o uso de qualquer sistema de arquivos não registrado em diário em um volume de 30 TB seria absolutamente insano .
shodanshok
Eu acho que o ext4 fsck pode ser um pouco melhor se tiver um FS de 30 TB contendo um grande número de arquivos minúsculos. Loucura para criar isso, ainda é um motivo para procurar em outro lugar.
nigel222
7

Conjectura: seu sistema usa um RAID sem BBU / FBWC (ou mesmo RAID de software) com todos os caches de gravação possíveis (incluindo os próprios discos rígidos) definidos nas configurações mais agressivas, para obter o máximo desempenho por um custo mínimo. Uma falta de energia nessa configuração pode deixar um sistema de arquivos de registro em diário em uma condição em que o diário não pode ser confiável e não pode ser usado para recuperação. O problema é que esse sistema reordena e adia de maneira agressiva as gravações, o que significa que uma entrada no diário pode ser gravada com o efeito de perda da ação de dados ... ou a entrada no diário sendo perdida em uma ação de dados que foi consequente.

Recuperar esse sistema de uma interrupção na pior das hipóteses pode significar que você precisa executar um reparo / reparo "lento" que realmente examine todas as estruturas do sistema de arquivos como elas são, o que pode levar um dia ou dois para 30 TB ... e não é improvável que você precise executar vários ciclos de reparo. Acrescente a isso que nem sempre o pessoal está disponível para monitorar isso; você pode facilmente reduzir um fsck por semana. Eles provavelmente desistiram e esqueceram.

rackandboneman
fonte
1

Para a maioria dos sistemas de arquivos, será muito mais rápido, mesmo quando houver erros, pois normalmente apenas os metadados são verificados.

Na pior das hipóteses, ele pode ler o disco inteiro ( por exemplo, algo como fsck.ext4 -cc /dev/sda, que faz um teste de gravação não destrutivo em cada bloco), que pode levar alguns dias para 30 TB. Se você souber a velocidade das unidades, poderá calcular o tamanho / velocidade . Para um disco rígido de consumidor com cerca de 100 MB / s, copiar alguns TB pode levar mais horas do que a maioria das pessoas esperaria.

Se fosse o seu servidor, você poderia ter o problema de inicializar e, em seguida, travar quando fsckperguntado se você deseja corrigir um erro. Mas o administrador do datacenter não ficará fsckparado por 6 meses enquanto todos os VPS estiverem offline.

Então, eles estão mentindo para você ou há um enorme mal-entendido. Ou eles estavam executando o fsck há algum tempo e não atualizavam você sobre o novo problema após a conclusão.

todos
fonte
4
fsckpercorre todas as estruturas do sistema de arquivos, o que significa principalmente executar a E / S aleatória. Portanto, o cálculo acima, com base na taxa de transferência seqüencial , não é muito útil.
shodanshok
@shodanshok, de fato, a estrutura do arquivo é irrelevante em uma verificação geral da unidade, como acabei de explicar na minha resposta.
Overmind
@shodanshok, minha pior hipótese foi baseada em um fsck muito extenso. Por exemplo, o xfs fsck típico não faz muito. O ext2 possui uma verificação abrangente de longa duração e o antigo scandisk do MS-DOS fez um teste de leitura e gravação em cada bloco de disco rígido ao executá-lo no modo completo. Então você tem um limite superior no tamanho do disco.
allo
1
@ Overmind E você responde é irrelevante para a pergunta que é sobre fsck e não uma verificação geral da unidade.
BlackJack
Esteja ciente de que considerar a taxa de transferência típica do disco como um indicador pode ser enganosa. Eu fiz as contas ao sincronizar uma vez uma matriz novamente, o que (na minha opinião) deveria levar menos de um dia e levou mais de duas semanas! As buscas são o fator dominante no tempo total e, mesmo quando você pensa que está realizando uma operação estritamente sequencial, às vezes não é uma delas. Agora o fsck é estritamente não seqüencial, então ... de jeito nenhum você pode julgar a taxa de transferência normal do disco até a duração da operação (ainda assim, meses são ridículos ... é uma mentira óbvia).
Damon