RHEL: Extending the maximum inode count on a ext2/ext3/ext4 filesystem

# Tested on RHEL 6 & 7


# An inode is a data structure that contains information about a file or directory. Inodes
# rarely get used up when the file system has available space. Nevertheless, this may
# happen when there is a large amount of small files or empty files because each file or
# directory will use an inode.

# Once the filesystem created it is not possible to modify the number of inodes so one
# should carefully decide the correct value for this parameter.

# In addition, we should take into account that the value of bytes per inode shouldn't be
# smaller than the blocksize of the filesystem, otherwise there will be more inodes on the
# filesystem than those that will be ever used.

# Inode number may be set by specifying the total number of inodes during filesystem
# creation, "-N", or by indicating a bytes/inode ratio, "-i".


# For a small logical volume like following one:

lvs /dev/rootvg/lv_test
   LV      VG     Attr       LSize
   lv_test rootvg -wi-a----- 512.00m


# I'll create a ext3 filesystem using different bytes/inode ratio. Pay attention to the
# space "lost" on the filesystem for inode purposes:

mkfs.ext3 /dev/rootvg/lv_test
   mke2fs 1.41.12 (17-May-2010)
   Filesystem label=
   OS type: Linux
   Block size=4096 (log=2)
   Fragment size=4096 (log=2)
   Stride=0 blocks, Stripe width=0 blocks
   32768 inodes, 131072 blocks
   6553 blocks (5.00%) reserved for the super user
   First data block=0
   Maximum filesystem blocks=134217728
   4 block groups
   32768 blocks per group, 32768 fragments per group
   8192 inodes per group
   Superblock backups stored on blocks:
           32768, 98304

df -h /test
   Filesystem            Size  Used Avail Use% Mounted on
   /dev/mapper/rootvg-lv_test
                         504M   17M  462M   4% /test



mkfs.ext3 -i 4096 /dev/rootvg/lv_test
   mke2fs 1.41.12 (17-May-2010)
   Filesystem label=
   OS type: Linux
   Block size=4096 (log=2)
   Fragment size=4096 (log=2)
   Stride=0 blocks, Stripe width=0 blocks
   131072 inodes, 131072 blocks
   6553 blocks (5.00%) reserved for the super user
   First data block=0
   Maximum filesystem blocks=134217728
   4 block groups
   32768 blocks per group, 32768 fragments per group
   32768 inodes per group
   Superblock backups stored on blocks:
           32768, 98304

df -h /test
   Filesystem            Size  Used Avail Use% Mounted on
   /dev/mapper/rootvg-lv_test
                         480M   17M  438M   4% /test



mkfs.ext3 -i 1024 /dev/rootvg/lv_test
   mke2fs 1.41.12 (17-May-2010)
   Filesystem label=
   OS type: Linux
   Block size=4096 (log=2)
   Fragment size=4096 (log=2)
   Stride=0 blocks, Stripe width=0 blocks
   524288 inodes, 131072 blocks
   6553 blocks (5.00%) reserved for the super user
   First data block=0
   Maximum filesystem blocks=135272448
   16 block groups
   8592 blocks per group, 8592 fragments per group
   32768 inodes per group
   Superblock backups stored on blocks:
           8592, 25776, 42960, 60144, 77328

df -h /test
   Filesystem            Size  Used Avail Use% Mounted on
   /dev/mapper/rootvg-lv_test
                         384M   19M  340M   6% /test
0 (0)
Article Rating (No Votes)
Rate this article
Attachments
There are no attachments for this article.
Comments
There are no comments for this article. Be the first to post a comment.
Full Name
Email Address
Security Code Security Code
Related Articles RSS Feed
Top 25 Best Linux Performance Monitoring and Debugging Tools
Viewed 8023 times since Sun, Sep 30, 2018
Exclude multiple files and directories with rsync
Viewed 3203 times since Wed, Oct 31, 2018
IPTABLES linux
Viewed 17813 times since Sat, Jun 2, 2018
LVM: Managing snapshots
Viewed 8547 times since Sat, Jun 2, 2018
Tunnel SSH Connections Over SSL Using ‘Stunnel’ On Debian 7 / Ubuntu 13.10
Viewed 4296 times since Fri, Sep 28, 2018
Linux Linux Network Statistics Tools / Commands
Viewed 10069 times since Mon, Sep 21, 2020
RHCS6: Reduce a Global Filesystem 2 (GFS2)
Viewed 4016 times since Sun, Jun 3, 2018
Method 2 – Use shell scripts How to install yum cron on a CentOS/RHEL 6.x/7.x
Viewed 4947 times since Tue, Dec 4, 2018
WatchDog watchdog.sh script for checking server running
Viewed 6181 times since Tue, Jul 31, 2018
RHCS6: ’fencing’ basics
Viewed 3023 times since Sun, Jun 3, 2018