Patchwork Re: [ANNOUNCE] Sheepdog: Distributed Storage System for KVM

login
register
mail settings
Submitter MORITA Kazutaka
Date Oct. 23, 2009, 9:59 a.m.
Message ID <8fd1d76d0910230259y24d067d5w3d3fca2c448f96b6@mail.gmail.com>
Download mbox | patch
Permalink /patch/36775/
State New
Headers show

Comments

MORITA Kazutaka - Oct. 23, 2009, 9:59 a.m.
Hello,

Does the following patch work for you?



On Wed, Oct 21, 2009 at 5:45 PM, Nikolai K. Bochev
<n.bochev@grandstarco.com> wrote:
> Hello,
>
> I am getting the following error trying to compile sheepdog on Ubuntu 9.10 ( 2.6.31-14 x64 ) :
>
> cd shepherd; make
> make[1]: Entering directory `/home/shiny/Packages/sheepdog-2009102101/shepherd'
> cc -c -g -O2 -Wall -Wstrict-prototypes -I../include -D_GNU_SOURCE shepherd.c -o shepherd.o
> shepherd.c: In function ‘main’:
> shepherd.c:300: warning: dereferencing pointer ‘hdr.55’ does break strict-aliasing rules
> shepherd.c:300: note: initialized from here
> cc -c -g -O2 -Wall -Wstrict-prototypes -I../include -D_GNU_SOURCE treeview.c -o treeview.o
> cc -c -g -O2 -Wall -Wstrict-prototypes -I../include -D_GNU_SOURCE ../lib/event.c -o ../lib/event.o
> cc -c -g -O2 -Wall -Wstrict-prototypes -I../include -D_GNU_SOURCE ../lib/net.c -o ../lib/net.o
> ../lib/net.c: In function ‘write_object’:
> ../lib/net.c:358: warning: ‘vosts’ may be used uninitialized in this function
> cc -c -g -O2 -Wall -Wstrict-prototypes -I../include -D_GNU_SOURCE ../lib/logger.c -o ../lib/logger.o
> cc shepherd.o treeview.o ../lib/event.o ../lib/net.o ../lib/logger.o -o shepherd -lncurses -lcrypto
> make[1]: Leaving directory `/home/shiny/Packages/sheepdog-2009102101/shepherd'
> cd sheep; make
> make[1]: Entering directory `/home/shiny/Packages/sheepdog-2009102101/sheep'
> cc -c -g -O2 -Wall -Wstrict-prototypes -I../include -D_GNU_SOURCE sheep.c -o sheep.o
> cc -c -g -O2 -Wall -Wstrict-prototypes -I../include -D_GNU_SOURCE store.c -o store.o
> cc -c -g -O2 -Wall -Wstrict-prototypes -I../include -D_GNU_SOURCE net.c -o net.o
> cc -c -g -O2 -Wall -Wstrict-prototypes -I../include -D_GNU_SOURCE work.c -o work.o
> In file included from /usr/include/asm/fcntl.h:1,
>                 from /usr/include/linux/fcntl.h:4,
>                 from /usr/include/linux/signalfd.h:13,
>                 from work.c:31:
> /usr/include/asm-generic/fcntl.h:117: error: redefinition of ‘struct flock’
> /usr/include/asm-generic/fcntl.h:140: error: redefinition of ‘struct flock64’
> make[1]: *** [work.o] Error 1
> make[1]: Leaving directory `/home/shiny/Packages/sheepdog-2009102101/sheep'
> make: *** [all] Error 2
>
> I have all the required libs installed. Patching and compiling qemu-kvm went flawless.
>
> ----- Original Message -----
> From: "MORITA Kazutaka" <morita.kazutaka@lab.ntt.co.jp>
> To: kvm@vger.kernel.org, qemu-devel@nongnu.org, linux-fsdevel@vger.kernel.org
> Sent: Wednesday, October 21, 2009 8:13:47 AM
> Subject: [ANNOUNCE] Sheepdog: Distributed Storage System for KVM
>
> Hi everyone,
>
> Sheepdog is a distributed storage system for KVM/QEMU. It provides
> highly available block level storage volumes to VMs like Amazon EBS.
> Sheepdog supports advanced volume management features such as snapshot,
> cloning, and thin provisioning. Sheepdog runs on several tens or hundreds
> of nodes, and the architecture is fully symmetric; there is no central
> node such as a meta-data server.
>
> The following list describes the features of Sheepdog.
>
>     * Linear scalability in performance and capacity
>     * No single point of failure
>     * Redundant architecture (data is written to multiple nodes)
>     - Tolerance against network failure
>     * Zero configuration (newly added machines will join the cluster automatically)
>     - Autonomous load balancing
>     * Snapshot
>     - Online snapshot from qemu-monitor
>     * Clone from a snapshot volume
>     * Thin provisioning
>     - Amazon EBS API support (to use from a Eucalyptus instance)
>
> (* = current features, - = on our todo list)
>
> More details and download links are here:
>
> http://www.osrg.net/sheepdog/
>
> Note that the code is still in an early stage.
> There are some critical TODO items:
>
>     - VM image deletion support
>     - Support architectures other than X86_64
>     - Data recoverys
>     - Free space management
>     - Guarantee reliability and availability under heavy load
>     - Performance improvement
>     - Reclaim unused blocks
>     - More documentation
>
> We hope finding people interested in working together.
> Enjoy!
>
>
> Here are examples:
>
> - create images
>
> $ kvm-img create -f sheepdog "Alice's Disk" 256G
> $ kvm-img create -f sheepdog "Bob's Disk" 256G
>
> - list images
>
> $ shepherd info -t vdi
>    40000 : Alice's Disk  256 GB (allocated: 0 MB, shared: 0 MB), 2009-10-15
> 16:17:18, tag:        0, current
>    80000 : Bob's Disk    256 GB (allocated: 0 MB, shared: 0 MB), 2009-10-15
> 16:29:20, tag:        0, current
>
> - start up a virtual machine
>
> $ kvm --drive format=sheepdog,file="Alice's Disk"
>
> - create a snapshot
>
> $ kvm-img snapshot -c name sheepdog:"Alice's Disk"
>
> - clone from a snapshot
>
> $ kvm-img create -b sheepdog:"Alice's Disk":0 -f sheepdog "Charlie's Disk"
>
>
> Thanks.
>
> --
> MORITA, Kazutaka
>
> NTT Cyber Space Labs
> OSS Computing Project
> Kernel Group
> E-mail: morita.kazutaka@lab.ntt.co.jp
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

Patch

diff --git a/sheep/work.c b/sheep/work.c
index 4df8dc0..45f362d 100644
--- a/sheep/work.c
+++ b/sheep/work.c
@@ -28,6 +28,7 @@ 
 #include <syscall.h>
 #include <sys/types.h>
 #include <linux/types.h>
+#define _LINUX_FCNTL_H
 #include <linux/signalfd.h>

 #include "list.h"