Problém
Nelze odpojit přípojný bod sdílení Windows pomocí příkazu umount. Tuto sdílenou složku Windows v poslední době nepoužívají žádné procesy. Při provádění příkazu umount se zobrazí následující chyba;
umount: /data01: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))
Řešení
Chyba „umount:device is busy “ znamená, že přípojný bod je z nějakého důvodu zdržen serverem. Provede se příkaz lsof k nalezení některých otevřených deskriptorů souborů.
# 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
Toto PID nebylo možné zabít ani pomocí příkazu 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
Proces rsync, který zapisuje do tohoto přípojného bodu, je stále ve stavu D kvůli IO bloku, ke kterému došlo před nějakou dobou.
# 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/
Protože je tento proces ve stavu nepřerušitelného spánku, nebylo možné jej ukončit. To je důvod, proč není možné odpojit sdílenou složku Windows ze serveru.
Stav D procesy nelze zabít pomocí příkazu kill, protože se jedná o osiřelé položky v seznamu procesů bez rodiče. Doporučuje se tedy provést restart serveru pro zabití všech takových procesů ve stavu D.
Pokud není restart v tuto chvíli možný jako v případě produkčních serverů, počkejte, až bude IO opět k dispozici, aby se proces probudil a dokončil. Nedoporučuje se však čekat déle než měsíc, protože zatížení serveru může postupně stoupat, pokud je na serveru více takových procesů ve stavu D.