From: Liu Yuan <namei.unix@gmail.com>
To: MORITA Kazutaka <morita.kazutaka@gmail.com>
Cc: Kevin Wolf <kwolf@redhat.com>,
sheepdog@lists.wpkg.org, qemu-devel@nongnu.org,
Stefan Hajnoczi <stefanha@redhat.com>
Subject: Re: [Qemu-devel] [sheepdog] [PATCH v2 2/2] sheepdog: support user-defined redundancy option
Date: Thu, 31 Oct 2013 11:07:56 +0800 [thread overview]
Message-ID: <20131031030755.GA3450@ubuntu-precise> (raw)
In-Reply-To: <87zjpqsg1a.wl%morita.kazutaka@gmail.com>
On Thu, Oct 31, 2013 at 04:41:05AM +0900, MORITA Kazutaka wrote:
> At Tue, 29 Oct 2013 16:25:52 +0800,
> Liu Yuan wrote:
> >
> > Sheepdog support two kinds of redundancy, full replication and erasure coding.
> >
> > # create a fully replicated vdi with x copies
> > -o redundancy=x (1 <= x <= SD_MAX_COPIES)
> >
> > # create a erasure coded vdi with x data strips and y parity strips
> > -o redundancy=x:y (x must be one of {2,4,8,16} and 1 <= y < SD_EC_MAX_STRIP)
> >
> > E.g, to convert a vdi into sheepdog vdi 'test' with 8:3 erasure coding scheme
> >
> > $ qemu-img convert -o redundancy=8:3 linux-0.2.img sheepdog:test
> >
> > Cc: Kevin Wolf <kwolf@redhat.com>
> > Cc: Stefan Hajnoczi <stefanha@redhat.com>
> > Signed-off-by: Liu Yuan <namei.unix@gmail.com>
> > ---
> > block/sheepdog.c | 78 ++++++++++++++++++++++++++++++++++++++++++++-
> > include/block/block_int.h | 1 +
> > 2 files changed, 78 insertions(+), 1 deletion(-)
> >
> > diff --git a/block/sheepdog.c b/block/sheepdog.c
> > index e66d2f8..bd7cfd6 100644
> > --- a/block/sheepdog.c
> > +++ b/block/sheepdog.c
> > @@ -91,6 +91,14 @@
> > #define SD_NR_VDIS (1U << 24)
> > #define SD_DATA_OBJ_SIZE (UINT64_C(1) << 22)
> > #define SD_MAX_VDI_SIZE (SD_DATA_OBJ_SIZE * MAX_DATA_OBJS)
> > +/*
> > + * For erasure coding, we use at most SD_EC_MAX_STRIP for data strips and
> > + * (SD_EC_MAX_STRIP - 1) for parity strips
> > + *
> > + * SD_MAX_COPIES is sum of number of dats trips and parity strips.
> > + */
> > +#define SD_EC_MAX_STRIP 16
> > +#define SD_MAX_COPIES (SD_EC_MAX_STRIP * 2 - 1)
> >
> > #define SD_INODE_SIZE (sizeof(SheepdogInode))
> > #define CURRENT_VDI_ID 0
> > @@ -1446,6 +1454,65 @@ out:
> > return ret;
> > }
> >
> > +static int64_t is_numeric(const char *s)
> > +{
> > + char *end;
> > + return strtosz_suffix(s, &end, STRTOSZ_DEFSUFFIX_B);
> > +}
>
> I think the type of the return value should be bool.
>
Actually I copied from cvtnum() it returns negative to indicate errors. Either
way I found a bug in this version. I'll try another approach to test if it is
numbers in next version.
Thanks
Yuan
prev parent reply other threads:[~2013-10-31 3:08 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-29 8:25 [Qemu-devel] [PATCH v2 0/2] sheepdog: add user-defined redundancy option Liu Yuan
2013-10-29 8:25 ` [Qemu-devel] [PATCH v2 1/2] sheepdog: refactor do_sd_create() Liu Yuan
2013-10-29 20:34 ` Benoît Canet
2013-10-29 8:25 ` [Qemu-devel] [PATCH v2 2/2] sheepdog: support user-defined redundancy option Liu Yuan
2013-10-29 20:40 ` Benoît Canet
2013-10-30 19:41 ` [Qemu-devel] [sheepdog] " MORITA Kazutaka
2013-10-31 3:07 ` Liu Yuan [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=20131031030755.GA3450@ubuntu-precise \
--to=namei.unix@gmail.com \
--cc=kwolf@redhat.com \
--cc=morita.kazutaka@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=sheepdog@lists.wpkg.org \
--cc=stefanha@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.