파일시스템 용량이 왜 부족하지??

2019.01.31 07:00



어느 평화로운 금요일. 



금요일 오후쯤 되면 살짝 마음이 들뜨면서 시계 쪽으로 눈길이 가는 횟수가 많아진다. 

이런 현상은 퇴근 후 약속의 유무와는 관계없는듯하다. 


시계를 바라보는 주기가 점점 짧아지지만 시간은 점점 더 더디게 오는듯해서 몸이 움찔거린다. 




"띠리리리리~~~"


이럴 때 울리는 전화벨은 늘 불길하다. 


아니, 나에게 오는 모든 전화는 다 불길하다. 



"전자결재 기안이 안돼요. 새로운 기안을 작성하려고 버튼을 누르면 뭐라고 에러 창이 떠요"


음... 하드웨어적 장애는 아닌거 같다. 



"그룹웨어는 아직 사업이 종료되지 않아서 밴더사 엔지니어들이 아직 상주하고 있어요. 모르지요. 뭔가 또 손대서 이상해진거 아닌지 모르겠네요. 확인해보라고 할께요"



그룹웨어 담당자에게 이런 전화가 왔다고 이야기했더니 자기도 조금 전에 전화 받고 엔지니어에게 전달했다고 한다. 


그럼 정시 퇴근에는 별 문제가 없겠지????  ㅎㅎㅎ




퇴근 시간은 다가오는데 장애가 해결되었다는 연락은 없고...  불길한 느낌을 꾹꾹 누르면서 그룹웨어 제작사 엔지니어들이 상주하는 사무실로 들어섰다. 



몇 사람이 바쁘게 키보드를 누르며 누군가와 통화를 하는 중인데 분위기를 보니 아직 원인을 못찾았나보다. 



모니터를 응시하며 둘러싸고 있는 사람들 중 수석 PM에게 다가가 물었다. 


"뭐가 문제에요?"


"로그에는 파일 시스템이 부족하다고 나옵니다. 근데 시스템을 보면 파일시스템 사용율이 80% 조금 넘어서 남아있는 용량이 많아요. 다른 원인이 뭔지 찾고 있습니다."


수석 PM이 손가락으로 모니터를 가리키며 이야기한다. 


문제의 디렉토리는 50G가 할당되어 있는데 사용률은 82% 정도다. 




나도 모니터를 둘러싼 인파와 함께 모니터를 노려보다가 옆자리 비어있던 시스템 콘솔에 앉았다. 


내가 서버에 로그인하고 df 명령을 해봐도 동일하다. 

(당연하지. 사용자에 따라 용량이 변할리야 없지 않은가??)



파일시스템이 부족하다고 나온다면 inode하고는 관계없는건가???



"그 파일시스템 아이노드는 얼마나 남았어요?"


내 질문에 수석PM 이하 모두들 꿀먹은 벙어리다. 


다들 'inode.. 음.. inode..' 이런다. 




헐.... 아무리 여기 있는 엔지니어들이 응용프로그램 개발자들이긴 하지만 inode에 대해 잘 모르는 눈치다. 



나라도 확인해봐야겠다는 생각에 df -i, df -g, df -gi 등등 명령어를 날려봐도 아이노드 부분이 안 보인다. 


이 서버가 이상한건가?? 


서버는 AIX에 콘쉘(ksh)을 사용하고 있는데 df -i는 왜 안 먹지??? 





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
>df -i
Filesystem    GB blocks      Used      Free %Used Mounted on
/dev/hd4          10.00      0.33      9.67    4/
/dev/hd2          10.00      7.48      2.52   75/usr
/dev/hd9var       10.00      1.15      8.85   12/var
/dev/hd3          10.00      1.70      8.30   17/tmp
/dev/hd1           5.00      0.59      4.41   12/home
...
 
 
 
>df 
Filesystem    GB blocks      Used      Free %Used Mounted on
/dev/hd4          10.00      0.33      9.67    4/
/dev/hd2          10.00      7.48      2.52   75/usr
/dev/hd9var       10.00      1.15      8.85   12/var
/dev/hd3          10.00      1.70      8.30   17/tmp
/dev/hd1           5.00      0.59      4.41   12/home
...
 
 
 
