Linux-도움말, inode가 부족합니다!


16

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

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

답변:


14

남자 mke2fs

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

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

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

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

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


1
예, 좋지만 reiserfs가 아니라 동적 inode 할당 (모든 새로운 파일 시스템에서 지원)을 지원하기 때문에

1
Reiser는 수많은 작은 파일에 탁월합니다. 나는 그와 함께 갈 것입니다.
Xorlev

그러나 Reiser를 사용할 때 백업이 있는지 확인합니다. 나 (나 자신)와 다른 사람들은 이전 몇 년 동안 reiserFS로 인해 데이터를 잃었다. 나는 더 이상 그것을 신뢰하지 않습니다.
Anony-Mousse-복지국 모니카

ext3는 그 방법이없는 것 같습니다
kagali-san

15

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

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

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

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


1
와우, 나는 거의 필사적이지만 당신의 답을 찾고 시도하기로 결정했고, 효과가있었습니다. 이것은 분명히 받아 들여질만한 대답이어야합니다! 가상 머신뿐만 아니라 LVM에서도 작동 :)
vadipp

12

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

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


1
작은 파일이 디스크 공간을 차지한다는 것을 알고 있다면 약간의 조정수행 해야 합니다 . 각 파일 시스템에는 장단점이 있습니다.
Franklin Piat

3

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

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


1
물론 두 파일 시스템 사이에 mv 파일을 넣을 수 있습니다. mv는 효과적으로 cp + rm의 시맨틱 설탕입니다. 두 파일 시스템간에 하드 링크를 연결할 수 없습니다. 다른 의미가 있었습니까?
Daniel Lawson

@Daniel : rename () 시스템 호출을 의미하며 심볼릭 링크의 의미에 문제가 있기 때문에 cp / rm의 설탕으로 mv를 사용하는 것은 부당한 습관이라고 생각합니다. 이 답변을 편집해야합니다. 아름답 지 않은 곳이 몇 군데 있습니다.
찰스 스튜어트

2

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 *만큼 좋지 않으며 파일 시스템은 시간이 지남에 따라 조각화되고 느려진다 고 말합니다.


-1

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

$ find /path -iname "pattern" | xargs tar rvf output_file.tar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.