All Projects → sheepdog → Sheepdog

sheepdog / Sheepdog

Licence: gpl-2.0
Distributed Storage System for QEMU

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Sheepdog

Tools
Combination of different utilities, have fun!
Stars: ✭ 166 (-81.47%)
Mutual labels:  virtualization, qemu
Kvm Guest Drivers Windows
Windows paravirtualized
Stars: ✭ 892 (-0.45%)
Mutual labels:  virtualization, qemu
blog
retrohunblog
Stars: ✭ 46 (-94.87%)
Mutual labels:  virtualization, qemu
Moosefs
MooseFS – Open Source, Petabyte, Fault-Tolerant, Highly Performing, Scalable Network Distributed File System (Software-Defined Storage)
Stars: ✭ 1,025 (+14.4%)
Mutual labels:  storage, distributed-storage
vzvol
vzvol is a general use ZFS zvol management tool, that handles creation, destruction, listing, and formatting with various FSes, in an easy to use single program
Stars: ✭ 27 (-96.99%)
Mutual labels:  storage, virtualization
Distributedsystem Series
📚 深入浅出分布式基础架构,Linux 与操作系统篇 | 分布式系统篇 | 分布式计算篇 | 数据库篇 | 网络篇 | 虚拟化与编排篇 | 大数据与云计算篇
Stars: ✭ 1,092 (+21.88%)
Mutual labels:  storage, virtualization
python-negotiator
Scriptable KVM/QEMU guest agent implemented in Python
Stars: ✭ 40 (-95.54%)
Mutual labels:  virtualization, qemu
Kata Containers
Kata Containers version 2.x repository. Kata Containers is an open source project and community working to build a standard implementation of lightweight Virtual Machines (VMs) that feel and perform like containers, but provide the workload isolation and security advantages of VMs. https://katacontainers.io/
Stars: ✭ 1,053 (+17.52%)
Mutual labels:  virtualization, qemu
Project-Mendacius
A GUI based virtualisation tool for running Linux on macOS Big Sur (x86 or arm64)
Stars: ✭ 107 (-88.06%)
Mutual labels:  virtualization, qemu
DTC
DTC is a high performance Distributed Table Cache system designed by JD.com that offering hotspot data cache for databases in order to reduce pressure of database and improve QPS.
Stars: ✭ 21 (-97.66%)
Mutual labels:  storage, distributed-storage
Runtime
Kata Containers version 1.x runtime (for version 2.x see https://github.com/kata-containers/kata-containers).
Stars: ✭ 2,103 (+134.71%)
Mutual labels:  virtualization, qemu
Tks
Enable enthusiasts and administrators alike to easily provision highly available and production-ready Kubernetes clusters on Proxmox VE.
Stars: ✭ 319 (-64.4%)
Mutual labels:  virtualization, qemu
Node Libvirt
libvirt bindings for google v8 javascript engine (nodejs addon)
Stars: ✭ 162 (-81.92%)
Mutual labels:  virtualization, qemu
Storj
Ongoing Storj v3 development. Decentralized cloud object storage that is affordable, easy to use, private, and secure.
Stars: ✭ 1,278 (+42.63%)
Mutual labels:  storage, distributed-storage
Demo
Easy to use KubeVirt demo based on minikube.
Stars: ✭ 88 (-90.18%)
Mutual labels:  virtualization, qemu
node-qemu-server
Free GUI / Frontend / Management tool for simple setup, configure and control virtual machines (qemu / kvm) within your HTML5 Webbrowser. Virtualization with Node.js / Currently under complete rewrite.
Stars: ✭ 41 (-95.42%)
Mutual labels:  virtualization, qemu
Osx Kvm
Run macOS on QEMU/KVM. With OpenCore + Big Sur + Monterey support now! Only commercial (paid) support is available now to avoid spammy issues. No Mac system is required.
Stars: ✭ 12,926 (+1342.63%)
Mutual labels:  qemu, virtualization
Nemu
Modern Hypervisor for the Cloud
Stars: ✭ 887 (-1%)
Mutual labels:  virtualization, qemu
virtnbdbackup
Backup utiliy for Libvirt / qemu / kvm supporting incremental and differencial backups.
Stars: ✭ 62 (-93.08%)
Mutual labels:  virtualization, qemu
Learn Kvm
Qemu KVM(Kernel Virtual Machine)学习笔记
Stars: ✭ 305 (-65.96%)
Mutual labels:  virtualization, qemu

Sheepdog: Distributed Storage System for KVM

Overview

Sheepdog is a distributed storage system for QEMU. It provides highly available block level storage volumes to virtual machines. Sheepdog supports advanced volume management features such as snapshot, cloning, and thin provisioning.

Sheepdog is an Open Source software, released under the terms of the GNU General Public License version 2.

For the latest information about Sheepdog, please visit our website at:

http://sheepdog.github.io/sheepdog/

And (recommend for new comers) wiki at: https://github.com/sheepdog/sheepdog/wiki/

Requirements

  • Three or more x86-64 machines
  • Corosync cluster engine

Install

Please read the INSTALL file distributed with this package for detailed instructions on installing or compiling from source.

Usage

  • Cluster Management Backends

    Sheepdog uses a cluster management backend to manage membership and broadcast messages to the cluster nodes.

    For now, sheepdog can use local driver (for development on a single box), corosync (the default), zookeeper and Accord.

  • Local Driver

    This driver just makes use of UNIX IPC mechanism to manage the membership on a single box, where we start multiple 'sheep' processes to simulate the cluster. It is very easy and fast setup and especially useful to test functionality without involving any other software.

    To set up a 3 node cluster using local driver in one liner bash:

    $ mkdir /path/to/store
    $ for i in 0 1 2; do sheep -c local /path/to/store/$i -z $i -p 700$i;done
    
  • Configure corosync.

    Nearly every modern Linux distribution has x86_64 corosync binaries pre-built available via their repositories. We recommend you use these packages if they are available on your distribution.

    For debian package based systems:

    $ sudo aptitude install corosync libcorosync-dev
    

    For RPM package based systems:

    $ sudo yum install corosynclib-devel
    

    Reference our wiki, the corosync(8) and corosync.conf(5) man page for further details.

  • Setup Sheepdog

    1. Launch sheepdog on each machines of the cluster.

      $ sheep /store_dir

      Notes: /store_dir is a directory to store objects. The directory must be on the filesystem with an xattr support. In case of ext3, you need to add 'user_xattr' to the mount options.

      $ sudo mount -o remount,user_xattr /store_device

    2. Make fs

      $ dog cluster format --copies=3

      --copies specifies the number of default data redundancy. In this case, the replicated data is stored on three machines.

    3. Check cluster state

      Following list shows that Sheepdog is running on 32 nodes.

      $ dog node list Idx Node id (FNV-1a) - Host:Port

      0 0308164db75cff7e - 10.68.13.15:7000

      • 1 03104d8b4315c8e4 - 10.68.13.1:7000 2 0ab18c565bc14aea - 10.68.13.3:7000 3 0c0d27f0ac395f5d - 10.68.13.16:7000 4 127ee4802991f308 - 10.68.13.13:7000 5 135ff2beab2a9809 - 10.68.14.5:7000 6 17bd6240eab65870 - 10.68.14.4:7000 7 1cf35757cbf47d7b - 10.68.13.10:7000 8 1df9580b8960a992 - 10.68.13.11:7000 9 29307d3fa5a04f78 - 10.68.14.12:7000 10 29dcb3474e31d4f3 - 10.68.14.15:7000 11 29e089c98dd2a144 - 10.68.14.16:7000 12 2a118b7e2738f479 - 10.68.13.4:7000 13 3d6aea26ba79d75f - 10.68.13.6:7000 14 42f9444ead801767 - 10.68.14.11:7000 15 562c6f38283d09fe - 10.68.14.2:7000 16 5dd5e540cca1556a - 10.68.14.6:7000 17 6c12a5d10f10e291 - 10.68.14.13:7000 18 6dae1d955ca72d96 - 10.68.13.7:7000 19 711db0f5fa40b412 - 10.68.14.14:7000 20 7c6b95212ee7c085 - 10.68.14.9:7000 21 7d010c31bf11df73 - 10.68.13.2:7000 22 82c43e908b1f3f01 - 10.68.13.12:7000 23 931d2de0aaf61cf5 - 10.68.13.8:7000 24 961d9d391e6021e7 - 10.68.13.14:7000 25 9a3ef6fa1081026c - 10.68.13.9:7000 26 b0b3d300fed8bc26 - 10.68.14.10:7000 27 b0f08fb98c8f5edc - 10.68.14.8:7000 28 b9cc316dc5aba880 - 10.68.13.5:7000 29 d9eda1ec29c2eeeb - 10.68.14.7:7000 30 e53cebb2617c86fd - 10.68.14.1:7000 31 ea46913c4999ccdf - 10.68.14.3:7000
  • Create a virtual machine image

    1. Create a 256 GB virtual machine image of Alice.

      $ qemu-img create sheepdog:Alice 256G

    2. You can also convert from existing KVM images to Sheepdog ones.

      $ qemu-img convert ~/amd64.raw sheepdog:Bob

    3. See Sheepdog images by the following command.

      $ dog vdi list name id size used shared creation time object id

      Bob 0 2.0 GB 1.6 GB 0.0 MB 2010-03-23 16:16 80000 Alice 0 256 GB 0.0 MB 0.0 MB 2010-03-23 16:16 40000

  • Boot the virtual machine

    1. Boot the virtual machine.

      $ qemu-system-x86_64 -hda sheepdog:Alice

    2. Following command checks used images.

      $ dog vm list Name |Vdi size |Allocated| Shared | Status ----------------+---------+---------+---------+------------ Bob | 2.0 GB| 1.6 GB| 0.0 MB| running on xx.xx.xx.xx Alice | 256 GB| 0.0 MB| 0.0 MB| not running

  • Snapshot

    1. Snapshot

      $ qemu-img snapshot -c name sheepdog:Alice

      -c flag is meaningless currently

    2. After getting snapshot, a new virtual machine images are added as a not- current image.

      $ dog vdi list name id size used shared creation time object id

      Bob 0 2.0 GB 1.6 GB 0.0 MB 2010-03-23 16:16 80000 Alice 0 256 GB 0.0 MB 0.0 MB 2010-03-23 16:21 c0000 s Alice 1 256 GB 0.0 MB 0.0 MB 2010-03-23 16:16 40000

    3. You can boot from the snapshot image by spcifing tag id

      $ qemu-system-x86_64 -hda sheepdog:Alice:1

  • Cloning from the snapshot

    1. Create a Charlie image as a clone of Alice's image.

      $ qemu-img create -b sheepdog:Alice:1 sheepdog:Charlie

    2. Charlie's image is added to the virtual machine list.

      $ dog vdi list name id size used shared creation time object id

      Bob 0 2.0 GB 1.6 GB 0.0 MB 2010-03-23 16:16 80000 Alice 0 256 GB 0.0 MB 0.0 MB 2010-03-23 16:21 c0000 s Alice 1 256 GB 0.0 MB 0.0 MB 2010-03-23 16:16 40000 Charlie 0 256 GB 0.0 MB 0.0 MB 2010-03-23 16:23 100000

Test Environment

- Debian squeeze amd64
- Debian lenny amd64

=============================================================================== Copyright (C) 2009-2011, Nippon Telegraph and Telephone Corporation.

Join the chat at https://gitter.im/sheepdog/sheepdog

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].