Are there any drawbacks to creating ext4 file systems with maximum inodes?
Are there any drawbacks to creating ext4 file systems with 2^32-1 inodes?
I have a 1tb drive and I would like to store 800 million to 1.5 billion small files on it. It seems that the max is 4 billion, so I'm wondering whether I could just set it to the max when creating an fs, or I should find some other solution.
filesystem ext4 inode
add a comment |
Are there any drawbacks to creating ext4 file systems with 2^32-1 inodes?
I have a 1tb drive and I would like to store 800 million to 1.5 billion small files on it. It seems that the max is 4 billion, so I'm wondering whether I could just set it to the max when creating an fs, or I should find some other solution.
filesystem ext4 inode
 
 
 2
 
 
 
 
 Each ext4 inode takes up 250 bytes of disk space ...
 – Soren A
 Dec 27 '18 at 13:26
 
 
 
 
 
 
 
 
 
 @SorenA, even if it's unused?
 – Fluffy
 Dec 27 '18 at 13:30
 
 
 
 
 
 1
 
 
 
 
 If size of single inode is smaller than the blocksize of the filesystem, then in that case more inodes would be made than can ever be used.
 – Gaurav Gandhi
 Dec 27 '18 at 13:37
 
 
 
 
 
 
 
 
 
 @PerlDuck, please see edit
 – Fluffy
 Dec 27 '18 at 13:42
 
 
 
add a comment |
Are there any drawbacks to creating ext4 file systems with 2^32-1 inodes?
I have a 1tb drive and I would like to store 800 million to 1.5 billion small files on it. It seems that the max is 4 billion, so I'm wondering whether I could just set it to the max when creating an fs, or I should find some other solution.
filesystem ext4 inode
Are there any drawbacks to creating ext4 file systems with 2^32-1 inodes?
I have a 1tb drive and I would like to store 800 million to 1.5 billion small files on it. It seems that the max is 4 billion, so I'm wondering whether I could just set it to the max when creating an fs, or I should find some other solution.
filesystem ext4 inode
filesystem ext4 inode
edited Dec 27 '18 at 13:41
Fluffy
asked Dec 27 '18 at 13:21
FluffyFluffy
80231133
80231133
 
 
 2
 
 
 
 
 Each ext4 inode takes up 250 bytes of disk space ...
 – Soren A
 Dec 27 '18 at 13:26
 
 
 
 
 
 
 
 
 
 @SorenA, even if it's unused?
 – Fluffy
 Dec 27 '18 at 13:30
 
 
 
 
 
 1
 
 
 
 
 If size of single inode is smaller than the blocksize of the filesystem, then in that case more inodes would be made than can ever be used.
 – Gaurav Gandhi
 Dec 27 '18 at 13:37
 
 
 
 
 
 
 
 
 
 @PerlDuck, please see edit
 – Fluffy
 Dec 27 '18 at 13:42
 
 
 
add a comment |
 
 
 2
 
 
 
 
 Each ext4 inode takes up 250 bytes of disk space ...
 – Soren A
 Dec 27 '18 at 13:26
 
 
 
 
 
 
 
 
 
 @SorenA, even if it's unused?
 – Fluffy
 Dec 27 '18 at 13:30
 
 
 
 
 
 1
 
 
 
 
 If size of single inode is smaller than the blocksize of the filesystem, then in that case more inodes would be made than can ever be used.
 – Gaurav Gandhi
 Dec 27 '18 at 13:37
 
 
 
 
 
 
 
 
 
 @PerlDuck, please see edit
 – Fluffy
 Dec 27 '18 at 13:42
 
 
 
2
2
Each ext4 inode takes up 250 bytes of disk space ...
– Soren A
Dec 27 '18 at 13:26
Each ext4 inode takes up 250 bytes of disk space ...
– Soren A
Dec 27 '18 at 13:26
@SorenA, even if it's unused?
– Fluffy
Dec 27 '18 at 13:30
@SorenA, even if it's unused?
– Fluffy
Dec 27 '18 at 13:30
1
1
If size of single inode is smaller than the blocksize of the filesystem, then in that case more inodes would be made than can ever be used.
– Gaurav Gandhi
Dec 27 '18 at 13:37
If size of single inode is smaller than the blocksize of the filesystem, then in that case more inodes would be made than can ever be used.
– Gaurav Gandhi
Dec 27 '18 at 13:37
@PerlDuck, please see edit
– Fluffy
Dec 27 '18 at 13:42
@PerlDuck, please see edit
– Fluffy
Dec 27 '18 at 13:42
add a comment |
                                1 Answer
                            1
                        
