On Mon, Apr 19, 2010 at 10:17:07PM +0800, Wilkinson, Alex wrote:> The aforementioned article says that libguestfs supports VMware's > VMDKs.This is partly true. We rely on qemu's support for VMDK which is rather sketchy. In particular, qemu cannot handle some VMDKs from ESX 4.0. However ...> So if these VMDKs live on a vmfs on an ESX server, what do > you recomend as the best approach to access them via libguestfs ? > Would it be best to mount the vmfs over nfs (i.e. to a linux box > that supports libguestfs) ?Best thing is to access the flat disk image, which ESX [all versions] makes available to you as a pseudo-file called <vm>-flat.vmdk. Despite the ".vmdk" extension, it's really just a raw disk image which libguestfs or any other program will have no problems with. I can't quite remember now if this is supported from NFS, but it's definitely supported if you ssh into the ESX storage (or use sshfs). Don't try to edit files if the virtual machine is running. Since there is no way for libguestfs to know if a remote VMWare VM is running, this is doubly important when modifying VMWare images. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones New in Fedora 11: Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 70 libraries supprt'd http://fedoraproject.org/wiki/MinGW http://www.annexia.org/fedora_mingw
On 04/19/2010 11:12 PM, Richard W.M. Jones wrote:> On Mon, Apr 19, 2010 at 10:17:07PM +0800, Wilkinson, Alex wrote: > >> The aforementioned article says that libguestfs supports VMware's >> VMDKs. >> > This is partly true. We rely on qemu's support for VMDK which is > rather sketchy. In particular, qemu cannot handle some VMDKs from ESX > 4.0. However ... > > >> So if these VMDKs live on a vmfs on an ESX server, what do >> you recomend as the best approach to access them via libguestfs ? >> Would it be best to mount the vmfs over nfs (i.e. to a linux box >> that supports libguestfs) ? >> > Best thing is to access the flat disk image, which ESX [all versions] > makes available to you as a pseudo-file called<vm>-flat.vmdk. > Despite the ".vmdk" extension, it's really just a raw disk image which > libguestfs or any other program will have no problems with. > > I can't quite remember now if this is supported from NFS, but it's > definitely supported if you ssh into the ESX storage (or use sshfs). > > Don't try to edit files if the virtual machine is running. Since > there is no way for libguestfs to know if a remote VMWare VM is > running, this is doubly important when modifying VMWare images. > > Rich. > >Hi Richard, ESX's vmdk file can be put on a remote linux nfs share. But maybe you can not share the vmfs partition to other machine by nfs service. And the format of the vmdk files of ESX and VMware Workstation is different. VMware provides tools to convert between them. If you want to know if a vm is live you can run the "vmware-cmd" which is a standard cmd line tool in ESX. And there is APIs that can do this. However, this might not be the business of libguestfs. Maybe libvirt etc should do this. Regards, Pengzhen