In general if this document refers to a limitation of (for instance) 2 Gbyte, “2 Gbyte - 1 byte” (1,073,741,823 bytes) is meant. To improve readability, this has been abbreviated to “2 Gbyte”.
The symbol “~” is used to denote “approximately”
Maximum size of a single file and a filesystem
This also applies to Solaris x86, but there may be some issues with disk drives larger than 30 Gbyte. This is due to hardware limitations with some PC motherboard/disk configurations.
*A single file in Solaris 2.6 through Solaris 9 (U3) is limited to approximately 1012 Gbyte because the file must fit inside the 1 Tbyte filesystem.
The filesystem is nominally 1 Tbyte, but in fact, due to the overhead in such a large filesystem, the largest single file ends up being about 1012 Gbyte. (part of this is a bug, but even if bug-free, a single file can't be 1 Tbyte due to the filesystem overhead).
The overhead in the filesystem includes amongst other things, items such as superblock backups and inode tables.
The example given here is using 1024 Kbyte (1 Mbyte) for the number of bytes per inode (nbpi) within the UFS filesystem.
If nbpi is set to a lower value, more filesystem space will be allocated to inode tables and less will be available to store data.
With nbpi=8 Kbyte, the maximum single file size would be smaller than 1012 Gbyte.
The file in this example cannot use any of the minfree area set up on the filesystem (which is setup for “root only” use).
On a 1 Tbyte filesystem minfree is set to 1% which translates to about 10 Gbyte.
*
A safe assumption here would be that the limit on the size of a single file is the size of the filesystem,minus 1% to 2% overhead.
*
In Solaris 2.6, the swap and tmpfs filesystems are still limited to 2 Gbyte. This is not the total amount of swap, it is a limit per swap slice or per swap file. A swap slice or file may be defined as larger than 2 Gbyte, but any space above 2 Gbyte in that slice or file will not be accessible and the size of the slice or file will be reported by the swap command as 2 Gbyte. There can be multiple swap slices or files totaling more than 2 Gbyte. Any later release of Solaris running 32 bit kernel has the same limitation. Later releases of Solaris running a 64 bit kernel do not have this limitation. See the “USAGE” paragraph in the Solaris 8 swap(1M) manual page for the new limits.
*
Solaris 9 Update 4 introduced multiterabyte UFS. The maximum individual file size is still the same as before (~1 Tbyte ), as increasing it would require radical on-disk format changes. The total filesystem size can now be up to 16 Tbyte. The -T option is specified to the newfs command to create such a filesystem. See the newfs(1M) manpage for additional information. There is also a limit of 1 million files per Tbyte, for instance. A 4 Tbyte UFS filesystem would have a 4 million files limit). This is done to keep fsck times reasonable (even when logging is enabled).
*
Multiterabyte UFS functionality can also be added to earlier releases of Solaris 9 by installing the UFS patch 113454-09 or later. See the Special Install Instructions in the patch README for a list of additional patches required to get the full Multiterabyte functionality.
*
The maximum single file size in a multiterabyte filesystem, which is greater than 1 Tbyte is 1 Tbyte minus 500 Mbyte or 1023.5 Gbyte As a rule of thumb this should be taken as 1023 Gbyte.
*
A multiterabyte UFS filesystem is not bootable (This means the root filesystem cannot be a multiterabyte filesystem)
*
A multiterabyte UFS filesystem is not mountable in any version of 32bit Solaris kernel
Limitations in combination with the OBP.
Excluding the multiterabyte root filesystem limitation detailed above, the root filesystem has limits in Solaris[TM] 2.x that are not imposed on any other filesystems. This limiting factor is a combination of two things, the OS release and the OBP (Open Boot Prom) level.
To establish the OS release, examine the /etc/release file
To establish the OBP level, use the command prtconf -V (capital “V”).
Here is a list of the various possible configurations.
“No limit” means that the root filesystem size is not specifically limited; the usual filesystem size limits for that OS release still apply.
A root filesystem that is too large will not cause a panic, but instead will stop the machine from booting at all.
This is not configurable/tunable. To use a root filesystem larger than the limits detailed above you need a newer boot PROM and either Solaris 2.6 or Solaris 2.5.1 with the latest level of 103640 (-08) or newer.
Solaris 10 & ZFS
Limitations of a single file and filesystem.
These limitations will change when ZFS is integrated into Solaris 10.
Some more info about this can be found on the following website:
The max file size in unix is determined by the ulimit option. The ulimit stands for user limit which specifies the largest file that can be created by the user.
$ulimit
2097152
means that the max size of a file that can be created is 2097152 bytes or 2048 KB.
We can also reset the ulimit value
$ulimit=1 specifies that the user limit is now 512 bytes(1 refers to 512 block) and is only active for this session.
A normal user can decrease the ulimit value but only the superuser(root) has the permissions to increase this value.
Hi,
I've compiled a 64-bit version of ClamAV 0.98.7 on my Solaris 10 SPARC server. I have a selection of files all containing the eicar signature but clamd is only picking up the signature in the files <2GB.
I have the following set in clamd.conf, to remove file size checking:
MaxScanSize 0... (4 Replies)
Hello All,
I am working on an issue, where I need to check the max file size of a file. If the file size exceeds 2 GB, then I need to generate an error message. Since the file system does not allow a file to be created larger than 2 GB, I am planning to use named pipes & AWK file to acheive my... (6 Replies)
Hi Gurus,
I am unable to send a file which size is more than 10mb through the "sendmail" command in unix.
I searched from internet and followed the path specified over there "/etc/mail/sendmail.cf" and too "/etc/mail/main.cf" but found in those files below lines.
# maximum message size... (1 Reply)
Hi All,
We are running HP rp7400 box with hpux 11iv1.
Recently, we changed 3 kernel parameters
a) msgseg from 32560 to 32767
b) msgmnb from 65536 to 65535
c) msgssz from 128 to 256
Then we noticed that all application debug file size increase upto 2GB then it stops. So far we did not... (1 Reply)
Does anyone know a way to determine the maximum filesize on a file system on Solaris, HP-UX, AIX, Linux, and OSF1 using the command line?
TIA (2 Replies)
We have Sun OS 5.9 we are doing a backup process (ProC program) that uses the function...
fprintf(fp,"%s;%s;%s;%s;%s;%ld;%ld;%ld;%ld;%s;%s;%s;%d;%s;%s;%s;%ld;%s;%s;%s;%ld;%ld;%s;%ld;%s;%ld;%s;%s;%c%c",x_contrno, x_subno, x_b_subno,x_transdate,x_last_traffic_date,BillAmt_s, x_billamount_int,... (10 Replies)
My HP-UX 11.0 system is supporting an Oracle database. I have found a number of references on the Net to the "Max I/O size" in relation to setting Oracle parameters.
How can I tell what my max i/o size is? I originally made the assumption that it was referring to my stripe size but now I think... (1 Reply)
Hello all!
I have found a new home, this place is great!
I have been searching for days to find a way to set a max size for a log.txt file using a cron job exicuting a shell script. Is it possible for a script to remove older entries in a log file to maintain a limited file size? If so,... (5 Replies)