I think there is a limitation that how many disk could a SLES 9 machine handle. (32bit). I cannot find the number via Google..
My question: Can somebody tell with reference, what is this number?
I think there is a limitation that how many disk could a SLES 9 machine handle. (32bit). I cannot find the number via Google..
My question: Can somebody tell with reference, what is this number?
There's no limit to my knowledge and if the limit exists you're not likely to meet it. After rotating through all sd[a-z] the drives will be labeled sdaa through sdazz and on and on. So if there's a limit it's the number of drives that scheme can label inside the maximum file path length (UUIDs might change that I'm not sure).
That only covers IDE, SCSI, SATA and similar. I believe USB and others will have different limits.
4 PiB.
SLES 9 is about a decade old now, so it's not going to support filesystems as big as modern Linux distros can, or as many volumes as modern kernels can. The newest supported kernel in SLES 9 is 2.6.5.
You're also artificially limiting yourself by using a 32-bit OS: bigger filesystems require more RAM to manage. A conservative rule of thumb is 1 GiB per TiB. Since 32-bit Linux is limited to 4 GiB normally[1], you're pushing it to use a 32-bit Linux to manage more than 4 TiB. I've gone as far as 16 TiB and gotten away with it[2], but I am not actually recommending that. A common horror story is for an fsck
after a power outage to fail to complete due to lack of RAM, thus preventing the filesystem from being remounted.
The most capable filesystem that comes built into SLES 9 is JFS. Its volume size limit is up in the petabytes, thus effectively unlimited.
SLES 9 also supports ReiserFS, which has a 16 TiB volume size limit. This is a good match for your 32-bit system, for the RAM limit reasons above.
There's also a limit on the number of /dev/sd
device paths in the Linux kernel. It's changed a few times over Linux's lifetime, in common power-of-2 values. The limit for SLES 9 is probably 256 volumes, based of the documented limit for RHEL 3 and 4, which are roughly contemporaneous with SLES 9.[3]
The storage limit is the volume size limit times the maximum number of volumes. My 4 PiB number above is based on a 16 TiB max volume size × 256 volumes.
That's an awful lot of storage, no matter how you arrange it. The actual number ends up not being terribly important for practical reasons. Simply connecting enough disks to a single computer to reach this guessed-at limit is going to be quite a challenge, especially given that the common disk controllers compatible with kernel 2.6.5 won't support modern Advanced Format disks, so you probably can't use disks bigger than 2 TB.
That means you need thousands of physical disks to hit this 4 PiB limit.
If you don't run into a connectivity or rack size limit first, you'll run into some other practical limit before you hit the absolute hard technical limit.
Footnotes:
PAE allows up to 64 GiB on a 32-bit system, but I don't know that the kernel can use any of the space beyond 4 GiB for the buffer cache.
No fsck
implementation I'm aware of can make use of PAE, either, since it takes a lot of special trickery in user-space applications to do so. An exceedingly small number of programs ever made real use of PAE, in the years past when it was a viable solution to the RAM limit problem. (Today, you'd just use a 64-bit OS.)
The need for RAM is a function of the number of files and directories on the disk, and the number of simultaneous accesses it is serving. The "1 GiB per TiB rule" is thus a kind of proxy rule.
I believe the only reason I got away with 16 TiB on a 32-bit kernel is that these were digital video servers with few simultaneous users. Since the files were relatively few and large, an fsck
didn't have to juggle a huge number of directory or file inodes, and it didn't need to keep a lot of filesystem information in RAM to keep track of concurrent users.
A good counterexample would be an email server, which may serve thousands of simultaneous users, each one wanting access to a great many small files, scattered over thousands of directories.
Newer kernels raise the limit to 1,024, 4,096 or 8,192 volumes.
Theoretically, you can get up to /dev/sdzzz....
with 29 z
s, which is roughly 1041 volumes, but other practical limits will come into play first.