[Linux] 스토리지 가용성 문제

 inode 제한 



시스템에 들어갈 수 있는 inode의 개수가 제한 되어있고 물리적인 공간이 남아있더라도 inode가 먼저 모두 소진될 수 있습니다 . 

  • inode 개수는 파일시스템을 생성 할 때 영구적으로 결정 됩니다 
  • inode  자체도 디스크 공간을 차지하므로 mkfs.ext4등의 도구 파일 시스템을 생성할 때 파일을 최대한 많이 저장하되 디스크 공간낭비를 최소로 하는 적절한 타협점을 찾아야 합니다 . 

inode 확인 

디스크 사용량을 알 수 있는 df 에 -i 인자를 추가하여  inode 데이터를출력합니다 .
  •  /dev/sda2 는 루트 파티션으로  이 파티션의 inode 상태가 가장 중요 합니다 . 



inode 검사 

파일이 가장 많이 들어 있는 디렉터리에 inode가 모여있게 됩니다 . 
find 명령어로 그 정보를 알아낼 수 있습니다 . 

#cd /
# find . -xdev -type f | cut -d “/” -f 2 | sort | uniq -c | sort -n


find  명령어 구분 

 

구문

기능

.

현재 디렉터리에서 아래로 내려가며 검색합니다.

-xdev

현재 장치 안에서만 검색합니다 .

-type -f

file 형의 개체를 검색합니다 .

cut -d “/”

구분 문자 / 사이의 텍스트를 제거합니다

-f 2

찾아낸 항목에서 두 번째 필드를 선택합니다.

sort

찾아낸 항목들을 청령하고 표준 출력장치로 보낸다 

uniq -c

sort 가 보낸 항목들의 줄 수 를 셉니다 . 

sort -n

메세지를 숫자 순서대로 출력합니다 . 


검사 결과 

현재 .local에 가장 많은 파일이 있는 디렉터리임을 알 수 있습니다 . 

아주 많은 파일이 .local디렉터리 아래 어딘가 있습니다 . 한 단계 내려가서 find 명령어를 다시 실행합니다 . 


#cd .local
#find . -xdev -type f | cut -d "/" -f 2 | sort |uniq -c  | sort -n
이번에는 /.local/lib 에 가장 많은 파일이 있는 것을 알 수 있습니다 





Centos 에서는 yum-utils 패키지를 설치하고 package-cleanup 명령을 하면 됩니다 
--count = 2 옵션을 추가하여 최신 커널 두개만 남기고 모두 삭제합니다 . 

# yum -y install yum-utils
#package-cleanup --oldkernels --count=2

지금은 불필요한 오래된 커널이 없어서 다음과 같이 실행 됩니다 . 


댓글