PowerScale: O recurso Collect e MultiScan não recupera espaço no dispositivo excluído
Summary: Collect e MultiScan exclui dispositivos da varredura se eles ficarem indisponíveis durante a execução do trabalho.
Symptoms
Este artigo da KB destina-se apenas a trabalhos Collect em execução, concluídos ou trabalhos MultiScan que executaram Collect neles.
A coleta é usada para liberar blocos deixados em um dispositivo enquanto ele ficou indisponível.
O MultiScan às vezes executa AutoBalance e Collect, para garantir que o MultiScan executou Collect verificando o trabalho.
# isi job view <jobID#>
Durante a fase de marcação de Coleta, os blocos são marcados para limpeza posterior assim que entram na fase de varredura.
Em algumas situações, um dispositivo pode ser excluído da operação de varredura do trabalho durante a fase de marcação.
Isso pode deixar o cluster com nós ou unidades desbalanceados mesmo depois que o trabalho for concluído com sucesso.
O trabalho será cancelado se muitas unidades ou nós forem excluídos dele.
Cause
Em caso de inatividade ou indisponibilidade de um dispositivo, o trabalho exclui o dispositivo da fase de varredura.
Isso pode ser causado por várias causas, como reinicialização do nó, ciclo de alimentação ou divisão do nó.
Com unidades, isso pode acontecer se uma unidade paralisar ou ficar indisponível.
Se um dispositivo ficar indisponível durante a execução do Collect ou do MultiScan, o trabalho o definirá como bam_nosweep Lista de dispositivos excluídos.
Quando o trabalho entra na fase de varredura, ele trabalha para varrer todos os blocos nos dispositivos NÃO adicionados ao bam_nosweep lista de excluídos.
Isso pode fazer com que os nós ou unidades permaneçam desbalanceados com uma maior utilização da capacidade depois que o trabalho for concluído com sucesso.
O Exemplo 1 mostra um devid excluído no log de mensagens, mostrado como devid 28.
2025-03-08T22:09:15.238162-08:00 <0.5> EXAMPLE-1(id25) /boot/kernel.amd64/kernel: [bam_nosweep.c:298](pid 63766="isi_job_d")(tid=104229) bam_nosweep_add_devices: Exclude set { devids (1) = [ 28 ], wdls = [] }
O Exemplo 2 mostra um registro de data e hora de uma unidade no devid 18 sendo excluída, seguido por uma unidade no devid 24.
2024-11-04T16:20:33.664254-07:00 <0.5> EXAMPLE-12(id12) /boot/kernel.amd64/kernel: [bam_nosweep.c:298](pid 83067="isi_job_d")(tid=103674) bam_nosweep_add_devices: Exclude set { devids (0) = [], wdls (1) = [ (d: 18, unm:00000040 ] }
2024-11-04T17:06:21.738071-08:00 <0.5> EXAMPLE-12(id12) /boot/kernel.amd64/kernel: [bam_nosweep.c:298](pid 83067="isi_job_d")(tid=103674) bam_nosweep_add_devices: Exclude set { devids (0) = [], wdls (2) = [ (d: 18, unm:00000040, (d: 24, unm:00000020 ] }
Exemplo de Coleta cancelada devido à porcentagem de dispositivos excluídos porque 28,1% dos dispositivos estão sendo excluídos, o limite é 25%.
2025-11-04T14:08:28.356984+01:00 <0.5> EXAMPLE-8(id8) /boot/kernel.amd64/kernel: [bam_mark.c:1923](pid 3646="isi_job_d")(tid=101140) Mark not permitted with 28.1% of 32 nodes excluded (limit 25.0%)
2025-11-04T14:08:28.356994+01:00 <0.5> EXAMPLE-8(id8) /boot/kernel.amd64/kernel: [bam_mark.c:1837](pid 3646="isi_job_d")(tid=101140) Updated mark for cookie 19:none with error 85
2025-11-04T14:08:28.359093+01:00 <0.5> EXAMPLE-8(id8) /boot/kernel.amd64/kernel: [drv.c:1499](pid 67605="python3.8")(tid=102284) Drive sync in progress for ldnum 21
2025-11-04T14:08:28.365281+01:00 <0.5> EXAMPLE-8(id8) /boot/kernel.amd64/kernel: [lin_mark.c:376](pid 3646="isi_job_d")(tid=101140) lin_end_mark: Ending lin mark (error ECANCELED).
2025-11-04T14:08:28.365300+01:00 <0.5> EXAMPLE-8(id8) /boot/kernel.amd64/kernel: [lin_mark.c:398](pid 3646="isi_job_d")(tid=101140) lin_end_mark: Mark already canceled. (current group: <1,2770> current mark state: LIN_COLLECT_GOOD
Resolution
Se o dispositivo que precisa ser varrido tiver sido excluído, um novo trabalho deverá ser iniciado.
Se outro problema estiver fazendo com que o dispositivo fique indisponível com frequência, será necessário investigá-lo ainda mais.