All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Dillaman <jdillama@redhat.com>
To: Victor Denisov <vdenisov@mirantis.com>
Cc: Mykola Golub <mgolub@mirantis.com>,
	ceph-devel <ceph-devel@vger.kernel.org>
Subject: Re: Snapshots of consistency groups
Date: Fri, 16 Dec 2016 09:53:16 -0500	[thread overview]
Message-ID: <CA+aFP1AcL418Ai1tuoLKOG5BHFLYeonKBcZm5LK-9m+Vmjr7CA@mail.gmail.com> (raw)
In-Reply-To: <CA+hcxJTsR2N4RhW4PVAcV+Y=K3yLYEKukcbAtFD_329ZJebe6g@mail.gmail.com>

Can you give a little background on this specific inconsistent case
you are referring to?

On Thu, Dec 15, 2016 at 7:05 PM, Victor Denisov <vdenisov@mirantis.com> wrote:
> Yes, but if image's snapshot is renamed then I'm not able to find this
> snapshot having only group's snapshot in an inconsistent state for
> example.
>
> V.
>
> On Thu, Dec 15, 2016 at 7:10 AM, Jason Dillaman <jdillama@redhat.com> wrote:
>> I think I might be confused. When creating a group snapshot, we have
>> the ConsistencyGroupSnapshot that allows you to store the necessary
>> linkage between the image's snapshot and its associated group snapshot
>> [1]. Why not just name the image's snapshots to the same name as the
>> parent group snapshot name and search the snapshot's metadata to get
>> the linkage?
>>
>> [1] https://github.com/ceph/ceph/blob/master/src/cls/rbd/cls_rbd_types.h#L255
>>
>> On Tue, Dec 13, 2016 at 8:03 PM, Victor Denisov <vdenisov@mirantis.com> wrote:
>>> Jason,
>>>
>>> My current implementation of consistency group snapshot feature names
>>> image snapshots like: <group_pool>_<group_id>_<group_snap_id>
>>> I rely on this fact when I need to remove a consistency group. It's
>>> necessary because if some of image snapshots were created, but the
>>> whole group snapshot operation failed,
>>> then the only way to find those dangling image snapshots is by this name.
>>>
>>> It means that we should forbid renaming snapshots from
>>> ConsistencyGroupSnapshot namespace.
>>>
>>> Another option is to allocate image snapshot ids during the creation
>>> of group snapshot, but this requires a major rewrite of the whole
>>> process of snapshot creation for images.
>>>
>>> What is your opinion on this?
>>>
>>> Thanks,
>>> V.
>>>
>>>
>>> On Tue, Nov 1, 2016 at 8:01 AM, Jason Dillaman <jdillama@redhat.com> wrote:
>>>> I chatted with Xing on IRC this morning re: Cinder generic groups. It
>>>> sounds like RBD will need to support preserving the image's
>>>> consistency group snapshots even if the image is removed from the
>>>> group. In the OpenStack case, you won't have to worry about the image
>>>> being deleted while it still has associated group snapshots.
>>>>
>>>> We will also want to support being able to clone child images from a
>>>> group snapshot to ensure that we can thin provision new groups volumes
>>>> when creating a new group from a group snapshot. This means that the
>>>> group snapshots should be able to be protected/unprotected just like
>>>> standard user snapshots.
>>>>
>>>> On Mon, Oct 31, 2016 at 9:07 AM, Jason Dillaman <jdillama@redhat.com> wrote:
>>>>> Looking at the Cinder codebase, I don't see any such restriction that
>>>>> would prevent you from removing a volume from a consistency group that
>>>>> has associated snapshots. I would double-check on the OpenStack
>>>>> development mailing list if this is correct and is the intent. Worst
>>>>> case, the RBD driver could raise an exception if there are still
>>>>> consistency group snapshots associated to the image.
>>>>>
>>>>>
>>>>> On Fri, Oct 28, 2016 at 6:41 PM, Victor Denisov <vdenisov@mirantis.com> wrote:
>>>>>> Another thing that bothers me. When we remove an image from a consistency group.
>>>>>> Should we remove all snapshots of this image that were created as part
>>>>>> of a consistency group snapshot?
>>>>>>
>>>>>> The easiest solution would be to remove all snapshots that are in
>>>>>> GroupSnapshotNamespace and reference this consistency group.
>>>>>> I looked into cinder docs for this feature:
>>>>>> http://docs.openstack.org/admin-guide/blockstorage-consistency-groups.html
>>>>>>
>>>>>> But it's not clear to me which behavior cinder expects.
>>>>>>
>>>>>> Thanks,
>>>>>> V.
>>>>>>
>>>>>> On Wed, Oct 26, 2016 at 6:16 AM, Jason Dillaman <jdillama@redhat.com> wrote:
>>>>>>> In a perfect world, it would be nice to add a new optional to "rbd
>>>>>>> snap ls" to show all snapshots (with a new column to indicate the
>>>>>>> associated namespace).
>>>>>>>
>>>>>>> On Tue, Oct 25, 2016 at 11:07 PM, Victor Denisov <vdenisov@mirantis.com> wrote:
>>>>>>>> Question. When we print out snapshots of an image, should the group
>>>>>>>> snapshots be listed, or should they be marked as special snapshots?
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> V.
>>>>>>>>
>>>>>>>> On Mon, Oct 10, 2016 at 3:14 PM, Victor Denisov <vdenisov@mirantis.com> wrote:
>>>>>>>>> Ok. I didn't have any intention to throw exceptions.
>>>>>>>>> I was more concerned about whether it's ok to allocate and delete
>>>>>>>>> objects or I should use smart pointers.
>>>>>>>>>
>>>>>>>>> On Mon, Oct 10, 2016 at 7:18 AM, Jason Dillaman <jdillama@redhat.com> wrote:
>>>>>>>>>> The only place exceptions are routinely used is within the "::decode"
>>>>>>>>>> functions. I would prefer to see the code not throwing new exceptions
>>>>>>>>>> on purpose.
>>>>>>>>>>
>>>>>>>>>> On Fri, Oct 7, 2016 at 2:26 PM, Victor Denisov <vdenisov@mirantis.com> wrote:
>>>>>>>>>>> Are any exceptions used in librbd code? Should the code be exception safe?
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>> V.
>>>>>>>>>>>
>>>>>>>>>>> On Fri, Sep 16, 2016 at 10:37 AM, Jason Dillaman <jdillama@redhat.com> wrote:
>>>>>>>>>>>> On Thu, Sep 15, 2016 at 7:17 PM, Victor Denisov <vdenisov@mirantis.com> wrote:
>>>>>>>>>>>>> if (struct_v >= 5) {
>>>>>>>>>>>>>       ::decode(snapshot_namespace, p);
>>>>>>>>>>>>>     } else {
>>>>>>>>>>>>>       snapshot_namespace = cls::rbd::UserSnapshotNamespace();
>>>>>>>>>>>>>     }
>>>>>>>>>>>>>
>>>>>>>>>>>>> then code for ::encode function of cls_rbd_snap would change accordingly:
>>>>>>>>>>>>>
>>>>>>>>>>>>> instead of
>>>>>>>>>>>>>
>>>>>>>>>>>>> boost::apply_visitor(cls::rbd::EncodeSnapshotTypeVisitor(bl),
>>>>>>>>>>>>> snapshot_namespace);
>>>>>>>>>>>>>
>>>>>>>>>>>>> I would do:
>>>>>>>>>>>>> ::encode(snapshot_namespace, bl);
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> +1 -- looks good to me
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> Jason
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Jason
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Jason
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Jason
>>>>
>>>>
>>>>
>>>> --
>>>> Jason
>>
>>
>>
>> --
>> Jason



