Linux-도움말, inode가 부족합니다! 사용되지만 (으로 확인

작은 파일이 많은 파일 시스템이 있습니다. 현재 약 80 %의 inode가 사용되지만 (으로 확인 df -i) 디스크 공간의 60 % 만 사용됩니다. inode 수를 어떻게 ‘증가’시킬 수 있습니까? 디스크 공간 만 있으면 디스크 크기를 늘릴 수 있습니다 (이 디스크는 LVM에 있음). 디스크 크기를 늘리면 더 많은 inode가 생깁니 까?

도움이된다면이 디스크가있는 파일 시스템을 기꺼이 늘리겠습니다.



답변

남자 mke2fs

inode 수에 -N이 표시됩니다.

따라서 새 파티션을 포맷 할 때 지정할 수 있습니다. 지금은 그렇게 도움이되지 않습니까?

파일 시스템을 조정하는 tune2fs에는 더 많은 inode를 추가 할 수있는 방법이없는 것 같습니다.

그러나 아마도 ext3 또는 4가 이것을하고 다른 누군가가 알고 있습니다 ….?

이제 백업, 파티션 재 포맷, 복원 옵션이 있습니다.


답변

원래 질문에 대답하기 위해, 아마도 질문자가 늦었을지라도-LVM2에서 EXT2 / 3를 늘리면 inodes 한계가 증가합니다.

65k inodes 한계를 가진 1G 크기의 파티션이 있습니다. 후

lvextend -L+1G /dev/vg/var
umount /var
resize2fs /dev/vg/var
mount /var

… 내 inode 제한은 이제 128k입니다.


답변

작은 파일이 디스크 공간을 차지한다는 것을 알고 있다면 ReiserFS 또는 EXT2 / 3 / 4 대신 새로운 최신 FS (XFS, JFS)와 같은 동적 inode 할당이있는 FS를 사용해야합니다 (사용중인 것으로 가정) , 당신은 그렇게 말하지 않았습니다).

파일 시스템 마이그레이션은 아마도 귀하의 상황에서 좋은 선택 일 것입니다.


답변

스탑 갭으로, 새로운 파일 시스템을 마운트하고 거기에 fs 계층의 일부인 cp / rm / ln-s를 설치하십시오. 이제 몇 개의 여분의 inode가 있습니다! 두 fses 사이에 mv 파일을 넣을 수 없으므로 그렇게 해야하는 것을 깨뜨리지 만 많은 앱의 경우 투명 할 수 있습니다.

그런 다음 Paul의 조언에 따라 새로운 fs를 작성하고 마이그레이션하십시오.


답변

Ext4는 작은 파티션을 만들고 작은 파일이 많으면 inode가 부족 flex_bg하고 기능 이 있는 경우 tune2fsinode를 증가시키는 데 사용할 수없는 동일한 문제가 발생합니다 .

개인적으로 나는 모든 버전의 rieserfs에 대해 ext4를 사용하고 포맷 할 때 다음을 수행합니다.

mkfs.ext4 -I 512 /dev/foo
tune2fs -i0 -c0 -o journal_data_writeback /dev/foo

이 방법으로 포맷하면 512M 부트 파티션에 33160 개의 inode가 생깁니다.

나는 이것을 reiserfs를 수년간 사용해온 사람으로서 커널 지원은 ext *만큼 좋지 않으며 파일 시스템은 시간이 지남에 따라 조각화되고 느려진다 고 말합니다.


답변

inode 제한이없는 저항 또는 다른 fs로 이동하십시오. 특히 로그 파일과 관련하여 아마도 많은 양의 작은 사용되지 않는 파일을 하나의 큰 tar 파일로 압축하여 상당한 양의 inode를 해제 할 수 있습니다.

$ find /path -iname "pattern" | xargs tar rvf output_file.tar