Ich habe ein Btrfs-Dateisystem mit redundanten Metadaten in einem Virtualbox-Image. Nach einem Hostsystemabsturz ist die Btrfs-Partition beschädigt, was den Garantien des Dateisystems widerspricht, was darauf schließen lässt, dass Virtualbox diese Garantien verletzt.
Wie bringe ich VBox dazu, sich zu benehmen?
Antwort1
Es scheint zwei Lösungen zu geben
Ignorieren des Flush deaktivieren, dies ist nur über die Befehlszeile verfügbar.
virtuelles ATA-Gerät:
VBoxManage setextradata "VM-Name" "VBoxInternal/Devices/piix3ide/0/LUN#[x]/Config/IgnoreFlush" 0
virtuelles SATA-Gerät:
VBoxManage setextradata "VM-Name" "VBoxInternal/Devices/ahci/0/LUN#[x]/Config/IgnoreFlush" 0
wobei [x] die 0-indizierte Laufwerksnummer für diesen Controller ist
Aktivieren Sie den Host-Cachefür den betreffenden virtuellen Controller kann dies in der Benutzeroberfläche erfolgen. Dies hat den Nachteil, dass der IO-Cache innerhalb der VM wahrscheinlich Daten enthält, die sich auch im Host-Cache befinden, wodurch doppelt so viel Speicher für IO-Caches verbraucht wird.
Eine Reduzierung
vm.swappiness
im Gast kann hier hilfreich sein, da der Seitencache weniger wichtig ist, wenn sich die Daten bereits im Hostcache befinden.
Beachten Sie, dass sich aufgrund der zufälligen Natur von Abstürzen und Beschädigungen die Zuverlässigkeit der einzelnen Lösungen nur schwer beurteilen lässt.