인터넷에서 검색했지만 내 문제에 대한 만족스러운 답변을 찾을 수 없었습니다. 현재 겪고 있는 문제는 NTFS 파티션의 데이터를 ext4 파티션으로 변환한다는 것입니다. 놀랍게도 ext4 파일 시스템을 사용하면 동일한 하드 드라이브에 더 적은 양의 데이터를 저장할 수 있습니다. 조사한 결과 이것이 ext4의 Inode와 관련이 있을 수 있음을 발견했습니다.
me@server:/media$ LANG=C df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 3815552 31480 3784072 1% /media/storage
/dev/sdb1 1905792 1452 1904340 1% /mnt
명령을 실행할 때
me@server:~$ sudo find /mnt -type f | wc -l
1431
하드 드라이브에는 1431개의 파일이 있으며 각 파일의 크기는 약 4~8GB입니다. 따라서 기본적으로 극소수의 파일에 대해 너무 많은 inode가 있습니다.
내 질문은 다음과 같습니다
- 이제 Inode 수를 변경하는 방법은 무엇입니까?
- 파일을 저장하는 데 더 좋은 파일 시스템이 있습니까?
답변1
기본적으로 ext2/ext3/ext4 파일 시스템은 루트 사용자를 위해 5%의 공간을 예약합니다. 이는 일반적인 구성의 루트 파일 시스템에 적합합니다. 즉, 사용자가 디스크를 가득 채우면 시스템이 정지되지 않고 중요한 기능이 계속 작동할 수 있으며 특히 로그가 계속 기록될 수 있음을 의미합니다. 대부분의 다른 시나리오에서는 이는 의미가 없습니다.
루트에 5%를 예약하지 않으려면 파일 시스템을 생성할 때 를 전달하거나 -m 0
나중에 이 옵션을 사용하여 호출하세요.mkfs
tune2fs
-m 0
그러나 파일 시스템이 95% 차면 확장을 고려해야 합니다. NFS 및 ext? 제품군을 포함한 대부분의 파일 시스템은 거의 가득 차면 효율적으로 작동하지 않습니다.
답변2
가장 일반적인 사용 사례에서 기본 설정으로 생성된 대부분의 파일 시스템에는 필요한 것보다 더 많은 inode가 있습니다. 그러나 이는 다음을 고려하면 실제로 꽤 좋은 절충안입니다.
- 전체적으로, inode 테이블은 그다지 많은 공간을 낭비하지 않습니다. 파일 시스템에서 마지막 몇 바이트의 여유 공간을 짜내기 위해 inode 수를 줄이는 것은 거의 가치가 없습니다.
- inode 수를 줄인 다음 파일 시스템에 inode가 부족하지만 여전히 사용 가능한 블록이 많이 있는 경우 사용 가능한 블록을 모두 사용할 수 없는 것은 매우 실망스럽고 문제를 쉽게 해결할 수 없습니다.파일 시스템이 생성된 후에는 inode 수를 변경할 수 없습니다..
파일을 저장하는 데 더 좋은 파일 시스템이 있습니까?
설마. ext4
매우 좋은.
각 파일 시스템은 파일을 조금씩 다르게 저장하므로 스토리지 오버헤드도 약간 다르지만 차이는 작아야 합니다. 가장 극단적인 경우에는 몇 퍼센트만 차이가 납니다.
당신은 시도 할 수 있습니다 xfs
. 나는 과거에 각각 크기가 약 250KB인 수백만 개의 파일이 있는 일부 파일 시스템이 xfs
공간 효율성 측면에서 약간 더 나은 성능을 발휘한다는 것을 알아차린 것 같습니다. 그러나 YMMV는 사용 사례가 다르기 때문입니다.