[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Effect in guest of a hard read error from the host's storage ?
Not having experienced it on any of my Xen systems I’ve managed in the past, I just wanted to check what happens when the host’s storage encounters an unrecoverable read error ?
My expectation would be that the error would be passed up the chain (host’s OS, virtual disk emulator, guest OS disk driver, guest OS filesystem, guest OS program), appear as an unrecoverable error to the guest, and hence passed up to the program attempting to read the file - so really nothing different to the same error on bare metal.
Has anyone encountered this, and can confirm if that’s how Xen+Linux handles it ?
Juergen / Roger / Anthony -- any idea what would happen with either blkback or qdisk on a hard read error? (Or blktap, for that matter?)
The reason for asking is that I also use Parallels on a Mac and have this situation. Cloning the host’s drive (Carbon Copy Cloner) “does the right thing” - CCC copies the files it can and reports the ones it can’t. A couple of the ones it can’t are virtual disk files for Parallels guests.
When I try to recover what I can (and any unreadable files might not be important anyway but I don’t know which they are) using the same technique in the guest, Parallels doesn’t behave like that. It pops up a dialog to say a critical error has occurred, with two options - retry (which of course doesn’t do anything useful), or to stop the guest. So the guest OS never gets to see the error, it just gets killed. Thus meaningful recovery is impossible as the guest gets stopped without being able to tell me what file(s) is affected.
I’ve been “discussing” this with Parallels support and at the moment I’ve reached the point where they’re telling me that this is normal when things are virtualised - which is setting off the BS detector for me.
I think it probably depends on a lot of factors; it wouldn't surprise me if more consumer-grade virtual machine software, like Parallels or VirtualBox don't do the hard work of writing and testing those sorts of paths, while more enterprise-grade software might. That said, I don't think I've ever heard anyone ask the question of Xen, so it's possible that it simply hasn't been considered.
Another thing to consider is that the ability to pass the error on to the guest in a system like Parallels depends not only on the correctness of its own block datapath in the presence of errors, but also the correctness of the surrounding operating system. If the host OS doesn't handle those kinds of errors gracefully in a reliable fashion, there's nothing Parallels can really do to make up for it.
-George
|