ext4 fs가 포함된 RHEL 9가 있습니다.
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 1258291199 1258289152 600G 83 Linux
이미 100,000,000개의 파일을 저장할 수 있는 Inode를 갖춘 ext4가 필요했습니다. +
mkfs.ext4 -N 2000000000 /dev/sdb1을 실행할 수 있다고 생각했습니다.
하지만 파티션을 마운트하면 충분한 inode를 얻을 수 있습니다.
/dev/sdb1 /fileshare 마운트
/fileshare에는 92GB만 표시됩니다.
mkfs.ext4 /dev/sdb1을 실행한 다음 마운트하면 /fileshare에 560GB가 표시됩니다. 이것이 바로 제가 원하는 것입니다. 대용량 파일(1억 ~ 5억)을 수용하는 데 필요한 inode 수를 어떻게 얻을 수 있지만 여전히 560GB 디스크가 있습니다. 크기?
답변1
왜 -N 2000000000
? 귀하의 질문에 따르면 20억 개가 아닌 약 1억 개를 목표로 하고 있습니다. 필요한 것보다 20배 더 많은 inode를 요구하고 있습니다. 이 문제를 해결하면 합리적인 결과를 얻을 수 있습니다.
그러나 여기에는 파일 크기와 관련하여 더 큰 문제가 있습니다. 비록최소 1kB/파일많은 파일(kB당 대략 4x의 inode 포함)을 저장하려면 약 125GB의 스토리지만 필요하며, 2x10^9 inode의 예를 사용하면 2.25TB가 됩니다. 적어도.
답변2
각각 256바이트인 20억 개의 inode, 즉 476GB의 inode가 필요합니다. 요구 사항이 5억이면 inode 공간이 120GB만 있는 것이 훨씬 더 좋습니다. inode의 크기를 줄일 수도 있지만 -I 128
여기에는 제한이 있습니다.mkfs.ext4
mke2fs
자세한 내용은 /맨페이지.
나는 그 옵션만을 사용 -i bytes-per-inode
하고 당신이 좋은 균형을 얻을 것이라고 믿습니다.