HP-UX

[급] filesystem full

 
권규용
정기 조언자

[급] filesystem full

이런경우가 다있습니까?

HP-UX 11.23 (rx4640)



#bdf

/dev/vg00/lvol5 10485760 10463458 22302 100% /oracle



#du -sk

3945409 /oracle



왜 Full 이라고 나오는지요...

이거 큰일났는데요...?
2 응답 2
안상훈_1
조언자

[급] filesystem full

안녕하세요...위와 비슷한 사례로 포럼에 올라와 있는 답변이 있어 대신 올립니다.

아마도 급하셔서 검색을 안하신것 같은데요...^^

아래 내용을 참고하시면 될 듯 하네요...



======================================================

hprc에 있는 내용입니다.

문]bdf와 du의 size가 틀리게 나옵니다

답]rm이라는 명령어는 실제로 unlink이라는 system call를 호출을 하게 됩니다

unlink의 특징은 해당 file의 reference count가 0일 될 때까지 wait되다가

reference count가 0일 때 그 file이 삭제가 되는 것입니다.



그래서 해당 file을 물고 있는 process가 떠 있는 상황에서

file을 rm으로 지우고 나면 ls를 하면 file은 삭제가 되지만 그 file의

reference는 process가 물고 있으므로 unlink가 호출이 되지 않게 됩니다.

그래서 du로는 file의 삭제된 만큼 size가 보여주지만 bdf에서는

그 size가 적용되지 않고 display가 되는 것입니다



이 문제를 해결을 위해서는 그 process를 찾아서 kill해서 reference

count를 0으로 만들고 그리고 다시 작업을 하시면 됩니다



해당 file을 물고 있는 process를 찾는 명령어는 fuser 이외에는 따로

없으며 이미 rm을 한 경우에는 실제로 file로 ls를 하면 없어져 버렸기

때문에 fuser를 하셔도 소용이 없습니다.

rm한 file을 알고계시고 그 file의 속성을 잘 알고 계시다면 그런

process를 kill하실 수 있지만 그렇지 못한 경우는

rebooting을 하시면 모든 process를 죽이고 다시 fork를 하는 경우로

가장 확실한 방법입니다.



uli : List unlinked (removed) files that are still in use

라는 툴을 사용하면 어떤 프로세스때문에 그런지 알수 있다고 합니다

lsof 을 사용해도 되고요



/oracle 이니 오라클 때문에 그럴것 같은데 오라클을 재 기동하면

사용량이 줄어 들듯 합니다.





=============================================================

파일 시스템을 구성하는 vgrd, bdra,minfree 등등 이 있기 때문에

bdf와 du 의 size가 다른 것입니다.



bdf는 위의 구성요소가 차지하는 공간 까지도 사용량으로 계산하고,

du -sk 는 실제 파일의 size만 체크합니다.

따라서 bdf가 더 크게 보이는 것입니다.



현재 고민하고 계시는 부분은 bdf를 기준으로 보셔야 됩니다.
권규용
정기 조언자

[급] filesystem full

답변 감사합니다

Oracle home directory라서 일단 너무 급했습니다..

일단 /oracle 을 restart하니 정상적으로 되었습니다...

사용자들의 아우성소리...ㅠ,.ㅠ;;



감사합니다.