On Tue, Jun 08, 2010 at 04:43:06PM +0100, Matthew Booth wrote:
On 08/06/10 16:24, Richard W.M. Jones wrote:
> (a) I don't think Perl 'rename' function will work if the temporary
> directory is on a different filesystem from the final destination.
> You might be better off using the 'mv' shell command (possibly with
> suitable shell quoting) instead.
This is ok, because the temporary directory is explicitly created on the
export storage domain, so it won't cross a filesystem boundary. I do
this specifically to avoid an additional data copy.
+ my $root = "$mountdir/$domainuuid";
$root is the top level directory of the export storage domain. Because
it's a subdirectory of $mountdir, it's on NFS.
+ unless (defined($tmpdir)) {
+ my $nfs = Sys::VirtV2V::Target::RHEV::NFSHelper->new(sub {
+ print tempdir("v2v.XXXXXXXX", DIR => $root);
+ });
The NFS helper creates a new temporary directory will the given template
under $root, so is also on NFS. NFSHelper works with stdout, so it
prints the result.
+ my $fromchild = $nfs->{fromchild};
+ ($tmpdir) = <$fromchild>;
$tmpdir is the first line of output from the child.
+ $nfs->check_exit();
check_exit() will die() with error output if there was any error.
Right, I understand it now.
ACK.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
virt-top is 'top' for virtual machines. Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://et.redhat.com/~rjones/virt-top