On Tue 24 Apr 2018 12:33:34 AM CEST, Eric Blake wrote: > Although off_t permits up to 63 bits (8EB) of file offsets, in > practice, we're going to hit other limits first. Document some > of those limits in the qcow2 spec, and how choice of cluster size > can influence some of the limits. > > While at it, notice that since we cannot map any virtual cluster > to any address higher than 64 PB (56 bits) (due to the current L1/L2 > field encoding stopping at bit 55), it makes little sense to require > the refcount table to access host offsets beyond that point. Mark > the upper bits of the refcount table entries as reserved to match > the L1/L2 table, with no ill effects, since it is unlikely that there > are any existing images larger than 64PB in the first place, and thus > all existing images already have those bits as 0. If 64PB proves to > be too small in the future, we could enlarge all three uses of bit > 55 into the reserved bits at that time. (For reference, ext4 with > 4k blocks caps files at 16PB.) > > However, there is one limit that reserved bits don't help with: for > compressed clusters, the L2 layout requires an ever-smaller maximum > host offset as cluster size gets larger, down to a 512 TB maximum > with 2M clusters. > > Signed-off-by: Eric Blake <ebl...@redhat.com>
Reviewed-by: Alberto Garcia <be...@igalia.com> Berto