>df -g
Filesystem    GB blocks      Used      Free %Used Mounted on
/dev/hd4          10.00      0.33      9.67    4/
/dev/hd2          10.00      7.48      2.52   75/usr
/dev/hd9var       10.00      1.15      8.85   12/var
/dev/hd3          10.00      1.70      8.30   17/tmp
/dev/hd1           5.00      0.59      4.41   12/home
...
 
cs




옵션을 바꿔서 명령어를 날려도 뭔가 똑같은 화면이 나오는듯 하다. 



'옵션이 안 먹나???'


'아.. alias????'




alias를 확인해보니 df가 자리잡고 있다. 



df='df -Ig'



그래도 왜 -i 옵션이 안 먹지???



지금은 이런걸 궁금해할 때가 아니다. 일단 alias를 주석처리하고 다시 df -i 명령을 내려보니 제대로 보인다. 



1
2
3
4
5
6
7
8
9
10
11
>df -i
 
Filesystem    512-blocks      Free %Used    Iused %Iused Mounted on
/dev/hd4        20971520  20273232    4%    20480     1/
/dev/hd2        20971520   5287912   75%    99022    14/usr
/dev/hd9var     20971520  18550784   12%     5525     1/var
/dev/hd3        20971520  17406456   17%      353     1/tmp
/dev/hd1        10485760   9246424   12%       50     1/home
/dev/hd11admin   10485760   7842120   26%      290     1/admin
...
 
cs



문제의 디렉토리 inode 사용량이 100%다. 

(이 때 화면 캡쳐가 없다. 내 자리에서 한 작업이 아니라 따로 로그를 저장하지 못했다)




책에서만 보다가 inode가 100% 나온걸 첨봤다. 허.허.허.



수석 PM에게 대략 상황을 이야기하고 불필요한 파일 찾아서 지우라고 했다. 


지울 파일 못 찾으면 로그파일 같은건 다른 디렉토리로 일단 옮겨놓으라고 했다. 



잠시 후 저쪽에서 들리는 소리 "수석님. 결재 잘 됩니다"



에구구구... 


이렇게 해서 땡퇴근 실패하고 말았다. 






나중에 불려온 서버 엔지니어에게 자세한 내용을 들어보니 해당 디렉토리는 50G 할당되어 있고 inode는 4096byte씩 총 16Gbyte가 할당되어 있었다고 한다. 


inode 상황을 좀더 자세히 알 수 있는 명령어로 mmdf 명령어를 알려준다. 

( mmdf  명령어는 IBM에서 GP파일시스템에 사용하는 명령어이다)





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
>mmdf /dev/gphoffice
 
disk                disk size  failure holds    holds              free KB             free KB
name                    in KB    group metadata data        in full blocks        in fragments
--------------- ------------- -------- -------- ----- -------------------- -------------------
 
Disks in storage pool: system (Maximum disk size allowed is 223 GB)
handyhoffice_nsd0      26214400        1 yes      yes        13085952 ( 50%)       1139104 ( 4%) 
handyhoffice_nsd1      26214400        1 yes      yes        12743680 ( 49%)       1095472 ( 4%) 
                -------------                         -------------------- -------------------
  (pool total)         52428800                              25829632 ( 49%)       2234576 ( 4%)
 
                   =============                         ==================== ===================
 
  (total)              52428800                              25829632 ( 49%)       2234576 ( 4%)
 
 
 
Inode Information
-----------------
Number of used inodes:         3542024
Number of free inodes:          827064
Number of allocated inodes:    4369088
Maximum number of inodes:      4369088
cs



(inode에 여유가 있는 이유는 응급조치로 해당 디렉토리 파일 일부를 삭제한 다음이라서...)




결국 해당 파일시스템에서는 inode 4,369,088개를 사용할 수 있는데 이걸 전부 다 사용해버려서 파일시스템이 부족하다는 에러메시지가 나왔다는거다. 


4백만개. 미친. 



이 디렉토리에 뭐가 쌓이는거냐고 물었더니 엔지니어가 잘 모른단다. 자기네 연구소에 연락해서 확인해봐야 한다고. 



아~~~. 뒷목 아프다. 



뭐가 쌓이는 디렉토리인지 알아야 파일시스템을 늘려주던지 할 수 있다고 짜증내면서 사무실을 나섰다. 



술 땡긴다. 


오늘은 얌전하게 집에서 강아지랑 놀아볼까 했는데 내 정신건강을 위해서라도 마셔야겠다. 


불금이다. 마시고 죽자. 

또루아빠 뒤죽박죽 SM 돌파기 , , , ,