It's been done in PVE v1, but I haven't seen any patches for more recent releases or any alternative solutions, so here is a patch to append the VM hostname to the output files from vzdump and also uses ISO8601 datetime format. I hope it is of use to others too and something like this can be integrated into the core release.
Code:
# diff -U0 /usr/share/perl5/PVE/VZDump.pm{-orig,}
--- VZDump.pm-orig 2014-04-26 17:36:46.000000000 +1000
+++ VZDump.pm 2014-07-06 23:51:37.000000000 +1000
@@ -715,2 +714,0 @@
- my $lt = localtime();
-
@@ -718,3 +716,10 @@
- my $basename = sprintf "${bkname}-%04d_%02d_%02d-%02d_%02d_%02d",
- $lt->year + 1900, $lt->mon + 1, $lt->mday,
- $lt->hour, $lt->min, $lt->sec;
+
+ if ($opts->{appendhostname}) {
+ # force loading of plugin->prepare to inherit hostname from VZDump/OpenVZ.pm and VZDump/QemuServer.pm
+ $plugin->prepare ($task, $vmid, qw(snapshot));
+
+ # append hostname to ${bkname}
+ $bkname = "vzdump-$vmtype-$vmid-$task->{hostname}";
+ }
+
+ my $basename = "${bkname}-" . strftime("%Y%m%dT%H%M%S%z", CORE::localtime());
@@ -1194,0 +1200,6 @@
+ },
+ appendhostname => {
+ type => 'boolean',
+ description => "Append VM hostname after the VMID.",
+ optional => 1,
+ default => 0,