Here is an example. We've been using hardware snapshots with the 3PAR for few years now (don't remember the model). We don't use vvol's. For that particular environment when we have the 3par (a source) we use a "cheap" target storage connected to an old HP pizza through SAS. The HP server acts as Veeam proxy/repo and connected to the 3par through FC (otherwise HW snapshots won't work
). You can also use iSCSI. First Veeam creates a VMware snapshot and 10-20 seconds after removes the snapshot, so you have a very little delta to commit back. Then it pools the data from the 3par directly trough FC/iSCSI. In the end it removes a hardware snapshot and this operation is not so heavy as the native hypervisor snapshot removal. This processes uses Direct SAN method and does not involve HOTADD or NBD.
We have another similar environment which has more powerful "expensive" target storage, which also acts as a veeam proxy/repo (all-in-one). That target storage runs Microsoft's Storage Spaces and connected to the source server (VNX) through FC as well.
When we restore VMs the traffic also goes trough FC or iSCSI network, which is nice.
So hardware snapshots solve the issue with the long and impacting performance snapshots. The thing that you still need to keep in mind (just a friendly advise) and we see it all the time, countless examples is the - latency issues. I'll give you a little example. Let's say we have the 3par as the source and we do NOT use hardware snapshots. Veeam proxy runs on a VM and transfers the data using HotAdd method or though LAN (NBD). During the consolidation process the latency of a particular LUN as well as the entire disk pool is sucks (sometimes we see funny figures 200-300ms
Now we get a new FC or iSCSI storage with tons of drives to act as Veeam repository. That storage has 8-10Gb HBAs. We enable hardware snapshots and solve "long consolidation" issue. However you may get into a different trouble. 3par may have 8/16Gb HBAs and our target storage 8/16Gb or higher. So we may saturate the source storage (3par) too much (even using hardware snapshots) because the connection to the target storage is fast and the target storage might be faster than the source. So the simplest thing to do to overcome this issue is to set/adjust latency control and number of concurrent tasks in Veeam.
Hope this make sense.