-- 
Jason

  reply	other threads:[~2016-12-16 14:53 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-15 23:46 Snapshots of consistency groups Victor Denisov
2016-08-16 13:26 ` Jason Dillaman
2016-08-16 13:29   ` Jason Dillaman
2016-08-18 23:26     ` Victor Denisov
     [not found]       ` <CA+aFP1BMK1=daZpUFdNDJ+i8+nfQt42ahCXVaxy9fWdAY-kXwA@mail.gmail.com>
2016-08-19  4:20         ` Victor Denisov
2016-08-19 12:48           ` Mykola Golub
2016-08-20  0:36             ` Victor Denisov
2016-08-20 16:27               ` Mykola Golub
2016-08-26 21:05                 ` Victor Denisov
2016-08-29  0:37                   ` Jason Dillaman
2016-08-29 21:10                     ` Victor Denisov
2016-09-09 22:41                       ` Victor Denisov
2016-09-10 18:37                         ` Jason Dillaman
2016-09-11  1:46                           ` Victor Denisov
2016-09-12 13:18                             ` Jason Dillaman
2016-09-12 22:52                               ` Victor Denisov
2016-09-12 23:06                                 ` Victor Denisov
2016-09-12 23:09                                   ` Victor Denisov
2016-09-13 12:33                                     ` Jason Dillaman
2016-09-13 23:41                                       ` Victor Denisov
2016-09-15 23:17                                         ` Victor Denisov
2016-09-16 17:37                                           ` Jason Dillaman
2016-10-07 18:26                                             ` Victor Denisov
2016-10-10 14:18                                               ` Jason Dillaman
2016-10-10 22:14                                                 ` Victor Denisov
2016-10-26  3:07                                                   ` Victor Denisov
2016-10-26 13:16                                                     ` Jason Dillaman
2016-10-28 22:41                                                       ` Victor Denisov
2016-10-31 13:07                                                         ` Jason Dillaman
2016-11-01 15:01                                                           ` Jason Dillaman
2016-12-14  1:03                                                             ` Victor Denisov
2016-12-15 15:10                                                               ` Jason Dillaman
2016-12-16  0:05                                                                 ` Victor Denisov
2016-12-16 14:53                                                                   ` Jason Dillaman [this message]
2017-01-04  0:40                                                                     ` Victor Denisov
2017-01-04  2:56                                                                       ` Jason Dillaman
2017-01-04 18:29                                                                         ` Victor Denisov
2017-01-04 18:34                                                                           ` Jason Dillaman
2017-01-04 18:39                                                                             ` Victor Denisov
2017-01-12  0:14                                                                               ` Victor Denisov
2017-01-12  0:18                                                                                 ` Jason Dillaman
2017-01-12  1:10                                                                                   ` Victor Denisov
2017-01-12  1:36                                                                                     ` Jason Dillaman

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=CA+aFP1AcL418Ai1tuoLKOG5BHFLYeonKBcZm5LK-9m+Vmjr7CA@mail.gmail.com \
    --to=jdillama@redhat.com \
    --cc=ceph-devel@vger.kernel.org \
    --cc=dillaman@redhat.com \
    --cc=mgolub@mirantis.com \
    --cc=vdenisov@mirantis.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.