Linux LVM - layers of abstractions

The Logical Volume Manager introduces extra layers of abstraction between the Storage Devices and FIle Systems placed on those Storage Devices:

Physical Volumes - PV
The first layer of abstraction are Physical Volumes - these are Storage Devices that are used by LVM. These Storage Devices do not to be physical - they just have to be available to the Linux Operating System.
In other words: as long the Linux sees those devices as a Block Storage Device - it can be used as a Physical Volume, also known as PVs: physical Hard Drives, iSCSI devices, SAN disks and so on, can be PVs.
You can allocate entire Storage Device as a PV or you can partition a Storage Device and use just one partition as a PV.

Volume Group - VG
The next layer of abstraction it is the Volume Group. A Volume Group is it made upon one or more Physical Volumes. You can think as a Volume Group as a pool of storage. If you want to increase the size of pool, you can simply add more PVs.
Keep in mind that you can have different types of storage in the same Volume Group if you want: for example you can have some PVs that are backed up by HDDs and other PVs that are backed up by SAN disks.

Logical Volumes - LV
The next layer of abstraction is the Logical VOlume layer. Logical Volumes are created from Volume Group. Filesystems are then created on top of the Logical Volumes.
Without LVM - you would create a filesystem on a disk partition, but with LVM - you will create a filasystem on a Logical Volume.
As long there is a free space on a Volume Group, Logical Volumes can be extended. You can also shrink Logical Volumes to reclaim unused space if you want, but typically, in practice, you'll find yourself extending Logical Volumes