active
oldest
votes
According to similar questions over on Stack Overflow 
and Unix & Linux (see below) it is a bad idea
to max out the number of inodes on an ext4 filesystem. 
Better use another filesystem or split your disk into multiple filesystems.
To summarize:
 - An inode occupies 256 bytes. It may be configured to 128, but even though: 
 
 - 2³² inodes × 256 bytes each = 1 TB
 
 
 - When creating an ext4 filesystem, you can specify the usage type 
 as defined in- /etc/mke2fs.conf:
 
 - mkfs.ext4 -T usage-type /dev/something
 
 
 - For storing many small files the type - smallmight be used:
 
 - small = {
 blocksize = 1024
 inode_size = 128
 inode_ratio = 4096
 }
 
 
 - This means: for every 4096 bytes of diskspace (filesystem size) one inode will be reserved 
 each of which has a size of 128 bytes. The command- mkfs.ext4 -T small /dev/something
 would thus create 244 million inodes on a 1TB filesystem that occupy 31 GB. These
 244 million files will at least occupy 250 GB (min. 1024 bytes each).
 
- To hold 1 billion inodes with the small footprint (128 bytes) you would need 128 GB 
 just for the inodes. If the smallest possible blocksize (1024 according to mk2efs's
 manpage) is used, then these 1 billion files would at least occupy 1TB (but remember
 you only have 872 GB left because of the 128 GB for the inodes).
- The smallest possible blocksize for ext4 is 1024 bytes. Hence, you cannot store more than 
 1 TB / 1024 = 1 billion files and it's pointless to have more inodes.
- As a general rule of thumb the - inode_ratioshould not be smaller than the- blocksize
 because you cannot (easily) store more than one file in one block.
- It is possible to store the first 60 bytes of a file directly whithin the inode if the 
 filesystem is configured that way. In that case, the file would not occupy a (regular)
 block; read about such inline data here but also consider the inode size.
 - From a comment to the U&L question: 
 
 
 - Too many inodes has a deep cost for sure, they take up space themselves, and believe me that fsck performance is dead serious. We're talking practically exponential slowdowns, like 30 seconds vs 2 days... and this is I/O bound. Not to mention slow downs of file listing, indexing... etc. 
 
 
References:
- How to store one billion files on ext4?
- Drawbacks of increasing number of inodes in EXT4
- Ext4 Disk Layout
- Smallest file block size (ext 3, 4)
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "89"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1104904%2fare-there-any-drawbacks-to-creating-ext4-file-systems-with-maximum-inodes%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
                                1 Answer
                            1
                        
active
oldest
votes
                                1 Answer
                            1
                        
active
oldest
votes
active
oldest
votes
active
oldest
votes
According to similar questions over on Stack Overflow 
and Unix & Linux (see below) it is a bad idea
to max out the number of inodes on an ext4 filesystem. 
Better use another filesystem or split your disk into multiple filesystems.
To summarize:
 - An inode occupies 256 bytes. It may be configured to 128, but even though: 
 
 - 2³² inodes × 256 bytes each = 1 TB
 
 
 - When creating an ext4 filesystem, you can specify the usage type 
 as defined in- /etc/mke2fs.conf:
 
 - mkfs.ext4 -T usage-type /dev/something
 
 
 - For storing many small files the type - smallmight be used:
 
 - small = {
 blocksize = 1024
 inode_size = 128
 inode_ratio = 4096
 }
 
 
 - This means: for every 4096 bytes of diskspace (filesystem size) one inode will be reserved 
 each of which has a size of 128 bytes. The command- mkfs.ext4 -T small /dev/something
 would thus create 244 million inodes on a 1TB filesystem that occupy 31 GB. These
 244 million files will at least occupy 250 GB (min. 1024 bytes each).
 
- To hold 1 billion inodes with the small footprint (128 bytes) you would need 128 GB 
 just for the inodes. If the smallest possible blocksize (1024 according to mk2efs's
 manpage) is used, then these 1 billion files would at least occupy 1TB (but remember
 you only have 872 GB left because of the 128 GB for the inodes).
- The smallest possible blocksize for ext4 is 1024 bytes. Hence, you cannot store more than 
 1 TB / 1024 = 1 billion files and it's pointless to have more inodes.
