Erik Trimble
2006-Mar-17 06:45 UTC
[zfs-discuss] > 1TB filesystems with ZFS and 32-bit Solaris?
Solaris in 32-bit mode has a 1TB device limit. UFS filesystems in 32-bit mode also have a 1TB limit, even if using a logical volume manager to span smaller than 1TB devices. So, what kind of limit does ZFS have when running under 32-bit Solaris? -- Erik Trimble Java System Support Mailstop: usca14-102 Phone: x17195 Santa Clara, CA
Jeff Bonwick
2006-Mar-17 07:12 UTC
[zfs-discuss] > 1TB filesystems with ZFS and 32-bit Solaris?
> Solaris in 32-bit mode has a 1TB device limit. UFS filesystems in 32-bit > mode also have a 1TB limit, even if using a logical volume manager to > span smaller than 1TB devices. > > So, what kind of limit does ZFS have when running under 32-bit Solaris?It''s 64-bit, as long as your application is "large-file aware". See the largefile(5) and lfcompile(5) man pages for details. Note: internally, ZFS supports full 64-bit offsets. POSIX, however, defines offset_t to be signed, so the actual limit is 63-bit (2^63 - 1). $ mkfile -n $(((1 << 63) - 1)) huge $ ls -l huge -rw------- 1 bonwick staff 9223372036854775807 Mar 16 23:07 huge Or perhaps more helpfully, using -h: $ ls -lh huge -rw------- 1 bonwick staff 8.0E Mar 16 23:07 huge Jeff
Erik Trimble
2006-Mar-17 08:53 UTC
[zfs-discuss] > 1TB filesystems with ZFS and 32-bit Solaris?
So, I''m inferring that filesystem size is also 2^64 blocks (or is it 2^128 blocks) maximum, even while on a normally 32-bit system? Erik Trimble Java System Support Mailstop: usca14-102 Phone: x17195 Santa Clara, CA Jeff Bonwick wrote:>>Solaris in 32-bit mode has a 1TB device limit. UFS filesystems in 32-bit >>mode also have a 1TB limit, even if using a logical volume manager to >>span smaller than 1TB devices. >> >>So, what kind of limit does ZFS have when running under 32-bit Solaris? >> >> > >It''s 64-bit, as long as your application is "large-file aware". >See the largefile(5) and lfcompile(5) man pages for details. > >Note: internally, ZFS supports full 64-bit offsets. POSIX, however, >defines offset_t to be signed, so the actual limit is 63-bit (2^63 - 1). > > $ mkfile -n $(((1 << 63) - 1)) huge > $ ls -l huge > -rw------- 1 bonwick staff 9223372036854775807 Mar 16 23:07 huge > >Or perhaps more helpfully, using -h: > > $ ls -lh huge > -rw------- 1 bonwick staff 8.0E Mar 16 23:07 huge > >Jeff > > >