ZFS - destruir zvol ou conjunto de dados deduplicado impede o servidor. Como se recuperar?

9

Estou usando o Nexentastor em um servidor de armazenamento secundário em execução em um HP ProLiant DL180 G6 com 12 unidades SAS Midline (7200 RPM). O sistema tem um CPU E5620 e 8GB de RAM. Não há dispositivo ZIL ou L2ARC.

Na semana passada, criei um zvol esparso de 750 GB com desduplicação e compactação ativadas para compartilhar via iSCSI em um host VMWare ESX. Em seguida, criei uma imagem do servidor de arquivos do Windows 2008 e copiei ~ 300 GB de dados do usuário para a VM. Uma vez feliz com o sistema, mudei a máquina virtual para um repositório NFS no mesmo pool.

Uma vez instalado e funcionando com as minhas VMs no datastore NFS, decidi remover o zvol original de 750 GB. Fazer isso paralisou o sistema. Acesso à interface da Web do Nexenta e NMC interrompida. Eu acabei conseguindo chegar a uma casca crua. A maioria das operações do sistema operacional estava bem, mas o sistema estava pendurado no comando zfs destroy -r vol1/filesystem . Feio. Eu encontrei as duas entradas do bugzilla do OpenSolaris a seguir e agora entendo que a máquina ficará bloqueada por um período de tempo desconhecido. Já faz 14 horas, então eu preciso de um plano para poder recuperar o acesso ao servidor.

link

e

link

No futuro, provavelmente receberei o conselho dado em uma das soluções alternativas do buzilla:

Workaround
    Do not use dedupe, and do not attempt to destroy zvols that had dedupe enabled.

Atualização: Eu tive que forçar o sistema a desligar. Na reinicialização, o sistema trava em Importing zfs filesystems . Tem sido assim por 2 horas agora.

    
por ewwhite 11.02.2011 / 17:51

2 respostas

14

Isso foi resolvido. A chave é que os volumes desduplicados precisam ter o sinalizador de desistência desativado antes da exclusão. Isso deve ser feito no nível do pool, bem como no nível de zvol ou de sistema de arquivos. Caso contrário, a exclusão estará essencialmente sendo desduplicada. O processo leva tempo porque a tabela de deduplicação do ZFS está sendo referenciada. Neste caso, a RAM ajuda. Eu adicionei temporariamente 16 Gigabytes adicionais de RAM ao sistema e coloquei o servidor novamente online. O zpool importado completamente dentro de 4 horas.

A moral é provavelmente que a desduplicação não é super polida e que a RAM é essencial para o seu desempenho. Estou sugerindo 24 GB ou mais, dependendo do ambiente. Caso contrário, deixe a dedução do ZFS desativada. Definitivamente não é razoável para usuários domésticos ou sistemas menores.

    
por 12.02.2011 / 05:09
5

Como usuário há muito tempo dos appliances Sun / Oracle ZFS série 7000, posso dizer que, sem dúvida, a desduplicação não é aprimorada. Nunca confunda vendas com entrega! Os vendedores dirão "Oh, foi consertado". Na vida real - na minha vida real - posso dizer que 24 GB não são suficientes para lidar com as "tabelas DDT". Ou seja, o índice de backend que armazena a tabela de desduplicação. Essa tabela deve residir na memória do sistema para que cada E / S seja interceptada durante o vôo, a fim de descobrir se ela precisa ser gravada no disco ou não. Quanto maior o pool de armazenamento, mais alterações de dados, maior essa tabela - e a maior demanda na memória do sistema. Essa memória vem à custa do ARC (cache) e, às vezes, do próprio SO - e é por isso que você experimenta os travamentos, pois certos comandos acontecem em primeiro plano, alguns em segundo plano. Parece que a exclusão do conjunto acontece em primeiro plano, a menos que você diga de outra forma na CLI. Os assistentes de GUI não farão isso.

Até mesmo uma exclusão em massa de dados NFS dentro de um compartilhamento definido em um volume deduzido trará seu sistema para metade se você não tiver memória suficiente para processar as "gravações" no ZFS, informando-o para excluir os dados. / p>

Ao todo, a menos que você maximize sua memória e, mesmo assim, encontre uma maneira de reservar memória para o sistema operacional restringindo ARC e DDT (e não acho que você possa restringir o DDT por natureza, é apenas uma indexado exatamente ao seu I / O) - então você é escolhido durante grandes exclusões ou zvol / pools de destino.

    
por 01.11.2012 / 03:04