[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
[dm-devel] snapshot of mirror (was: possible regression by the barrier patch in 2.6.30-rc2)
- From: Mikulas Patocka <mpatocka redhat com>
- To: Alasdair G Kergon <agk redhat com>
- Cc: Kiyoshi Ueda <k-ueda ct jp nec com>, device-mapper development <dm-devel redhat com>
- Subject: [dm-devel] snapshot of mirror (was: possible regression by the barrier patch in 2.6.30-rc2)
- Date: Thu, 5 Nov 2009 21:42:13 -0500 (EST)
> Anyway, suspend unconditionally purges all I/Os from target drivers. All
> that this "noflush" flag does is that it allows the I/O to be held and
> requeued for new dm table incarnation, if the target requests it with
> DM_MAPIO_REQUEUE (dm-raid1 and dm-multipath do it). If no target returns
> DM_MAPIO_REQUEUE, then "flush" and "noflush" suspend is equivalent.
Hmm, I think it makes snapshot-of-mirrors implementation impossible.
If we create the first snapshot or delete the last snapshot, we must
inevitably suspend the underlying origin device. If we do a "flush"
suspend and mirror log or leg fails at the same time, the i/o would be
incorrectly returned with -EIO. If we do a "noflush" suspend, we couldn't
synchronize the filesystem on snapshot creation and we couldn't get the
I/Os out of origin target (because they would be queued in the underlying
-real device).
Mirrors must to be self-sufficient (i.e. handle errors on their own
without queuing i/os and needing immediate action of dmeventd) to enable
snapshots-of-mirrors work. Jon, will your log duplication work meet this
requirement?
Mikulas
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]