[Lazarus] Animation library

Graeme Geldenhuys mailinglists at geldenhuys.co.uk
Thu Mar 9 17:50:10 CET 2017

On 2017-03-09 16:11, Lars via Lazarus wrote:
> Except for the fact that VM's suffer from corrupt hard drive file 
> problem.

Not a problem if you run a ZFS RAID-Z1 (which I do), or RAID-Z2 or
RAID-Z3 environment. Read a bit (or look on YouTube) about ZFS - it's
f**ken brilliant! A file-system redeveloped from the ground up. I will
not use any other file system ever again.

I use server grade hard drives for the ZFS data pool and my setup allows
one hard drive to fail without loosing data. Ideally you would want ZFS
RAID-Z2 (allowing two drives to fail without loosing data), but I simply
didn't have the space in my casing. So every few years I swap out one
drive at a time for a new one.

In summary, ZFS is a copy-on-write file-system, so existing data is
never overwritten on a write. All drives added to the pool becomes part
of the collective hard drive space (think of it like RAM modules being
plugged into a motherboard). "Partitions" can be created and destroyed
at will, and can grow or shrink with the data. Sensitive data can be
told to have multiple copies stored - scattered over the pool. ZFS does
crc checks before and after read/writes to verify the data, so no faulty
cable, controller or hard drive will silently corrupt your data. And
contrary to what many may think (because of the latter statement), the
performance of ZFS is fantastic.

ZFS (same version as FreeBSD) is now available for Linux too, thanks to
the OpenZFS community - development of ZFS is now a collaborated task.
To install ZFS in Linux is very simple and quick, and unlike a couple
years ago, ZFS doesn't run under FUSE on Linux any more, it's a truly
native file system, just like EXT4, JFS etc.

If you have 3 or more USB memory sticks, use them to play around with
ZFS to get a feel for it. It's a nice and easy way to simulate hard
drive failures etc. You can use virtual VM hard drives too of course.

> This is the only real thing stopping me from using vm's more often is if 
> I save any work to the VM disk image, it scares me that the disk image 
> could become corrupt.

Like I said, I also make the occasional backup of my VM virtual hard
drives by exporting it to a ova file.

As for any code written inside a VM. I normal use-case is to enable a
shared folder in the VM, so my code is not actually stored on the VM's
hard drive, but directly on my ZFS data pool.

Saying that, I do have customer or project specific VM's where the code
is stored in the VM. In such cases, at the end of the day, I simply push
my code changes to my remote Git repository (outside the VM and accessed
via SSH), so I have a second backup copy of the code.

I've been developing like this for over 7 years and haven't lost a
single line of code.

> that would be a massive file to upload to git... way too big... Maybe on 
> a local git server in your home with a 1000 speed network card instead 
> of 10/100

Don't do that. Simply push the code changes, not the VM hard disk.

Now I'm curious... How do other developers work? What environments do
you guys use? Do you develop on VM's or real hardware? Any specific host
OS of choice, VirtualBox, VMWare or something else. Where do you store
your source code - in the VM, outside or both?


fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal

My public PGP key:  http://tinyurl.com/graeme-pgp

More information about the Lazarus mailing list