SUMMARY: newfs -i [nbpi] on large FS does not change number of inodes



Hi all,

First, thanks to G. Bakalarski, Brad Morrison, Darren Dunham and Rainer
Heilke for helping me to sort this out.

Short answer: This limitation (minimal number of bytes per inode 1048576
for UFS bigger than 1TB) is a design decision by Sun, that cannot be
overridden - it is hardcoded in newfs and mkfs, and is due to the time
it would take for fsck and other recovery options on big volumes with
lots of small files.

In times where UFS-logging is a must in any situation and the default
since Solaris 10, this decision is questionable. There is a pending RFE
(5015643 Remove or reduce the nbpi restriction from *mkfs_ufs* for UFS
mtb filesystems) and patches for OpenSolaris-newfs available - see
http://groups.google.com/group/comp.unix.solaris/browse_thread/thread/ac5fb4607ab7677b

So the only options in this kind of situation are:

1. Decrease the size of the slice/FS to <1TB

2. Use patched version of newfs

3. Use ZFS

In my situation, talking of a highly productive system that holds all
user data, I surely won't go for 2. I'd like to give ZFS a shot, but
having little experience with it, could lead me to 1.

Again, thanks to the ones who helped me out, and to all who contribute
to the wonderful amount of expertise on this list.

Paul


Original post:

Hello all,

System: Solaris 10 6/06 (Sparc), fully patched.

I need to transfer all our homedirectories with lots of small files to a
new volume (ST6140 RAID 5, 1.3TB). Default number of bytes per inode
results in way too few inodes.

So I want to lower the nbpi with the -i option of newfs. Using 8192 or
any lower number for nbpi does not have any effect on the number of
inodes in the resulting FS, as to see in the output of mkfs -m
/dev/rdsk/cXtXdXsX... What is going wrong?

Below, first the result of newfs with no options (default nbpi 1048576
for FS greater than 1TB, according to manpage), second newfs -i 8192 -
both produce nbpi of 997778 !

Thanks in advance for assistance.

Paul

---------------------------------------------------------------
# newfs /dev/rdsk/c4t600A0B800026AD600000075945ADB77Ed0s0

newfs: /dev/rdsk/c4t600A0B800026AD600000075945ADB77Ed0s0 last mounted as
/mnt
newfs: construct a new file system
/dev/rdsk/c4t600A0B800026AD600000075945ADB77Ed0s0: (y/n)? y
Warning: 896 sector(s) in last cylinder unallocated
/dev/rdsk/c4t600A0B800026AD600000075945ADB77Ed0s0: 2926896256
sectors in 476383 cylinders of 48 tracks, 128 sectors
1429148.5MB in 3332 cyl groups (143 c/g, 429.00MB/g, 448 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
32, 878752, 1757472, 2636192, 3514912, 4393632, 5272352, 6151072, 7029792,
7908512,
Initializing cylinder groups:
..................................................................
super-block backups for last 10 cylinder groups at:
2918690080, 2919568800, 2920447520, 2921326240, 2922204960, 2923083680,
2923954208, 2924832928, 2925711648, 2926590368

# mkfs -m /dev/rdsk/c4t600A0B800026AD600000075945ADB77Ed0s0

mkfs -F ufs -o
nsect=128,ntrack=48,bsize=8192,fragsize=8192,cgsize=143,free=1,rps=1,nbpi=997778,opt=t,apc=0,gap=0,nrpos=1,maxcontig=128,mtb=y
/dev/rdsk/c4t600A0B800026AD600000075945ADB77Ed0s0 2926896256

---------------------------------------------------------------

# newfs -i 8192 /dev/rdsk/c4t600A0B800026AD600000075945ADB77Ed0s0

newfs: construct a new file system
/dev/rdsk/c4t600A0B800026AD600000075945ADB77Ed0s0: (y/n)? y
Warning: 896 sector(s) in last cylinder unallocated
/dev/rdsk/c4t600A0B800026AD600000075945ADB77Ed0s0: 2926896256
sectors in 476383 cylinders of 48 tracks, 128 sectors
1429148.5MB in 3332 cyl groups (143 c/g, 429.00MB/g, 448 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
32, 878752, 1757472, 2636192, 3514912, 4393632, 5272352, 6151072, 7029792,
7908512,
Initializing cylinder groups:
..................................................................
super-block backups for last 10 cylinder groups at:
2918690080, 2919568800, 2920447520, 2921326240, 2922204960, 2923083680,
2923954208, 2924832928, 2925711648, 2926590368

# mkfs -m /dev/rdsk/c4t600A0B800026AD600000075945ADB77Ed0s0

mkfs -F ufs -o
nsect=128,ntrack=48,bsize=8192,fragsize=8192,cgsize=143,free=1,rps=1,nbpi=997778,opt=t,apc=0,gap=0,nrpos=1,maxcontig=128,mtb=y
/dev/rdsk/c4t600A0B800026AD600000075945ADB77Ed0s0 2926896256

--
Paul Coray
Administrator Server und Netzwerk

Oeffentliche Bibliothek der Universitaet Basel
EDV-Abteilung
Schoenbeinstrasse 18-20
CH-4056 Basel

Tel: +41 61 267 05 13
Fax: +41 61 267 31 03

mailto:paul.coray@xxxxxxxxx
http://www.ub.unibas.ch
_______________________________________________
sunmanagers mailing list
sunmanagers@xxxxxxxxxxxxxxx
http://www.sunmanagers.org/mailman/listinfo/sunmanagers



Relevant Pages

  • newfs -i [nbpi] on large FS does not change number of inodes
    ... So I want to lower the nbpi with the -i option of newfs. ... sectors in 476383 cylinders of 48 tracks, ... super-block backups for last 10 cylinder groups at: ...
    (SunManagers)
  • Seeing only half of a 1TB USB drive.
    ... I bought a 1 TB external hard drive on a USB connection. ... I've connected this to my Blade 2000, but when I try to run newfs, I only get a file system of 439787.2MB. ... There appears to be two slices which I could run newfs on - slice 0 and slice 2. ... super-block backups for last 10 cylinder groups at: ...
    (comp.unix.solaris)
  • Re: Determining inode density of a file system ?
    ... >Is there a way to show the parameters that were selected when a file system ... I always try and save the output from "newfs -v" just ... The partition was divided into a number of cylinder groups and the OS ...
    (comp.unix.solaris)