On 2016-11-22 15:41, David Lang wrote: > changing the blocksize doesn't really address the problem of too few inodes, > except indirectly in that the default number of inodes is calculated from the > number of blocks on the filesystem. > > In the case of LEDE, we tend to have fewer large files on the ext4 partition > than most distros, for a couple of reasons. First we are always concerned > with > space, so we tend to have smaller files to start with, and then we tend to > have > most of the larger files in a system on jffs2/squashfs with ext4 being used > only > to track the config files (which tend to be tiny) > > Setting these involve trade-offs that don't matter much at the typical > desktop > drive size, but matter a lot when space is really tight. > > on a 16M filesystem, 1024 inodes means that you are assuming that your > average > file size is going to be ~16K, that's larger than what we are going to use on > an > overlay filesystem. with a 4K block size, your minimum filesize is effectivly > 4K > > However, on a very large filesystem, you are probably going to be filling > that > space with large files (audio files at multiple MB each, video files at > multiple > GB each, iso images at multiple GB, etc), so having a small blocksize and an > inode for every 4K of disk space ends up wasting a fair amount of space (a 4T > filesystem with one inode per 4K block uses 128GB just in inodes) > > > Having gone through all of this, I think we need to step back a bit and > change > the kconfig settings. > > Instead of specifying blocksize by default, we should have a 'useage pattern' > for the filesystem (lots of small files, default, large files, gigantic > files, > custom) and set the filesystem blocksize based on the combination of the > usage > pattern and the filesystem size. > > mkfs.ext* has the -T flag to specify usage type (lots of small files, > default, > lots of large file, gigantic files) to set the blocksize and number of inodes > on > the filesystem. The definitions are in /etc/mke2fs.conf > > We should leverage this (and possibly add our own definitions) > > On a 16M filesystem, we probably want to use a 1K block size and have an > inode > for every couple of blocks. I'd say on a 16M filesystem we probably want to use squashfs+ext4 instead of plain ext4 and avoid the inode issue altogether.
- Felix _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev