If you don't want to care about how long you want that snapshot (assuming only 1 snapshot, otherwise it will not be enough potentially), yes (because the number of changes will never be bigger than the amount of space of your current LV). Otherwise, you don't need as much... Especially if you plan to just maintain one snapshot at all times (recreating a new one every day and destroying the previous one).
For example... this is how much it has consumed so far since yesterday...
# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mongolv mongovg owi-aos--- 149.00g
mongolv_snap265 mongovg swi-a-s--- <6.39g mongolv 83.70
So that means it consumed 83% of 6.39GB... I was expecting the rate of consumption to decrease after a couple of hours and that's exactly what's happening. Because the blocks being updated are over time less, due to being unexisting on the original LV, and therefore there are less changes to record on the snapshot.
Now, if we want to do another snapshot... for example, I would like to maintain at least 3 snapshots (3 days) just to guarantee I can roll back up to 3 days. Then I need to understand I will potentially use the above up to 3 times (but remember this number might change, depending on where the blocks are changed, although it should pretty much very close). In the example bellow I just created a new snapshot:
lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mongolv mongovg owi-aos--- 149.00g
mongolv_snap265 mongovg swi-a-s--- <6.39g mongolv 83.81
mongolv_snap266 mongovg swi-a-s--- 5.00g mongolv 0.30
We both LVs will keep recording changes from the respective "original" time those snapshots were taken. This is the little disadvantage I have spoken on the post. In comparison with filesystem snaps, the moment you take a new snapshot, it will be only the differential compared with the last snap.
This space is being consumed from the total space of the VG (Volume Group) that has both your LV for the MongoDB filesystem and the snapshots LVs:
vgdisplay mongovg | grep Size
VG Size <299.98 GiB
PE Size 4.00 MiB
Alloc PE / Size 41061 / 160.39 GiB
Free PE / Size 35733 / 139.58 GiB
Now... trying to put a bit more detail on the post... so that people understand simple stuff like, how to prepare a device for LVM, etc.
RE: Minor updates to HE-AWM and recipe for LVM based Snapshots