[linux-lvm] Max logical volume size 1TB or 2TB?

Andreas Dilger adilger at turbolinux.com
Thu May 10 06:33:37 UTC 2001


Andrew Patterson writes:
> I patched LVM 0.9.1_beta7 lvm.h source a little to get past the system
> defined limits.
> 
> These are the changes I made:
> 
> #define LVM_LV_SIZE_MAX(a)      ( ( long long) LVM_PE_T_MAX * (a)->pe_size > ( 
> long long) 1024*1024/SECTOR_SIZE*1024*1024*2 ? ( long long) 
> 1024*1024/SECTOR_SIZE*1024*1024*2 : ( long long) LVM_PE_T_MAX * (a)->pe_size)
>
> #define LVM_MAX_SIZE            ( 1024LU * 1024 / SECTOR_SIZE * 1024 * 1024*2)

I presume the originals should not have the *2 on them?

> goes to:
> 
> #define LVM_LV_SIZE_MAX(a)      ( ( long long) LVM_PE_T_MAX * (a)->pe_size > ( 
> long long) 1024*1024/SECTOR_SIZE*1024*1024*2 ? ( long long) 
> 1024*1024/SECTOR_SIZE*1024*1024*2 : ( long long) LVM_PE_T_MAX * (a)->pe_size)
> 
> #define LVM_MAX_SIZE            ( 1024LU * 1024 / SECTOR_SIZE * 1024 * 1024*2)

You probably want to go to something like (i.e. slightly less than 2GB):

#define LVM_LV_SIZE_MAX(a)      ( ( long long) LVM_PE_T_MAX * (a)->pe_size > ( 
long long) 1024*1024/SECTOR_SIZE*1024*2047 ? ( long long) 
1024*1024/SECTOR_SIZE*1024*2047 : ( long long) LVM_PE_T_MAX * (a)->pe_size)

#define LVM_MAX_SIZE            ( 1024LU * 1024 / SECTOR_SIZE * 1024 * 2047)

The reason is that since we are talking about 512-byte sectors here, your
original values are exactly 2^32, so this is probably overflowing a 32-bit
value somewhere.  Since the Linux block layer limits you to 2TB anyways,
it is not a real issue for the LVM limit to be slightly less than 2TB.
How much less depends on how many more disks you have...  Probably any
value <= 2^32-1 should be OK.

Cheers, Andreas
-- 
Andreas Dilger  \ "If a man ate a pound of pasta and a pound of antipasto,
                 \  would they cancel out, leaving him still hungry?"
http://www-mddsp.enel.ucalgary.ca/People/adilger/               -- Dogbert



More information about the linux-lvm mailing list