qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC PATCH v3 00/11] qemu-ga: fsfreeze on Windows using


From: Tomoki Sekiyama
Subject: Re: [Qemu-devel] [RFC PATCH v3 00/11] qemu-ga: fsfreeze on Windows using VSS
Date: Mon, 27 May 2013 07:01:48 +0000

Hi,

Thank you for testing the patch.

>     {"error": {"class": "GenericError", "desc": "DoSnapshotSet. (Error: 
> 8004230f) "}}

This is VSS_E_UNEXPECTED_PROVIDER_ERROR. I can't say what happens from this, but
Detailed error log would be logged in Event Viewer.

Could you send me the log in Event Viewer corresponding to this code for 
further investigation please?

>     {"error": {"class": "GenericError", "desc": "DoSnapshotSet. (Error: 
> 80042314) "}}

This is time out error. Windows can only hold writes for snapshot only for 10 
seconds.
In other words, you need to issue guest-fsfeeze-thaw in 10 seconds after 
guest-fsfreeze-freeze,
otherwise it fails to keep the consistency. (If you need more time, you could 
pause the guest.)

Also in this case, Event Viewer must have more detailed reason.

(I should add more kind error messages for this case....)

>  Issue:
>    1 Extcuting the command "guest-fsfreeze-thaw" failed,but the fs status is 
> changed to thawed.Is this ok?

It is actually thawed in this case. Since Windows cannot hold I/O more than 10 
seconds, it is
automatically thawed after that time.

>    2 Extcuting the command "guest-fsfreeze-thaw" twice,the desc is different 
> each time.

As I mentioned above, it could be because of duration of fsfreeze.

Thanks,
Tomoki Sekiyama
________________________________________
From: Libaiqing address@hidden
Sent: Monday, May 27, 2013 12:13 AM
To: Tomoki Sekiyama; address@hidden
Cc: address@hidden; address@hidden; address@hidden; address@hidden; Seiji 
Aguchi; address@hidden; Haofeng
Subject: RE: [Qemu-devel] [RFC PATCH v3 00/11] qemu-ga: fsfreeze on Windows     
using VSS

Hi,
  I tried the patch v3,with the following config.

  Guest os : win7 32bit professional
  Host os : fedora 17
  Command:
     qemu-kvm -enable-kvm -name win7 -M pc-0.15 -m 1024 -smp 2 -boot c  -device 
virtio-serial  -drive 
file=/home/libaiqing/vss/win7.img,if=virtio,index=0,format=qcow2 - -monitor 
stdio -vga qxl  -vnc :1 -chardev
     
socket,id=charchannel0,path=/var/lib/libvirt/qemu/wahaha1_requester,server,nowait
 -device 
virtserialport,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0
  Output:
     address@hidden ~]# socat stdio,ignoreeof 
unix-connect:/var/lib/libvirt/qemu/wahaha1_requester
     {"execute":"guest-fsfreeze-freeze"}
     {"return": 2}
     {"execute":"guest-fsfreeze-status"}
     {"return": "frozen"}
     {"execute":"guest-fsfreeze-thaw"}
     {"error": {"class": "GenericError", "desc": "DoSnapshotSet. (Error: 
8004230f) "}}
     {"execute":"guest-fsfreeze-status"}
     {"return": "thawed"}
     {"execute":"guest-fsfreeze-freeze"}
     {"return": 2}
     {"execute":"guest-fsfreeze-status"}
     {"return": "frozen"}
     {"execute":"guest-fsfreeze-thaw"}
     {"error": {"class": "GenericError", "desc": "DoSnapshotSet. (Error: 
80042314) "}}
     {"execute":"guest-fsfreeze-status"}
     {"return": "thawed"}

  Issue:
    1 Extcuting the command "guest-fsfreeze-thaw" failed,but the fs status is 
changed to thawed.Is this ok?
    2 Extcuting the command "guest-fsfreeze-thaw" twice,the desc is different 
each time.

  Could you give me some advise to debug this problem ? I can provide more 
information if need.

Regards,
baiqing
> -----Original Message-----
> From: address@hidden
> [mailto:address@hidden On Behalf Of
> Tomoki Sekiyama
> Sent: Tuesday, May 21, 2013 11:34 PM
> To: address@hidden
> Cc: address@hidden; address@hidden;
> address@hidden; address@hidden; address@hidden;
> address@hidden
> Subject: [Qemu-devel] [RFC PATCH v3 00/11] qemu-ga: fsfreeze on Windows
> using VSS
>
> Hi,
>
> This patch series adds fsfreeze support for Windows qemu-guest-agent.
>
> changes from v2:
>  - [06/11] Fix errors in Windows 7, reported by Li Baiqing
>            (see below for details).
>
> changes from v1:
>  - Fix out-tree build by stop using recursive Makefile
>  - Added script to extract VSS SDK headers on POSIX systems using msitools
>    (thanks Paolo)
>  - Remove some unnecessary header files
>
> v2: http://lists.gnu.org/archive/html/qemu-devel/2013-04/msg02518.html
>
>
> * Description
>   In Windows, VSS (Volume Shadow Copy Service) provides a facility to
>   quiesce filesystems and applications before disk snapshots are taken.
>   This patch series implements "fsfreeze" command of qemu-ga using VSS.
>
>
> * How to build & run qemu-ga with VSS support
>
>  - Download Microsoft VSS SDK from:
>    http://www.microsoft.com/en-us/download/details.aspx?id=23490
>
>  - Setup the SDK
>    scripts/extract-vsssdk-headers setup.exe (on POSIX-systems)
>
>  - Specify installed SDK directory to configure option as:
>    ./configure -with-vss-sdk="path/to/VSS SDK"
> --cross-prefix=i686-w64-mingw32-
>
>  - make qemu-ga.exe
>
>  - Install qemu-ga.exe, qga/vss-win32-provider/qga-provider.{dll,tlb}, and
>    the other required mingw libraries into the same directory in guests
>
>  - Run `qemu-ga.exe -s install' and `net start qemu-ga' in the guests
>
>
> * About errors in Windows 7 with patch v2
>   VSS requires to write to snapshot volumes just before making them read-only
>   at final commit phase. This feature is called `auto-recovery'
>   (See
> http://msdn.microsoft.com/en-us/library/windows/desktop/aa384651(v=vs.85)
> .aspx#base.vssgloss_auto_recoved_shadow_copy for details).
>
>   Since qemu and libvirt don't have feature to handle writable snapshots,
>   this patchset just disables auto-recovery by specifying
>   VSS_VOLSNAP_ATTR_NO_AUTORECOVERY flag to SetContext.
>   Unfortunately, this flag seems unsupported in Windows 7 or earlier.
>   It tries to look up the snapshot volumes to write and fails in
>   VSS_E_OBJECT_NOT_FOUND.
>
>   For fundamental resolution we need a framework for guests to query
> snapshots
>   and to mount them as writable snapshots, but we just ignore the error in
>   this patchset.
>
> Any feedback are appliciated.
>
> ---
> Tomoki Sekiyama (11):
>       configure: Support configuring c++ compiler
>       Fix errors and warnings while compiling with c++ compilier
>       Add a script to extract VSS SDK headers on POSIX system
>       qemu-ga: Add an configure option to specify path to Windows VSS SDK
>       qemu-ga: Add Windows VSS provider to quiesce applications on fsfreeze
>       qemu-ga: Add Windows VSS requester to quisce applications and
> filesystems
>       qemu-ga: call Windows VSS requester in fsfreeze command handler
>       qemu-ga: install Windows VSS provider on `qemu-ga -s install'
>       qemu-ga: Add VSS provider .tlb file in the repository
>       QMP/qemu-ga-client: make timeout longer for guest-fsfreeze-freeze
> command
>       QMP/qmp.py: set locale for exceptions to display non-ascii messages
> correctly
>
>
>  .gitignore                              |    1
>  Makefile                                |    3
>  Makefile.objs                           |    2
>  QMP/qemu-ga-client                      |    4
>  QMP/qmp.py                              |    4
>  configure                               |   59 ++++
>  hmp.c                                   |    2
>  hw/pci/pci.c                            |    2
>  qga/Makefile.objs                       |    7
>  qga/commands-win32.c                    |   74 ++++-
>  qga/main.c                              |   41 +++
>  qga/vss-win32-provider.h                |   26 ++
>  qga/vss-win32-provider/Makefile.objs    |   25 ++
>  qga/vss-win32-provider/install.cpp      |  494
> +++++++++++++++++++++++++++++++
>  qga/vss-win32-provider/provider.cpp     |  474
> ++++++++++++++++++++++++++++++
>  qga/vss-win32-provider/qga-provider.def |   10 +
>  qga/vss-win32-provider/qga-provider.idl |   20 +
>  qga/vss-win32-provider/qga-provider.tlb |  Bin
>  qga/vss-win32-requester.cpp             |  404
> +++++++++++++++++++++++++
>  qga/vss-win32-requester.h               |   31 ++
>  qga/vss-win32.h                         |   85 +++++
>  rules.mak                               |    9 +
>  scripts/extract-vsssdk-headers          |   25 ++
>  scripts/qapi.py                         |    9 +
>  24 files changed, 1796 insertions(+), 15 deletions(-)
>  create mode 100644 qga/vss-win32-provider.h
>  create mode 100644 qga/vss-win32-provider/Makefile.objs
>  create mode 100644 qga/vss-win32-provider/install.cpp
>  create mode 100644 qga/vss-win32-provider/provider.cpp
>  create mode 100644 qga/vss-win32-provider/qga-provider.def
>  create mode 100644 qga/vss-win32-provider/qga-provider.idl
>  create mode 100644 qga/vss-win32-provider/qga-provider.tlb
>  create mode 100644 qga/vss-win32-requester.cpp
>  create mode 100644 qga/vss-win32-requester.h
>  create mode 100644 qga/vss-win32.h
>  create mode 100755 scripts/extract-vsssdk-headers
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]