[sheepdog-users] sheepdog object cache

郑晓川 zhengxiaochuan at jd.com
Thu Apr 7 05:27:48 CEST 2016


I had tested sheepdog  on ubuntu server 14.04 (the default qemu is 2.0.0)

The sheepdog  cluster  info :   2 nodes , 2 copies

I started 2 VM by openstack-nova ,and mount sheepdog vdies .

I tested with iozone and fio . the md5sum of vdi obj  became diff from two sheepdog node as time goes by .

At the end , I umount the vdi ,  and  check it with  "dog vdi check "  , got :

[cid:_Foxmail.1 at 9cbe8599-e7d6-1eed-225a-8d64bbfa41dc]


after some talk and test Liuy ( you should know him)  told me ,this commit may help to resolve the problem. And indeed it works for me .

----------------------------
commit 77135d4317ff4e66777f0df760ed254be3d20df5
Author: Liu Yuan <liuyuan at cmss.chinamobile.com>
Date:   Wed Jul 29 12:02:35 2015 +0800

    sheepdog: fix overlapping metadata update

    Current sheepdog driver use a range update_inode(min_idx, max_idx) for batching
    the updates. But there is subtle problem by determining min_idx and max_idx:

    for a single create request, min_idx == max_idx, so actually we just update one
    one bit as expected.

    Suppose we have 2 create request, create(10) and create(20), then min == 10,
    max==20 even though we just need to update index 10 and index 20, update_inode(10,20)
    will actually update range from 10 to 20. This would work if all the update_inode()
    requests won't overlap. But unfortunately, this is not true for some corner case.
    So the problem arise as following:

    req 1: update_inode(10,20)
    req 2: update_inode(15,22)

    req 1 and req 2 might have different value between [15,20] and cause problems
    and can be illustrated as following by adding a printf in sd_write_done:

    @@ -1976,6 +1976,7 @@ static void coroutine_fn sd_write_done(SheepdogAIOCB *acb)

         mn = s->min_dirty_data_idx;
         mx = s->max_dirty_data_idx;
    +    printf("min %u, max %u\n", mn, mx);
         if (mn <= mx) {
             /* we need to update the vdi object. */
             offset = sizeof(s->inode) - sizeof(s->inode.data_vdi_id) +

    ...
    min 4294967295, max 0
    min 9221, max 9222


________________________________
郑晓川

From: Hitoshi Mitake<mailto:mitake.hitoshi at gmail.com>
Date: 2016-04-07 10:49
To: 郑晓川<mailto:zhengxiaochuan at jd.com>
CC: sheepdog-users<mailto:sheepdog-users at lists.wpkg.org>; 江凌生<mailto:jianglingsheng at jd.com>
Subject: Re: Re: [sheepdog-users] sheepdog object cache


On Thu, Apr 7, 2016 at 10:45 AM, 郑晓川 <zhengxiaochuan at jd.com<mailto:zhengxiaochuan at jd.com>> wrote:
As i know , there are some bugs on the early version of qemu ( sheepdog driver ) , for example 2.0.0 ,which has "vdi obj inconsistent" 、“discard delete error” bugs 。

Which version of qemu and libvirt  is recommend for sheepdog usage。

AFAIK, the bug related to discard is fixed in v2.3.0 or later. And the latest libvirt would work fine.
Could you share the detail of the vdi object inconsistent problem? I'm not sure about the problem.

Thanks,
Hitoshi


Thanks a lot .

________________________________
郑晓川

From: Hitoshi Mitake<mailto:mitake.hitoshi at gmail.com>
Date: 2016-04-01 12:33
To: 郑晓川<mailto:zhengxiaochuan at jd.com>
CC: sheepdog-users<mailto:sheepdog-users at lists.wpkg.org>; 江凌生<mailto:jianglingsheng at jd.com>
Subject: Re: [sheepdog-users] sheepdog object cache
Hi,

On Mon, Mar 28, 2016 at 10:34 AM, 郑晓川 <zhengxiaochuan at jd.com<mailto:zhengxiaochuan at jd.com>> wrote:
Hi,all

what is the last released version , which  still has "object cache" feature ?
and
I want to kown is this version is  ready for  commercial use ?

v.0.9.3 is the latest stable version.



BTW , when  "Sheepdog v1.0"  will come ?

I hope we can release v1.0 early May.

Thanks,
Hitoshi


Best regards
________________________________


--
sheepdog-users mailing lists
sheepdog-users at lists.wpkg.org<mailto:sheepdog-users at lists.wpkg.org>
https://lists.wpkg.org/mailman/listinfo/sheepdog-users



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.wpkg.org/pipermail/sheepdog-users/attachments/20160407/401b6d62/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Catch.jpg
Type: image/jpeg
Size: 83978 bytes
Desc: Catch.jpg
URL: <http://lists.wpkg.org/pipermail/sheepdog-users/attachments/20160407/401b6d62/attachment-0001.jpg>


More information about the sheepdog-users mailing list