I just saw that clean_bits is being saved to the disk and is used to update sync_bits after crash/reboot (although the default behavior is to reset all the bits hence, resync is done for each resume).
But I still do not understand how should I create a mapped device with dmsetup tool which wouldl survive crash/reboot.
Can anyone help?
I tried a small test where I suspended and resumed a mirrored device without IO going on.
My expectation was that the mirror set will not get re-synced but unfortunately it did.
According the documentation the mirror log is kept on disk when creating a mirror logical device with 'disk' log type as an input parameter.
I looked at the code and I didn't see where the sync_bits are being written to the disk or read from the disk but only the number of regions is being saved.
How should a mirror device survive reboots/crashes without syncing the entire mirror set?
BTW – another problem is that after reboot the created logical device disappears, is there an easy way to keep it persistent or should I create at each boot?