- As a general rule of thumb the - inode_ratioshould not be smaller than the- blocksize
 because you cannot (easily) store more than one file in one block.
- It is possible to store the first 60 bytes of a file directly whithin the inode if the 
 filesystem is configured that way. In that case, the file would not occupy a (regular)
 block; read about such inline data here but also consider the inode size.
 - From a comment to the U&L question: 
 
 
 - Too many inodes has a deep cost for sure, they take up space themselves, and believe me that fsck performance is dead serious. We're talking practically exponential slowdowns, like 30 seconds vs 2 days... and this is I/O bound. Not to mention slow downs of file listing, indexing... etc. 
 
 
References:
- How to store one billion files on ext4?
- Drawbacks of increasing number of inodes in EXT4
- Ext4 Disk Layout
- Smallest file block size (ext 3, 4)
add a comment |
According to similar questions over on Stack Overflow 
and Unix & Linux (see below) it is a bad idea
to max out the number of inodes on an ext4 filesystem. 
Better use another filesystem or split your disk into multiple filesystems.
To summarize:
 - An inode occupies 256 bytes. It may be configured to 128, but even though: 
 
 - 2³² inodes × 256 bytes each = 1 TB
 
 
 - When creating an ext4 filesystem, you can specify the usage type 
 as defined in- /etc/mke2fs.conf:
 
 - mkfs.ext4 -T usage-type /dev/something
 
 
 - For storing many small files the type - smallmight be used:
 
 - small = {
 blocksize = 1024
 inode_size = 128
 inode_ratio = 4096
 }
 
 
 - This means: for every 4096 bytes of diskspace (filesystem size) one inode will be reserved 
 each of which has a size of 128 bytes. The command- mkfs.ext4 -T small /dev/something
 would thus create 244 million inodes on a 1TB filesystem that occupy 31 GB. These
 244 million files will at least occupy 250 GB (min. 1024 bytes each).
 
- To hold 1 billion inodes with the small footprint (128 bytes) you would need 128 GB 
 just for the inodes. If the smallest possible blocksize (1024 according to mk2efs's
 manpage) is used, then these 1 billion files would at least occupy 1TB (but remember
 you only have 872 GB left because of the 128 GB for the inodes).
- The smallest possible blocksize for ext4 is 1024 bytes. Hence, you cannot store more than 
 1 TB / 1024 = 1 billion files and it's pointless to have more inodes.
- As a general rule of thumb the - inode_ratioshould not be smaller than the- blocksize
 because you cannot (easily) store more than one file in one block.
- It is possible to store the first 60 bytes of a file directly whithin the inode if the 
 filesystem is configured that way. In that case, the file would not occupy a (regular)
 block; read about such inline data here but also consider the inode size.
 - From a comment to the U&L question: 
 
 
 - Too many inodes has a deep cost for sure, they take up space themselves, and believe me that fsck performance is dead serious. We're talking practically exponential slowdowns, like 30 seconds vs 2 days... and this is I/O bound. Not to mention slow downs of file listing, indexing... etc. 
 
 
References:
- How to store one billion files on ext4?
- Drawbacks of increasing number of inodes in EXT4
- Ext4 Disk Layout
- Smallest file block size (ext 3, 4)
add a comment |
According to similar questions over on Stack Overflow 
and Unix & Linux (see below) it is a bad idea
to max out the number of inodes on an ext4 filesystem. 
Better use another filesystem or split your disk into multiple filesystems.
To summarize:
 - An inode occupies 256 bytes. It may be configured to 128, but even though: 
 
 - 2³² inodes × 256 bytes each = 1 TB
 
 
 - When creating an ext4 filesystem, you can specify the usage type 
 as defined in- /etc/mke2fs.conf:
 
 - mkfs.ext4 -T usage-type /dev/something
 
 
 - For storing many small files the type - smallmight be used:
 
 - small = {
 blocksize = 1024
 inode_size = 128
 inode_ratio = 4096
 }
 
 
 - This means: for every 4096 bytes of diskspace (filesystem size) one inode will be reserved 
 each of which has a size of 128 bytes. The command- mkfs.ext4 -T small /dev/something
 would thus create 244 million inodes on a 1TB filesystem that occupy 31 GB. These
 244 million files will at least occupy 250 GB (min. 1024 bytes each).
 
