All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] VistA on QEMU
@ 2008-08-14  5:55 Nancy Anthracite
  2008-08-14  9:59 ` Jamie Lokier
  0 siblings, 1 reply; 3+ messages in thread
From: Nancy Anthracite @ 2008-08-14  5:55 UTC (permalink / raw)
  To: qemu-devel

I signed up for this developers list specifically to find the experts I needed 
to ask this question.  

I am the volunteer CMO of WorldVistA (www.worldvista.org).  We are a 
charitable non-profit that promotes the use of the Department of Veterans 
Affairs' VistA outside of the VA. VistA is an M based,  open source, medical 
records and hospital management system.  We have a version of it that is 
called WorldVistA EHR and all code we have added to it all carries the GPL 
version 2 or later license.  WorldVistA EHR is the only CCHIT certified open 
source medical records system to my knowledge.

Now all of this leads up to my question.  We very much like putting demos of 
VistA on QEMU machines on Linux with GT.M. That gives us a totally open 
source stack.  But I have been reluctant to recommend QEMU for a production 
system because I don't think there would be "hard writes" of the data entered 
into the M database to a hard disk on a QEMU machine, and thus if there were 
loss of power, and unpredictable amount of patient related data could be 
lost.

I wonder if I am correct in that assumption or not, and if I am, if there 
might be an option that could be invoked, as I understand can be invoked on a 
VMWare virtual machine, to actually write data to the hard disk right away.

Ultimately we would like to distribute configured, ready to use virtual 
machines for doctors to use in their offices with backup other virtual 
machines that can be placed remotely for accepting data for backup.  It would 
make the  use of VistA much easier and far more user friendly.

Any help you can give me would be much appreciated.  I promise not to hang 
around bothering you on a developers list where I don't really belong for 
long.
-- 
Nancy Anthracite, MD
Chief Medical Officer
WorldVistA
nancy@worldvista.org
301-738-2150

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] VistA on QEMU
  2008-08-14  5:55 [Qemu-devel] VistA on QEMU Nancy Anthracite
@ 2008-08-14  9:59 ` Jamie Lokier
  2008-08-14 12:11   ` Nancy Anthracite
  0 siblings, 1 reply; 3+ messages in thread
From: Jamie Lokier @ 2008-08-14  9:59 UTC (permalink / raw)
  To: nanthracite, qemu-devel

Nancy Anthracite wrote:
> Now all of this leads up to my question.  We very much like putting
> demos of VistA on QEMU machines on Linux with GT.M. That gives us a
> totally open source stack.  But I have been reluctant to recommend
> QEMU for a production system because I don't think there would be
> "hard writes" of the data entered into the M database to a hard disk
> on a QEMU machine, and thus if there were loss of power, and
> unpredictable amount of patient related data could be lost.

QEMU is able to commit "hard writes" already.

There's a couple of choices: (1) With default options, it calls the
host's fsync() or equivalent system call triggered by a chain of
events from the guest database asking to commit data.  Or (2) You can
mount the disk image with cache=off to the QEMU command line, which
uses "direct writes" - not quite the same thing.

Unfortunately, the host operating system - whether Linux or Windows -
may or may not convert fsync() calls or direct writes to "hard
writes".  It depends on the host OS version and its configuration, and
on the hardware.

If the host doesn't "hard writes", it usually does what you might call
"semi-hard" (except there are rumours some older versions of Windows
don't bother with that either).  Power loss events can result in some
data loss, but it's relatively limited in the amount of data, and over
a relatively short time interval.  Business critical databases like
banks would care, but I don't know how important this relatively
unlikely event is to you.

There are quite a few conditions to be satisfied if you need to be
_certain_ a guest database's write is translated all the way through
to a "hard write" on the host disk.  Most of them are outside QEMU's
control (and outside VMware's too.)

You should know that if the guest is Linux, you should make sure the
*guest* filesystem is setup to send "barrier" requests.  This is _not_
enabled by default for ext3 on most Linux guests.

> I wonder if I am correct in that assumption or not, and if I am, if
> there might be an option that could be invoked, as I understand can
> be invoked on a VMWare virtual machine, to actually write data to
> the hard disk right away.

VMware has a similar limitation: if the host operating system doesn't
commit data, or the disk controller (especially RAID controllers)
don't, or the disk itself doesn't (some ATA disks, not many current
ones I'd guess), or if the guest operating system doesn't send barrier
requests, then VMware can't force it to happen.

These two pages from Microsoft describe the conditions under which
"hard writes" happen for real on a Windows host.  They are about SQL
Server, but the same applies to any program which needs to store data
locally with high reliability:

http://www.microsoft.com/technet/prodtechnol/sql/2000/maintain/sqlIObasics.mspx
http://www.microsoft.com/sql/alwayson/storage-requirements.mspx

> Ultimately we would like to distribute configured, ready to use
> virtual machines for doctors to use in their offices with backup
> other virtual machines that can be placed remotely for accepting
> data for backup.  It would make the use of VistA much easier and far
> more user friendly.

Sounds good.  If you're doing remote backup anyway, is the networking
in doctors offices good enough to store the database commits remotely
when they happen, so you don't have to rely on their local Windows
installation being reliable?

-- Jamie

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] VistA on QEMU
  2008-08-14  9:59 ` Jamie Lokier
