Desmontagem lenta ou desmontagem de um disco ocupado no Linux

Desmontagem lenta ou desmontagem de um disco ocupado no Linux

Eu li que é possível 'desmontar' um disco que está ocupado usando a opção 'preguiçoso'. A página de manual tem o seguinte a dizer sobre isso:

umount - desmonta sistemas de arquivos

-l Desmontagem preguiçosa. Desconecte o sistema de arquivos da hierarquia do sistema de arquivos agora e limpe todas as referências ao sistema de arquivos assim que ele não estiver mais ocupado. Esta opção permite que um sistema de arquivos "ocupado" seja desmontado. (Requer kernel 2.4.11 ou posterior.)

Mas qual seria o sentido disso? Eu considerei por que desmontamos as partições:

  1. Para remover o hardware
  2. Para executar operações no sistema de arquivos que não seriam seguras durante a montagem

Em qualquer um desses casos, tudo o que uma desmontagem 'preguiçosa' serve ao IMHO é tornar mais difícil determinar se o disco realmente está desmontado e você pode realmente prosseguir com essas ações. A única aplicação umount -lparece ser para usuários inexperientes “sentirem” que alcançaram algo que não alcançaram.

Por que você usaria uma desmontagem preguiçosa?

Responder1

Digamos que você realmente precise alterar o volume no qual um software está gravando um log, por exemplo, um servidor web, mas ele tem muito tráfego e não pode ser desligado para a operação, nem o caminho do log pode ser alterado.

Com a desmontagem lenta, você pode desmontar o volume com segurança enquanto o software ainda está em execução, montar outro volume no mesmo ponto de montagem e comandar o software para reabrir os arquivos.

Idealmente, como você não precisava desligar o software, nenhuma solicitação foi perdida e, essencialmente, nenhuma entrada de log foi perdida, já que elas ainda estavam sendo gravadas na montagem antiga até que os arquivos fossem reabertos (quão bem o software lida com a reabertura do arquivos depende do software).

Parafraseando a página de manual, significa que se o volume tiver arquivos abertos quando for desmontado lentamente, na realidade ele permanecerá montado, mas não será acessível através do sistema de arquivos e só será verdadeiramente desmontado quando o último arquivo aberto for fechado.

Responder2

Porque você é preguiçoso - deseja desmontar após a conclusão das operações do disco.

Aqui está um cenário plausível:

Você está usando rsyncpara realizar seus backups e ir embora. Você pode umount -lusar a unidade e, quando terminar de copiar e sincronizar, ela será desmontada, para que, quando você voltar após um intervalo (que você sabe que levará mais tempo do que o backup), você possa simplesmente desconectar a unidade em vez de ter que mexer no teclado novamente .

Responder3

Na verdade, isso é implementado para ganhar mais tempo para realizar tarefas de acompanhamento em tarefas administrativas.

Se outras tarefas, independentes desta, estiverem aguardando no pipeline, você poderá desmontar preguiçosamente e continuar com outras no lote.

Exemplo: a Tarefa 1 e a Tarefa 2 são duas tarefas administrativas agendadas consecutivamente.

Tarefa 1Backup diário

Este copia um grande número de arquivos de uma partição de projeto para uma partição de backup, digamos, /mnt/backupProj, que será montada instantaneamente e desmontada no final desta tarefa.. A cópia leva uma quantidade significativa de tempo.

Tarefa 2Atualizar visualizações SQL

Executa uma série de atualizações de visualização do banco de dados em um servidor dedicado.

A tarefa 2 é obviamente completamente independente da tarefa 1, portanto, podemos desmontar lentamente /mnt/backupProj sem esperar que a tarefa de backup seja concluída.

Responder4

Considere uma montagem de ligação, como você pode ver ao trabalhar com chroot:

mount --rbind /proc /mnt/proc
# do stuff
umount /mnt/proc

Se você tiver um daemon em seu sistema que interroga constantemente /proc(estou olhando para você ksysguardd), então você não conseguirá umount /mnt/proc. Preguiçoso vai deixar você umountneste caso.

informação relacionada