[dm-devel] Re: [RFC][PATCH 0/4] dm-log: support multi-log devices

Takahiro Yasui tyasui at redhat.com
Mon Dec 1 07:00:54 UTC 2008


Phillip Susi wrote:
> Takahiro Yasui wrote:
>> bitmap data on a log disk indicates if each region are "clean" or "dirty"
>> among mirror disks. If a bit related to a region is "1", it means that
>> the region is "clean" and data in the region is synchronized in all mirror
>> disks and they store the same data in the region. On the other hand,
>> if a bit related to a region is "0", the region is "dirty" and the region
>> is out of synchronization. It means that each mirror disk might contain
>> different data in the region.
>>
>> Therefore, a log disk contains a state of each region, but does not
>> correspond to a specific mirror device.
>>
>> This patch set introduces redundant log disk on dm-mirror.
> 
> Right... and when recording a log on every disk in the mirror, each copy
> of the log may not contain exactly the same information at any given
> time.  If you write to one disk in the mirror first, then you need to
> mark the region as dirty on that disk first, so that if the system
> crashes before you can copy the data to the other mirror, you can see
> that the first disk is more up to date than the second disk.
> 
> In other words, knowing that a region is or is not synchronized across
> each disk is not enough; if they are out of sync you need to figure out
> which disk has the most current information so it can be replicated to
> the others, don't you?
>
> Or do you just always write to the first disk first, and assume it has
> the most recent data if the region was marked as dirty in ANY of the logs?

log disks are updated in parallel and we do not know which disk has the
latest and correct data if the system crashes during write operations
on log devices. But there is no problem about it.

There are two cases we need to think about.

1) Some log devices contain "clean", but mirror devices are not synchronized

This case is problematic, but never happens, because data is written on
mirror devices after marking log devices "dirty", and make it "clean"
after write I/Os on mirror devices completed and mirrors get synchronized.

2) Some log devices contain "dirty", but mirror devices are synchronized

This case may happen but is not problematic. Just data replication of
the region among mirror devices will be done when the mirror is resumed.
This case would also happen on the system with the current single log if
the system crashes after marking a log device "dirty" and before marking
it back to "clean".

Thanks,
---
Takahiro Yasui
Hitachi Computer Products (America) Inc.




More information about the dm-devel mailing list