Como eu removo uma partição swap que não existe mais?

3

Eu tinha uma partição swap em um disco rígido (/ dev / sdb3), que eventualmente falhou. A unidade foi removida e substituída. Um novo swap foi criado, fstab atualizado e ativado (/ dev / sdc3), mas o antigo swap ainda está listado em / proc / swaps, mas com (deleted) .

[root@server01 ~]# cat /proc/swaps
Filename                Type        Size    Used    Priority
/dev/sdc3                               partition   4194300 0   -2
/dev/sdb30(deleted)                  partition   4194300 0   -1
/dev/sda3                               partition   4194300 0   -3

Eu tentei remover a troca. swapoff /dev/sdb3 falha com Nenhum arquivo ou diretório . swapoff -a e swapon -a parecem funcionar sem nenhum erro, mas / proc / swaps ainda lista o swap deletado.

Como faço para remover o swap que realmente não existe? Se necessário, o sistema ainda tentará usar este pedaço de espaço de troca? O que acontecerá então?

Plano de fundo adicional: O servidor não pode ser reinicializado e a unidade foi substituída pela interface do hotplug. As unidades são unidades AHCI SATA e não passam por um controlador RAID, HBA ou qualquer outra interface especial. Embora / dev / sdb falhe e não exista mais, a nova unidade, quando inserida na mesma porta, se tornou / dev / sdc. / dev / sda existe e funciona bem ao longo deste processo.

Referência: outro usuário perguntou o que faz com que a troca seja mostrada como deletada , mas eu sei a causa, mas não como removê-la.

    
por Paul 28.03.2018 / 19:26

1 resposta

2

Você precisa reiniciar o sistema.

Ao escrever dados, o kernel deve simplesmente ignorar quaisquer partições / arquivos de swap deletados.

Na leitura, o processo em que ele estava tentando trocar páginas será encerrado (não sei qual sinal é enviado, mas acredito que seja o mesmo que é enviado ao tentar acessar uma página que contenha um incorrigível erro de memória). Dependendo da configuração exata do kernel, isso também pode causar um kernel panic, causando falha no sistema. Esse é o grande motivo pelo qual você deve idealmente reinicializar, pois a desativação do espaço de troca faz com que quaisquer páginas armazenadas nele sejam trocadas novamente ou movidas para outro espaço de troca, portanto, desativando o espaço de troca que não existe e tem armazenamento de dados din pode resultar em processos sendo encerrados sem aviso prévio.

No seu caso, você não possui nenhum dado no espaço de troca em questão, portanto, deve ser seguro desativá-lo. No entanto, como você descobriu, as ferramentas de linha de comando para desativar o espaço de troca não funcionam corretamente em dispositivos inexistentes. Para referência futura, certifique-se de desativar qualquer espaço de troca em um dispositivo de armazenamento com falha antes de desconectá-lo, para evitar situações como essa.

Além disso, você pode ter que atualizar /etc/fstab novamente depois de reiniciar. A partição swap ativa, mas inexistente, ainda mantém uma referência ao dispositivo de armazenamento removido, que será liberado na reinicialização. Até que você reinicie, a ordem de enumeração do dispositivo será diferente da que normalmente seria por causa disso, então o que é atualmente /dev/sdc pode se tornar /dev/sdb na reinicialização.

    
por 28.03.2018 / 21:38

Tags