Subject How do you create a "consistent" storage snapshot when running in async mode?
Author nhiggs@ymail.com
Aim:
To deliver the required business continuity (RTO/RPO) I need to create an "application consistent" SAN based snapshot of the Firebird Databse disk every hour. In case of a logical error the snapshot can be later mounted and the database restarted with a previous good version.


Solution:
My current solution is to "freeze" or "quiece" the IO to the databse file by setting the database in backup mode. Then to flush the file system buffers to disk using sync.exe and then create the snapshot on the storagesystem. Afterwards the databse backup mode is turned off.


Question:
When running in async mode ...
What exactly does the nbackup command do? Does it flush the database cache to the filesystem? How long does this take? Is there a way of checking that the database on filesystem is in a consistent state?
Do I need to set the database in sync mode? How long does this take?


Detailled Problem Description:
I am experiencing I/O performance problems with Firebird Version 2.0.6 when running Windows 2008 R2 64 Bit on a ESXi 4.1 Update 1 Host.

My Firebird database is installed on a FC LUN in a storage virtualised SAN.

Evidently some perfomance issues within virtual environments can be resolved by updating to Version 2.1. Unfortunately my application supplier doesn't support this yet.

I am therefore forced to run the database in async mode to attain the required I/O performance.

Unfortunately my tests so far have not produced a garanteed consistency. Sometimes the snapshot can be mounted and the database starts other times I need a reboot and sometimes the database won't start.