Infelizmente, os requisitos de armazenamento não são tão diretos:
COW snapshots are created when a size is specified. The size is allocated from space in the VG, and is the amount of space that can be used for saving COW blocks as writes occur to the origin or snapshot. The size chosen should depend upon the amount of writes that are expected; often 20% of the origin LV is enough. If COW space runs low, it can be extended with extend (shrinking is also allowed with lvreduce.) A small amount of the COW snapshot LV size is used to track COW block locations, so the full size is not available for COW data blocks. Use lvs to check how much space is used, and see --monitor to to automatically extend the size to avoid running out of space. - man lvcreate
Observe como a página do manual não menciona nenhum detalhe:
...often 20% of the origin LV is enough...A small amount of the COW snapshot LV size is used...
A conclusão que faço a partir disso é que não há uma maneira específica de calcular exatamente o tamanho do snapshot que o LV precisa para garantir que ele nunca fique sem espaço.
Essencialmente, como o instantâneo LV armazena os blocos originais antes de serem alterados, para que ele nunca fique sem espaço, ele deve ser grande o suficiente para manter a origem LV mais um pouco mais para que possa rastrear os locais dos blocos COW.