Skip to contentSkip to conversation

64bit inodes and IA32 apps over NFS

DISCUSSION Lukas Hejtmanek 2 participants 2 messages Aug 13, 2010 – Aug 15, 2010

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Hello,

is there any workaround for NFSv4 when exporting XFS with 64bit inodes?

IA32 apps receives:
getdents(3, 0xb7571008, 1000) =3D -1 EOVERFLOW (Value too lar=
ge for defined data type)

when compiling on x86_64, I got not error.

=46rom the XFS man page:
By default, with 32bit inodes, XFS places inodes only in the first 1TB = of
a disk. If you have a disk with 100TB, all inodes will be stuck in the = first
TB. This can lead to strange things like "disk full" when you still hav= e
plenty space free, but there's no more place in the first TB to create = a new
inode. Also, performance sucks.

To come around this, use the inode64 mount options for filesystems >1TB= =2E
Inodes will then be placed in the location where their data is, minimiz= ing
disk seeks.

Beware that some old programs might have problems reading 64bit inodes, especially over NFS.

So, is there any workaround in NFS for IA32 apps?

--=20
Luk=E1=B9 Hejtm=E1nek

#1 lore raw
Quoted 20 lines · Lukas Hejtmanek

Hello,

is there any workaround for NFSv4 when exporting XFS with 64bit inodes?

IA32 apps receives:
getdents(3, 0xb7571008, 1000) = -1 EOVERFLOW (Value too large for defined data type)

when compiling on x86_64, I got not error.

From the XFS man page:
By default, with 32bit inodes, XFS places inodes only in the first 1TB of a disk. If you have a disk with 100TB, all inodes will be stuck in the first TB. This can lead to strange things like "disk full" when you still have plenty space free, but there's no more place in the first TB to create a new inode. Also, performance sucks.

To come around this, use the inode64 mount options for filesystems >1TB. Inodes will then be placed in the location where their data is, minimizing disk seeks.

Quoted 6 lines

Beware that some old programs might have problems reading 64bit inodes, especially over NFS.

So, is there any workaround in NFS for IA32 apps?

[trondmy@heimdal linux_nfs-2.6]$ less Documentation/kernel-parameters.txt

nfs.enable_ino64=
[NFS] enable 64-bit inode numbers.
If zero, the NFS client will fake up a 32-bit inode number for the readdir() and stat() syscalls instead of returning the full 64-bit number.
The default is to return 64-bit inode numbers.

Trond