VB doesn't flush/commit? (filesystems & transactional db

Discussions related to using VirtualBox on Mac OS X hosts.
javaboyuk
Posts: 39
Joined: 26. Jun 2009, 16:18
Primary OS: MS Windows XP
VBox Version: PUEL
Guest OSses: opensolaris 2009.6

Re: VB doesn't flush/commit? (filesystems & transactional db

Post by javaboyuk »

I was just bitten by this default being off!!!
Lost 10TB of data.

Can we get this "exposed" in the gui when you create a disk, on cli for raw disks espically!!

Russel
javaboyuk
Posts: 39
Joined: 26. Jun 2009, 16:18
Primary OS: MS Windows XP
VBox Version: PUEL
Guest OSses: opensolaris 2009.6

Re: VB doesn't flush/commit? (filesystems & transactional db

Post by javaboyuk »

but was running windows 7 RC at the time :-) with a virtual sata controller, not ide.
rpmurray
Volunteer
Posts: 918
Joined: 3. Mar 2009, 00:29
Primary OS: Mac OS X other
VBox Version: PUEL
Guest OSses: Windows 7, Mac OS X (various flavors)
Location: Between Heaven and Hell

Re: VB doesn't flush/commit? (filesystems & transactional db

Post by rpmurray »

javaboyuk wrote:Lost 10TB of data.
10TB? Man, you are hosed. What kind of hardware are you running this on? I didn't even think it was possible to make a virtual machine with 10TB of data on the hard drive.
javaboyuk
Posts: 39
Joined: 26. Jun 2009, 16:18
Primary OS: MS Windows XP
VBox Version: PUEL
Guest OSses: opensolaris 2009.6

Re: VB doesn't flush/commit? (filesystems & transactional db

Post by javaboyuk »

Just a normal PC with a little cool storage array called Edge10 that
takes 5 disks (5x2TB in my case :-)) the exposed the raw disks to my OS
in this case OpenSolaris so I could run ZFS as the filesystem.

BUT VB oand and Solaris did a nasty hickup.... and the headers on the
filesystem were writtem out of order from the meta dta (which then
was currupt.....) which ZFS thinks is impossible as it does flushes........

... but need to set this on a SATA (AHCI) controller, not the
ide PIIX4 unit and don't see how to as NON of this documented.

Russel
slavitch
Posts: 11
Joined: 2. Dec 2009, 00:52
Primary OS: MS Windows XP
VBox Version: PUEL
Guest OSses: Linux

Re: VB doesn't flush/commit? (filesystems & transactional db

Post by slavitch »

This is moronic. There is a 'feature' in VirtualBox that can result in filesystem corruption? And you want to have this become usable by the general public?

I've had trouble to no end with VirtualBox because of this 'feature', and it shows how much the developers care about the users of the system: not at all.

This is a basic: "do no harm", and if it may cause harm, make it optional and opt-in with information.
devsk
Posts: 47
Joined: 6. Aug 2008, 22:15

Re: VB doesn't flush/commit? (filesystems & transactional db

Post by devsk »

Has this been fixed in recent releases? Considering both these technologies come from the same company (now defunct), I would have expected that they would make ZFS works well with Virtualbox.

I think the default behavior should be to opt for safety. Performance freaks can set an option in their VM properties. And please make that option read: "Please hose my RAIDZ, yes/no?" while you are at it.
qu1j0t3
Posts: 11
Joined: 23. Jan 2009, 20:34

Re: VB doesn't flush/commit? (filesystems & transactional db

Post by qu1j0t3 »

devsk: The problem is not zfs specific, it affects any guest subsystem which needs to enforce write ordering for consistency (most transactional software and most filesystems).
kem
Posts: 1
Joined: 10. Feb 2011, 21:49
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Solaris, Ubuntu

Re: VB doesn't flush/commit? (filesystems & transactional db

Post by kem »

ZFS nowadays can tolerate hardware that ignores cache flushes better than it used to: on reboot/zpool import ZFS will detect and rollback the last N corrupted transactions, if any, but it will require interaction to do this.

The absolutely bare minimum that VBox must do is guarantee ordering across cache flush requests. I don't know if it does. But really, the Right Thing for VBox to do, is to default to NOT ignoring cache flushes and to make it much easier for users to pick a behavior. For example, in the create-a-VM wizard VBox could ask if the VM will be a production VM or not, and set the VM's disks to ignore cache flushes only for non-production VMs. But also, VBox could note that a guest is Solaris with ZFS rpool and give the user additional information about the likelihood of data loss (as opposed to data corruption).

That's what I'd like to see: a radio checkbox/toggle in the VM wizard that lets the user pick between "production" and "fast (can lose transactions)" (Solaris guest) or "fast (can lose filesystems)" (non-Solaris guest).
Post Reply