@ 2008-08-14 12:11   ` Nancy Anthracite
  0 siblings, 0 replies; 3+ messages in thread
From: Nancy Anthracite @ 2008-08-14 12:11 UTC (permalink / raw)
  To: qemu-devel

Thank you very much for your very helpful response.  I will forward this on to 
our Linux gurus later today and check into the barrier issue as I have never 
heard of that.   Also, I was not aware of the RAID problem either.

It is interesting that you mentioned banks, because that is where GT.M in its 
non-GNU versions is used - in banks - many of them very large, but I am sure 
not on virtual machines. 

Thanks so much for the wonderful work you and others are doing with QEMU.  We 
are real fans of QEMU.  ;-)

On Thursday 14 August 2008, Jamie Lokier wrote:
> Nancy Anthracite wrote:
> > Now all of this leads up to my question.  We very much like putting
> > demos of VistA on QEMU machines on Linux with GT.M. That gives us a
> > totally open source stack.  But I have been reluctant to recommend
> > QEMU for a production system because I don't think there would be
> > "hard writes" of the data entered into the M database to a hard disk
> > on a QEMU machine, and thus if there were loss of power, and
> > unpredictable amount of patient related data could be lost.
>
> QEMU is able to commit "hard writes" already.
>
> There's a couple of choices: (1) With default options, it calls the
> host's fsync() or equivalent system call triggered by a chain of
> events from the guest database asking to commit data.  Or (2) You can
> mount the disk image with cache=off to the QEMU command line, which
> uses "direct writes" - not quite the same thing.
>
> Unfortunately, the host operating system - whether Linux or Windows -
> may or may not convert fsync() calls or direct writes to "hard
> writes".  It depends on the host OS version and its configuration, and
> on the hardware.
>
> If the host doesn't "hard writes", it usually does what you might call
> "semi-hard" (except there are rumours some older versions of Windows
> don't bother with that either).  Power loss events can result in some
> data loss, but it's relatively limited in the amount of data, and over
> a relatively short time interval.  Business critical databases like
> banks would care, but I don't know how important this relatively
> unlikely event is to you.
>
> There are quite a few conditions to be satisfied if you need to be
> _certain_ a guest database's write is translated all the way through
> to a "hard write" on the host disk.  Most of them are outside QEMU's
> control (and outside VMware's too.)
>
> You should know that if the guest is Linux, you should make sure the
> *guest* filesystem is setup to send "barrier" requests.  This is _not_
> enabled by default for ext3 on most Linux guests.
>
> > I wonder if I am correct in that assumption or not, and if I am, if
> > there might be an option that could be invoked, as I understand can
> > be invoked on a VMWare virtual machine, to actually write data to
> > the hard disk right away.
>
> VMware has a similar limitation: if the host operating system doesn't
> commit data, or the disk controller (especially RAID controllers)
> don't, or the disk itself doesn't (some ATA disks, not many current
> ones I'd guess), or if the guest operating system doesn't send barrier
> requests, then VMware can't force it to happen.
>
> These two pages from Microsoft describe the conditions under which
> "hard writes" happen for real on a Windows host.  They are about SQL
> Server, but the same applies to any program which needs to store data
> locally with high reliability:
>
> http://www.microsoft.com/technet/prodtechnol/sql/2000/maintain/sqlIObasics.
>mspx http://www.microsoft.com/sql/alwayson/storage-requirements.mspx
>
> > Ultimately we would like to distribute configured, ready to use
> > virtual machines for doctors to use in their offices with backup
> > other virtual machines that can be placed remotely for accepting
> > data for backup.  It would make the use of VistA much easier and far
> > more user friendly.
>
> Sounds good.  If you're doing remote backup anyway, is the networking
> in doctors offices good enough to store the database commits remotely
> when they happen, so you don't have to rely on their local Windows
> installation being reliable?
>
> -- Jamie



-- 
Nancy Anthracite

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-08-14 12:11 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-14  5:55 [Qemu-devel] VistA on QEMU Nancy Anthracite
2008-08-14  9:59 ` Jamie Lokier
2008-08-14 12:11   ` Nancy Anthracite

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.