Re: RBD Watch Notify for snapshots

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If you receive a callback to your "watch_notify2_test_errcb" function,
you would need to unwatch and rewatch the object.

On Tue, Sep 6, 2016 at 8:56 AM, Nick Fisk <nick@xxxxxxxxxx> wrote:
> Thanks Jason,
>
> I've noticed that some of the objects are no longer being watched even though my process is still running (as seen by listwatchers), I'm guessing they have dropped off somehow and that the watch is not automatically re-established? I have seen there is a rados_watch_check function, do I need to call this periodically to check that the watch is still active?
>
> Thanks,
> Nick
>
>> -----Original Message-----
>> From: Jason Dillaman [mailto:jdillama@xxxxxxxxxx]
>> Sent: 24 August 2016 15:54
>> To: Nick Fisk <nick@xxxxxxxxxx>
>> Cc: ceph-users <ceph-users@xxxxxxxxxxxxxx>
>> Subject: Re:  RBD Watch Notify for snapshots
>>
>> I guess I missed the fact that you were using the "rbd_id" object -- notifications are sent against image header "rbd_header.<image
>> id>". A notification is only sent prior to creating a snapshot when the exclusive-lock feature is used and an active client owns the lock.
>> Otherwise, you'll just receive an "image updated" notification.
>>
>> You won't be able to build your own RBD header notifications, so your "rbd_id" notification is probably a good compromise that won't
>> affect the operation of anything.
>>
>> On Wed, Aug 24, 2016 at 10:46 AM, Nick Fisk <nick@xxxxxxxxxx> wrote:
>> >> -----Original Message-----
>> >> From: Jason Dillaman [mailto:jdillama@xxxxxxxxxx]
>> >> Sent: 23 August 2016 13:23
>> >> To: Nick Fisk <nick@xxxxxxxxxx>
>> >> Cc: ceph-users <ceph-users@xxxxxxxxxxxxxx>
>> >> Subject: Re:  RBD Watch Notify for snapshots
>> >>
>> >> Looks good.  Since you are re-using the RBD header object to send the
>> >> watch notification, a running librbd client will most likely print
>> >> out an error message along the lines of "failed to decode the notification" since you are sending "fsfreeze" / "fsunfreeze" as the
>> payload, but it would be harmless.
>> >
>> > Thanks Jason. I will take the comments from you and Ilya and make some improvements. Are there any particular payloads I should
>> look to standardise on? I originally was planning to try and trigger this when the RBD snapshot was taken, but I didn't seem to see any
>> notifies when watching the rbd_id.<rbd> object. Am I not watching the correct object?
>> >
>> >>
>> >> On Mon, Aug 22, 2016 at 9:13 AM, Nick Fisk <nick@xxxxxxxxxx> wrote:
>> >> > Hi Jason,
>> >> >
>> >> > Here is my initial attempt at using the Watch/Notify support to be
>> >> > able to remotely fsfreeze a filesystem on a RBD. Please note this
>> >> > was all very new to me and so there will probably be a lot of
>> >> > things
>> >> that haven't been done in the best way.
>> >> >
>> >> > https://github.com/fiskn/rbd_freeze
>> >> >
>> >> > I'm not sure if calling out to bash scripts is the best way of
>> >> > doing the fsfreezing, but it was the easiest way I could think to
>> >> > accomplish the task. And it also allowed me to fairly easily run
>> >> > extra checks
>> >> like seeing if any files have been updated recently.
>> >> >
>> >> > Let me know what you think.
>> >> >
>> >> > Nick
>> >> >
>> >> >> -----Original Message-----
>> >> >> From: ceph-users [mailto:ceph-users-bounces@xxxxxxxxxxxxxx] On
>> >> >> Behalf Of Nick Fisk
>> >> >> Sent: 08 July 2016 09:58
>> >> >> To: dillaman@xxxxxxxxxx
>> >> >> Cc: 'ceph-users' <ceph-users@xxxxxxxxxxxxxx>
>> >> >> Subject: Re:  RBD Watch Notify for snapshots
>> >> >>
>> >> >> Thanks Jason,
>> >> >>
>> >> >> I think I'm going to start with a bash script which SSH's into the
>> >> >> machine to check if the process has finished writing and then
>> >> > calls the
>> >> >> fsfreeze as I've got time constraints to getting this working. But
>> >> >> I will definitely revisit this and see if there is something I
>> >> > can create
>> >> >> which will do as you have described, as it would be a much neater solution.
>> >> >>
>> >> >> Nick
>> >> >>
>> >> >> > -----Original Message-----
>> >> >> > From: ceph-users [mailto:ceph-users-bounces@xxxxxxxxxxxxxx] On
>> >> >> > Behalf Of Jason Dillaman
>> >> >> > Sent: 08 July 2016 04:02
>> >> >> > To: nick@xxxxxxxxxx
>> >> >> > Cc: ceph-users <ceph-users@xxxxxxxxxxxxxx>
>> >> >> > Subject: Re:  RBD Watch Notify for snapshots
>> >> >> >
>> >> >> > librbd pseudo-automatically handles this by flushing the cache
>> >> >> > to the snapshot when a new snapshot is created, but I don't
>> >> >> > think krbd does the same. If it doesn't, it would probably be a
>> >> >> > nice
>> >> > addition to
>> >> >> the block driver to support the general case.
>> >> >> >
>> >> >> > Baring that (or if you want to involve something like fsfreeze),
>> >> >> > I think the answer depends on how much you are willing to write
>> >> >> > some custom C/C++ code (I don't think the rados python library
>> >> >> > exposes watch/notify APIs). A daemon could register a watch on a
>> >> >> > custom per-host/image/etc object which would sync the disk when
>> >> >> > a
>> >> >> notification is received. Prior to creating a snapshot, you would
>> >> >> need to send a notification to this object to alert the daemon
>> >> > to
>> >> >> sync/fsfreeze/etc.
>> >> >> >
>> >> >> > On Thu, Jul 7, 2016 at 12:33 PM, Nick Fisk <mailto:nick@xxxxxxxxxx> wrote:
>> >> >> > Hi All,
>> >> >> >
>> >> >> > I have a RBD mounted to a machine via the kernel client and I
>> >> >> > wish to be able to take a snapshot and mount it to another machine where it can be backed up.
>> >> >> >
>> >> >> > The big issue is that I need to make sure that the process
>> >> >> > writing on the source machine is finished and the FS is sync'd before taking the snapshot.
>> >> >> >
>> >> >> > My question. Is there something I can do with Watch/Notify to
>> >> >> > trigger this checking/sync process on the source machine before the snapshot is actually taken?
>> >> >> >
>> >> >> > Thanks,
>> >> >> > Nick
>> >> >> >
>> >> >> > _______________________________________________
>> >> >> > ceph-users mailing list
>> >> >> > mailto:ceph-users@xxxxxxxxxxxxxx
>> >> >> > http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > --
>> >> >> > Jason
>> >> >>
>> >> >> _______________________________________________
>> >> >> ceph-users mailing list
>> >> >> ceph-users@xxxxxxxxxxxxxx
>> >> >> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> Jason
>> >
>>
>>
>>
>> --
>> Jason
>



-- 
Jason
_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com



[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux