[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: |
Libaiqing |
Subject: |
Re: [Qemu-devel] [RFC PATCH v3 00/11] qemu-ga: fsfreeze on Windows using VSS |
Date: |
Mon, 27 May 2013 10:00:04 +0000 |
Hi,
Thank you for your advice.
When executing the command " guest-fsfreeze-thaw " within 10s,it works well.
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"}
{"return": 2}
When freezing timeout,the log of eventviewer is applied as attachment.
In vss spec,vss is thawed automatically when time is out.Is error desc
necessary?
Regards,
baiqing
> -----Original Message-----
> From: Tomoki Sekiyama [mailto:address@hidden
> Sent: Monday, May 27, 2013 3:02 PM
> To: Libaiqing; 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,
>
> 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_agen
> t.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
> >
vss-timeout-error.evtx
Description: vss-timeout-error.evtx
- Re: [Qemu-devel] [RFC PATCH v3 00/11] qemu-ga: fsfreeze on Windows using VSS, (continued)
Re: [Qemu-devel] [RFC PATCH v3 00/11] qemu-ga: fsfreeze on Windows using VSS, Libaiqing, 2013/05/27
Re: [Qemu-devel] [RFC PATCH v3 00/11] qemu-ga: fsfreeze on Windows using VSS, Libaiqing, 2013/05/30