cache=always (or a more scary name like cache=lie to defend against
idiots)
Reads and writes are cached. Guest flushes are ignored. Useful for
dumb guests in non-critical environments.
I really don't believe that we should support a cache=lie. There are
many other obtain the same results. For instance, mount your guest
filesystem with barrier=0.
Ideally yes. However in practice I suspect this is still a useful option. Is
it even possible to disable barriers in all cases (e.g. NTFS under windows)?
In a production environment it's probably not so useful - you're generally
dealing with long lived, custom configured guests.
In a development environment the rules can be a bit different. For example if
you're testing an OS installer then you really don't want to be passing magic
mount options. If the host machine dies then you don't care about the state of
the guest because you're going to start from scratch anyway.