How to increase inodes on a ufs file system with newfs
How to increase inodes on a ufs file system with newfs
Note that the newfs command will create a new filesystem on the slice you specify; this will destroy all data already on the slice. If you wish to access the data on the slice after running newfs you must back it up first, and restore after running the newfs command as described below.
Solution
The procedure to increase the inode count involves the following steps.
1 Ensure
a proper full backup of file system
2 Recreate
the filesystem with enhanced inode count , need a downtime of
applications.
3 Copy
the files back to the new filesystem.
The cause of this problem is due to a large number of small files on the file system. This can use up all of the inodes allocated for that file system while there is still plenty of disk space. To check for inodes, run the following command df -o i filesystem:
# df -o i /work Filesystem iused ifree %iused Mounted on /dev/dsk/c0t0d0s7 13 1241587 0% /workor run as below with out specifying a file system.
# df -o i Filesystem iused ifree %iused Mounted on /dev/dsk/c0t0d0s0 5184 490432 1% / /dev/dsk/c0t0d0s6 61652 680748 8% /usr /dev/dsk/c0t0d0s1 7375 488241 1% /var /dev/dsk/c0t0d0s5 16718 975282 2% /opt /dev/dsk/c0t0d0s4 4 499196 0% /test /dev/dsk/c0t0d0s7 13 1241587 0% /workAs you can see I don’t have a problem with the inodes, if you did have a problem the output from would indicate %iused 100%. There is a way to resolve this issue, first you need to get a good backup of the affected file system. Then you can run the mkfs -m command to see how any filystem was created, as seen below. See man page for mkfs (1M)
# mkfs -m /dev/rdsk/c0t0d0s7 mkfs -F ufs -o nsect=255,ntrack=16,bsize=8192,fragsize=1024,cgsize=26,free=1,rps=90,nbpi=8235,opt=t,apc=0,gap=0,nrpos=8,maxcontig=16 /dev/rdsk/c0t0d0s7 20481600The key field from the about output is nbpi=8235 (number bytes per inode). The nbpi can be changed when running the newfs command to create a new file system.
The following is from the newfs man page.
-i nbpi The number of bytes per inode. This specifies the density of inodes in the file system. The number is divided into the total size of the file system to determine the fixed number of inodes to create. It should reflect the expected average size of files in the file system. If fewer inodes are desired, a larger number should be used; to create more inodes a smaller number should be given. The default for nbpi is as fol- lows:. Disk size Density Less than 1GB 2048 Less than 2GB 4096 Less than 3GB 6144 3GB to 1 Tbyte 8192 Greater than 1 Tbyte 1048576 or created with -TAfter you backup the file system you want to increase the inodes on, then you newfs the file system using the -i nbpi option specifing a smaller number. As the output from the mkfs -m /dev/rdsk/c0t0d0s7 shows nbpi=8235.
If you cut that number in half when running the newfs command with the -i nbpi=4117 will double your inodes on that file system. Then after doing a newfs and increasing ther inodes you restore your file system from the backup you created prior to starting this process. See man page on newfs (1M)
NOTE:
What is the maximum number of inodes you can create for a multi-TB filesystem?
Answer:
2^20 (aka 1024 * 1024) per terabyte.
Comments