Mijn vraag
Is het "not done" om bestandssystemen met snapshot mogelijkheid vanuit virtuele machines te gebruiken?
Kortom, moet het altijd per se via de host of een slimme storage oplossing? Of is er eigenlijk niet zoveel op tegen om LVM, ZFS of BTRFS vanuit een virtuele machine te gebruiken?
Relevante software en hardware die ik gebruik
Ik zit voornamelijk in een Windows omgeving, die gevirtualiseerd is op ESXi en Hyper V hosts. Op deze Windows machines maken we ook backups vanuit de virtuele machine met Macrium, die op zijn beurt weer VSS snapshots maakt en dit gaat al jaren goed.
Voor bepaalde diensten (git server, database server, etc) wil ik echter over op Linux virtuele machines. Met name de malware dreiging van het afgelopen jaar, geeft mij het gevoel dat ik bepaalde belangrijke diensten misschien beter op Linux (of zelfs FreeBSD) kan draaien.
(en ja, natuurlijk maken we ook een hoop backups
)
Wat ik al gevonden of geprobeerd heb
Na het zoeken op internet vond ik echter wisselende resultaten en meningen over het toepassen van snapshots vanuit guests operating systems. De ene zegt dat het geen probleem is, de volgende raadt het met klem af.
Bijvoorbeeld:
LVM dangers and caveats
En dan met name de reactie van RichVel:
"Risks of using LVM:
- Vulnerable to write caching issues with SSD or VM hypervisor
- Harder to recover data due to more complex on-disk structures
- Harder to resize filesystems correctly
- Snapshots are hard to use, slow and buggy
- Requires some skill to configure correctly given these issues"
Maar ook:
ZFS inside a virtual machine
"Basically any modern hypervisor (VMWare, Xen, KVM, HyperV, even VirtualBox) supports barrier passing: when a VM explicitly flushes something to disk (by issuing a barrier/FUA), the hypervisor will pass the barrier down to the host, forcing the same flushes executed by the guest OS. In other words, no corruption is expected for important/durable writes (as the one used by the filesystem itself to update its metadata)."
Nu haal ik wellicht een aantal dingen door elkaar, en is het gebruiken van LVM gevaarlijker dan ZFS of BTRFS (of zelfs UFS2).
Maar wat vinden jullie?
Ik heb namelijk niet zo heel veel invloed op de hosts en het gebruiken van een losse storage oplossing is geen optie momenteel (de hosts hebben SSD's, terwijl onze NAS-en trage HDD's hebben... dus de VM's volledig op de hosts draaien heeft een sterke voorkeur performance technisch).
Ook kan ik ze niet zomaar overharken naar een andere oplossing zoals KVM / Proxmox. Niet in de laatste plaats omdat de Windows VM's er wel lekker op draaien en ze voor iedereen vrij eenvoudig te managen zijn vanuit Windows (ESXi via de browser, Hyper V via de Windows management tools).
Daarnaast heb ik ergens zo'n gevoel van "als het met de Windows guests werkt, zou het ook met Linux moeten werken"
Maar het hele verhaal over write caching heeft me een beetje bang gemaakt. Daarnaast heb ik in het verleden al eens eerder een onbruikbare Linux VM gehad waarvan de LVM helemaal corrupt was geraakt (na een volledige stroomuitval)... terwijl mij dat nooit op Windows overkomt (ook niet met Linux op plain vanilla ext4 trouwens).
Dus ik ben aan de ene kant huiverig ervoor geworden om iets anders dan plain and simple ext4 te gebruiken, aan de andere kant heb ik snapshots nodig om van bepaalde diensten makkelijk een backup te kunnen maken zonder dat er bestanden gelockt zijn e.d. (of dat ik deze diensten simpelweg uit moet zetten zolang er een backup wordt gemaakt).
Zo hebben we bijvoorbeeld een Gitea setup met sqlite en zolang Gitea draait, wordt de sqlite database gelockt. Als ik dan de map archiveer slaat hij de database over (niet handig). Maak ik echter een snapshot, dan kan ik alles archiveren.
Dit geldt momenteel ook op Windows, maar daar lost Macrium dit dus voor mij op door een VSS snapshot te maken.
Door mijn nare ervaring met die corrupte LVM ben ik iig geneigd bij Linux om de root / boot partitie simpelweg met ext4 in te richten, en een eventuele LVM / ZFS / BTRFS met snapshot mogelijkheid alleen voor de data partities te gebruiken.
Anyways... wat zijn jullie inzichten? Kan het kwaad om dit vanuit een virtuele machine te doen?
Is het "not done" om bestandssystemen met snapshot mogelijkheid vanuit virtuele machines te gebruiken?
Kortom, moet het altijd per se via de host of een slimme storage oplossing? Of is er eigenlijk niet zoveel op tegen om LVM, ZFS of BTRFS vanuit een virtuele machine te gebruiken?
Relevante software en hardware die ik gebruik
Ik zit voornamelijk in een Windows omgeving, die gevirtualiseerd is op ESXi en Hyper V hosts. Op deze Windows machines maken we ook backups vanuit de virtuele machine met Macrium, die op zijn beurt weer VSS snapshots maakt en dit gaat al jaren goed.
Voor bepaalde diensten (git server, database server, etc) wil ik echter over op Linux virtuele machines. Met name de malware dreiging van het afgelopen jaar, geeft mij het gevoel dat ik bepaalde belangrijke diensten misschien beter op Linux (of zelfs FreeBSD) kan draaien.
(en ja, natuurlijk maken we ook een hoop backups
Wat ik al gevonden of geprobeerd heb
Na het zoeken op internet vond ik echter wisselende resultaten en meningen over het toepassen van snapshots vanuit guests operating systems. De ene zegt dat het geen probleem is, de volgende raadt het met klem af.
Bijvoorbeeld:
LVM dangers and caveats
En dan met name de reactie van RichVel:
"Risks of using LVM:
- Vulnerable to write caching issues with SSD or VM hypervisor
- Harder to recover data due to more complex on-disk structures
- Harder to resize filesystems correctly
- Snapshots are hard to use, slow and buggy
- Requires some skill to configure correctly given these issues"
Maar ook:
ZFS inside a virtual machine
"Basically any modern hypervisor (VMWare, Xen, KVM, HyperV, even VirtualBox) supports barrier passing: when a VM explicitly flushes something to disk (by issuing a barrier/FUA), the hypervisor will pass the barrier down to the host, forcing the same flushes executed by the guest OS. In other words, no corruption is expected for important/durable writes (as the one used by the filesystem itself to update its metadata)."
Nu haal ik wellicht een aantal dingen door elkaar, en is het gebruiken van LVM gevaarlijker dan ZFS of BTRFS (of zelfs UFS2).
Maar wat vinden jullie?
Ik heb namelijk niet zo heel veel invloed op de hosts en het gebruiken van een losse storage oplossing is geen optie momenteel (de hosts hebben SSD's, terwijl onze NAS-en trage HDD's hebben... dus de VM's volledig op de hosts draaien heeft een sterke voorkeur performance technisch).
Ook kan ik ze niet zomaar overharken naar een andere oplossing zoals KVM / Proxmox. Niet in de laatste plaats omdat de Windows VM's er wel lekker op draaien en ze voor iedereen vrij eenvoudig te managen zijn vanuit Windows (ESXi via de browser, Hyper V via de Windows management tools).
Daarnaast heb ik ergens zo'n gevoel van "als het met de Windows guests werkt, zou het ook met Linux moeten werken"
Maar het hele verhaal over write caching heeft me een beetje bang gemaakt. Daarnaast heb ik in het verleden al eens eerder een onbruikbare Linux VM gehad waarvan de LVM helemaal corrupt was geraakt (na een volledige stroomuitval)... terwijl mij dat nooit op Windows overkomt (ook niet met Linux op plain vanilla ext4 trouwens).
Dus ik ben aan de ene kant huiverig ervoor geworden om iets anders dan plain and simple ext4 te gebruiken, aan de andere kant heb ik snapshots nodig om van bepaalde diensten makkelijk een backup te kunnen maken zonder dat er bestanden gelockt zijn e.d. (of dat ik deze diensten simpelweg uit moet zetten zolang er een backup wordt gemaakt).
Zo hebben we bijvoorbeeld een Gitea setup met sqlite en zolang Gitea draait, wordt de sqlite database gelockt. Als ik dan de map archiveer slaat hij de database over (niet handig). Maak ik echter een snapshot, dan kan ik alles archiveren.
Dit geldt momenteel ook op Windows, maar daar lost Macrium dit dus voor mij op door een VSS snapshot te maken.
Door mijn nare ervaring met die corrupte LVM ben ik iig geneigd bij Linux om de root / boot partitie simpelweg met ext4 in te richten, en een eventuele LVM / ZFS / BTRFS met snapshot mogelijkheid alleen voor de data partities te gebruiken.
Anyways... wat zijn jullie inzichten? Kan het kwaad om dit vanuit een virtuele machine te doen?
Ask yourself if you are happy and then you cease to be.