- To hold 1 billion inodes with the small footprint (128 bytes) you would need 128 GB 
 just for the inodes. If the smallest possible blocksize (1024 according to mk2efs's
 manpage) is used, then these 1 billion files would at least occupy 1TB (but remember
 you only have 872 GB left because of the 128 GB for the inodes).
- The smallest possible blocksize for ext4 is 1024 bytes. Hence, you cannot store more than 
 1 TB / 1024 = 1 billion files and it's pointless to have more inodes.
- As a general rule of thumb the - inode_ratioshould not be smaller than the- blocksize
 because you cannot (easily) store more than one file in one block.
- It is possible to store the first 60 bytes of a file directly whithin the inode if the 
 filesystem is configured that way. In that case, the file would not occupy a (regular)
 block; read about such inline data here but also consider the inode size.
 - From a comment to the U&L question: 
 
 
 - Too many inodes has a deep cost for sure, they take up space themselves, and believe me that fsck performance is dead serious. We're talking practically exponential slowdowns, like 30 seconds vs 2 days... and this is I/O bound. Not to mention slow downs of file listing, indexing... etc. 
 
 
References:
- How to store one billion files on ext4?
- Drawbacks of increasing number of inodes in EXT4
- Ext4 Disk Layout
- Smallest file block size (ext 3, 4)
According to similar questions over on Stack Overflow 
and Unix & Linux (see below) it is a bad idea
to max out the number of inodes on an ext4 filesystem. 
Better use another filesystem or split your disk into multiple filesystems.
To summarize:
 - An inode occupies 256 bytes. It may be configured to 128, but even though: 
 
 - 2³² inodes × 256 bytes each = 1 TB
 
 
 - When creating an ext4 filesystem, you can specify the usage type 
 as defined in- /etc/mke2fs.conf:
 
 - mkfs.ext4 -T usage-type /dev/something
 
 
 - For storing many small files the type - smallmight be used:
 
 - small = {
 blocksize = 1024
 inode_size = 128
 inode_ratio = 4096
 }
 
 
 - This means: for every 4096 bytes of diskspace (filesystem size) one inode will be reserved 
 each of which has a size of 128 bytes. The command- mkfs.ext4 -T small /dev/something
 would thus create 244 million inodes on a 1TB filesystem that occupy 31 GB. These
 244 million files will at least occupy 250 GB (min. 1024 bytes each).
 
- To hold 1 billion inodes with the small footprint (128 bytes) you would need 128 GB 
 just for the inodes. If the smallest possible blocksize (1024 according to mk2efs's
 manpage) is used, then these 1 billion files would at least occupy 1TB (but remember
 you only have 872 GB left because of the 128 GB for the inodes).
- The smallest possible blocksize for ext4 is 1024 bytes. Hence, you cannot store more than 
 1 TB / 1024 = 1 billion files and it's pointless to have more inodes.
- As a general rule of thumb the - inode_ratioshould not be smaller than the- blocksize
 because you cannot (easily) store more than one file in one block.
- It is possible to store the first 60 bytes of a file directly whithin the inode if the 
 filesystem is configured that way. In that case, the file would not occupy a (regular)
 block; read about such inline data here but also consider the inode size.
 - From a comment to the U&L question: 
 
 
 - Too many inodes has a deep cost for sure, they take up space themselves, and believe me that fsck performance is dead serious. We're talking practically exponential slowdowns, like 30 seconds vs 2 days... and this is I/O bound. Not to mention slow downs of file listing, indexing... etc. 
 
 
References:
- How to store one billion files on ext4?
- Drawbacks of increasing number of inodes in EXT4
- Ext4 Disk Layout
- Smallest file block size (ext 3, 4)
answered Dec 27 '18 at 16:26


PerlDuckPerlDuck
5,52411231
5,52411231
add a comment |
add a comment |
Thanks for contributing an answer to Ask Ubuntu!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1104904%2fare-there-any-drawbacks-to-creating-ext4-file-systems-with-maximum-inodes%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
Each ext4 inode takes up 250 bytes of disk space ...
– Soren A
Dec 27 '18 at 13:26
@SorenA, even if it's unused?
– Fluffy
Dec 27 '18 at 13:30
1
If size of single inode is smaller than the blocksize of the filesystem, then in that case more inodes would be made than can ever be used.
– Gaurav Gandhi
Dec 27 '18 at 13:37
@PerlDuck, please see edit
– Fluffy
Dec 27 '18 at 13:42