All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
To: lvm-devel@redhat.com
Subject: [PATCH lvconvert 0/11] Additional fixes and changes to lvconvert restructure
Date: Thu, 10 Jan 2008 15:36:55 -0500	[thread overview]
Message-ID: <478681E7.5040206@ce.jp.nec.com> (raw)
In-Reply-To: <477E48D8.4050404@ce.jp.nec.com>

Jun'ichi Nomura wrote:
> Other things I would like to work on next are:
..
>   - Review and fix remove_mirror_images() so that 'removable_pvs'
>     filtering works on stacked mirror.

For remove_mirror_images() to properly work with stacked
mirror, I'm going to allow "mirror" segment with 1 area.

'removable_pvs' is used for selectively removing mimage LVs.
Especially, it's important for mirror reconfiguration
after device failure.
However, the current code can't handle the case where
"_mimagetmp" LV turns to become single.

I've been thinking about this situation:

  1 mirror is added to 2-way mirrored LV

      lv0
        +-- lv0_mimagetmp_2
        |      +-- lv0_mimage_0
        |      +-- lv0_mimage_1
        |      +-- lv0_mlog
        +-- lv0_mimage_2

  lv0_mimage_2 is still syncing.
  lv0_mlog contains sync status between lv0_mimage_0 and
  lv0_mimage_1.

If lv0_mimage_1 is removed, what should we do?

What the current code will do is:

      lv0
        +-- lv0_mimagetmp_2
        +-- lv0_mimage_2

Of course, it's not correct.

IMO, first, the lv0_mimage_1 is removed and lv0_mlog is
set to mark in-sync,

      lv0
        +-- lv0_mimagetmp_2
        |      +-- lv0_mimage_0
        |      +-- lv0_mlog
        +-- lv0_mimage_2

then, polldaemon converts it after sync completion,

      lv0
        +-- lv0_mimage_0
        +-- lv0_mimage_2
        +-- lv0_mlog

So in the intermediate state, "mirror" segment will have
only 1 area. There's already a code related to pvmove that
uses "linear" target for "mirror" segment.
It's not enough to convert to "linear" segment because
that makes mirror parameters (log LV, region size, etc.) lost.

>   - Review the suspend code path. I think 'noflush' should be
>     avoided for lower-level mirrors. Otherwise the upper-level mirror
>     can't suspend.

Suspend is done top-down. So 'noflush' should not be a problem.

Thanks,
-- 
Jun'ichi Nomura, NEC Corporation of America



      parent reply	other threads:[~2008-01-10 20:36 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-04 14:55 [PATCH lvconvert 0/11] Additional fixes and changes to lvconvert restructure Jun'ichi Nomura
2008-01-04 15:12 ` [PATCH lvconvert 1/11] Correct 'const' for _lv_mimage_in_sync() Jun'ichi Nomura
2008-01-04 15:12 ` [PATCH lvconvert 2/11] Don't start polldaemon if conversion failed in early stage Jun'ichi Nomura
2008-01-04 15:12 ` [PATCH lvconvert 3/11] Multiple fixes about to-corelog conversion Jun'ichi Nomura
2008-01-04 15:12 ` [PATCH lvconvert 4/11] Fix possible mirror image corruption Jun'ichi Nomura
2008-01-04 15:12 ` [PATCH lvconvert 5/11] Don't insert temporary layer for corelog mirror Jun'ichi Nomura
2008-01-04 15:12 ` [PATCH lvconvert 6/11] init_mirror_in_sync(0) for corelog mirror addition Jun'ichi Nomura
2008-01-04 15:12 ` [PATCH lvconvert 7/11] Fix semantic consistency of mirrorlog option Jun'ichi Nomura
2008-01-04 15:12 ` [PATCH lvconvert 8/11] Add internal 'CONVERTING' flag for LVs under conversion Jun'ichi Nomura
2008-01-04 15:13 ` [PATCH lvconvert 9/11] Add a new attr field char for the CONVERTING LV Jun'ichi Nomura
2008-01-04 15:13 ` [PATCH lvconvert 10/11] Warn if lvconvert needs activation to complete conversion Jun'ichi Nomura
2008-01-04 15:13 ` [PATCH lvconvert 11/11] Start lvconvert polldaemon on activation (like pvmove) Jun'ichi Nomura
2008-01-10 18:40 ` [PATCH lvconvert 0/11] Additional fixes and changes to lvconvert restructure Alasdair G Kergon
2008-01-10 19:53   ` Jun'ichi Nomura
2008-01-10 20:36 ` Jun'ichi Nomura [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=478681E7.5040206@ce.jp.nec.com \
    --to=j-nomura@ce.jp.nec.com \
    --cc=lvm-devel@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.