How to reclaim free space/shrink qcow2 file?

Qcow2 file grows overtime; even if we delete files and snapshots. It still does not reduce the file size. The only way to that is to fill the disk with zero and then convert the disk to qcow2.

How to shrink qcow2 file (LVM Logical Volume Manager, XFS file system)?

First we need to shrink the partition, and then shrink the qcow2 file.