Ext3 File System Limits
Last week I was trying to move a 21GB MySQL backup file from one host to another. I tried rsync first but it stopped after only 17GB was transferred. Then I compressed it with gzip, rsync’d the file to the host then attempted to decompress it but it failed again around 17GB. This seemed a little too coincidental to me so I asked Google about Linux Ext3 file system limits to which it responded with some articles about block sizes and whatnot. And since the host that I was transferring the file to was a Virtuozzo Virtual Environment, I also looked into limitations associated with its’ use, especially since I couldn’t even ascertain what the block size was from inside the VE. It appeared that there was the potential for the Virtuozzo quota system to enforce a block size however that turned out not to be the case for us.
Anyway, the fix was mildly traumatic since we had to have a new hardware node built with the underlying file system formatted with a 2048 block size then moving all 5 VEs to the new system. But it went surprisingly well due in large part to the flexibility of using virtual environments.
Regardless, I wanted to note the block size available for the Ext3 file system and it’s associated limitations for myself and posterity:
| Block size | Max file size | Max file system size |
|---|---|---|
| 1KB | 16GB | 2TB |
| 2KB | 256GB | 8TB |
| 4KB | 2TB | 16TB |
| 8KB | 16TB | 32TB |


