Il problema
Impossibile smontare un punto di montaggio della condivisione di Windows utilizzando il comando umount. Questa condivisione di Windows non è stata utilizzata di recente da alcun processo. Quando si esegue il comando umount, viene visualizzato il seguente errore;
umount: /data01: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))
La soluzione
L'errore "smonta:il dispositivo è occupato ' significa che il punto di montaggio è bloccato dal server per qualche motivo. Viene eseguito un comando lsof per trovare alcuni descrittori di file aperti.
# lsof /data01/ COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME rsync 39176 oracle cwd DIR 0,25 0 54427649 /data01/primdb/rman rsync 39176 oracle 1r REG 0,25 6678585344 54428135 /data01/primdb/rman/.RMDBPRD_LVL0_20170910_s145161_p1.WxJoHy (deleted) rsync 39176 oracle 3u REG 0,25 5449449472 54428147 /data01/primdb/rman/.RMDBPRD_LVL0_20170910_s145161_p1.uqhidN
Non è stato possibile eliminare questo PID nemmeno con il comando kill.
# kill -9 39176 # lsof /data01/ COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME rsync 39176 oracle cwd DIR 0,25 0 54427649 /data01/primdb/rman rsync 39176 oracle 1r REG 0,25 6678585344 54428135 /data01/primdb/rman/.RMDBPRD_LVL0_20170910_s145161_p1.WxJoHy (deleted) rsync 39176 oracle 3u REG 0,25 5449449472 54428147 /data01/primdb/rman/.RMDBPRD_LVL0_20170910_s145161_p1.uqhidN
Un processo rsync che scrive su questo punto di montaggio è ancora in stato D a causa di un blocco IO che si è verificato qualche tempo fa.
# ps aux |grep rsync root 30103 0.0 0.0 103304 804 pts/0 S+ 10:24 0:00 grep rsync oracle 39176 0.0 0.0 110956 96 ? D Sep10 17:48 rsync -av --delete /eva/primdb/rman/ /data01/primdb/rman/
Poiché questo processo è in uno stato di sospensione ininterrotto, non è stato possibile interrompere questo processo. Questo è il motivo per cui non è in grado di smontare la condivisione Windows dal server.
Lo stato D non è stato possibile terminare i processi utilizzando il comando kill poiché sono come voci orfane nell'elenco dei processi senza un genitore. Quindi si consiglia di eseguire un riavvio del server per eliminare tali processi D state.
Se al momento non è possibile un riavvio come nel caso dei server di produzione, attendere che l'IO non sia nuovamente disponibile in modo che il processo si riattivi e venga completato. Tuttavia, non è consigliabile attendere più di un mese poiché gradualmente il carico del server potrebbe aumentare se sono presenti più processi D state nel server.