---
name: "sheep"
section: "8"
platform: "linux"
package: "sheepdog"
version: "0.8.3-4.1+b1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/sheep"
---

# sheep(8)

Distributed Block Storage System for QEMU

## NAME

sheep - Distributed Block Storage System for QEMU

## SYNOPSIS

**sheep \[options\] \[PATH\]**

## DESCRIPTION

**sheep** - 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. The architecture of Sheepdog is fully symmetric; there is no central node such as a meta-data server.

The server daemon is called [sheep(8)](/sheep/8.md).  A command line utility is available via [dog(8)](/dog/8.md).  QEMU virtual machines use the sheep daemon via a block driver available in [qemu(1)](/qemu/1.md).

## OPTIONS

- **-b, --bindaddr**

  specify IP address of interface to listen on

  Example:

    $ sheep -b 192.168.1.1 ...

  This tries to teach sheep listen to NIC of 192.168.1.1.

  Example:

    $ sheep -b 0.0.0.0 ...

  This tries to teach sheep listen to all the NICs available. It can be useful when you want sheep to response dog without specified address and port.

- **-c, --cluster**

  specify the cluster driver (default: corosync)

  Available arguments:\
     local: use local driver\
     corosync: use corosync driver\
     zookeeper: use zookeeper driver, need extra arguments

    zookeeper arguments: address-list,tiemout=value (default as 3000)

  Example:

    $ sheep -c zookeeper:IP1:PORT1,IP2:PORT2,IP3:PORT3,timeout=1000 ...

  This tries to use 3 node zookeeper cluster, which can be reached by IP1:PORT1, IP2:PORT2, IP3:PORT3 to manage membership and broadcast message and set the timeout of node heartbeat as 1000 milliseconds

- **-D, --directio**

  use direct IO for backend store

- **-g, --gateway**

  make the progam run as a gateway mode

- **-h, --help**

  display this help and exit

- **-i, --ioaddr**

  use separate network card to handle IO requests (default: disabled)

  Example:

    $ sheep -i host=192.168.1.1,port=7002 ...

  This tries to add a dedicated IO NIC of 192.168.1.1:7002 to transfer data. If IO NIC is down, sheep will fallback to non IO NIC to transfer data.

- **-j, --journal**

  use jouranl file to log all the write operations. (default: disabled)

  Available arguments:\
     size=: size of the journal in megabyes\
     dir=: path to the location of the journal (default: $STORE)\
     skip: if specified, skip the recovery at startup

  Example:

    $ sheep -j dir=/journal,size=1G

  This tries to use /journal as the journal storage of the size 1G

- **-l, --log**

  specify the log level, the log directory and the log format(log level default: 6 \[SDOG\_INFO\])

  Example:

    $ sheep -l dir=/var/log/,level=debug,format=server ...

  Available arguments:\
     dir=: path to the location of sheep.log\
     level=: log level of sheep.log\
     format=: log format type\
     dst=: log destination type

  if dir is not specified, use metastore directory

  Available log levels:\
     Level      Description\
     emerg      system has failed and is unusable\
     alert      action must be taken immediately\
     crit       critical conditions\
     err        error conditions\
     warning    warning conditions\
     notice     normal but significant conditions\
     info       informational notices\
     debug      debugging messages default log level is info

  Available log format:\
     FormatType      Description\
     default         raw format\
     server          raw format with timestamp\
     json            json format

  Available log destination:\
     DestinationType    Description\
     default            dedicated file in a directory used by sheep\
     syslog             syslog of the system\
     stdout             standard output

- **-n, --nosync**

  drop O\_SYNC for write of backend

- **-p, --port**

  specify the TCP port on which to listen (default: 7000)

- **-P, --pidfile**

  create a pid file

- **-r, --http**

  enable http service. (default: disabled)

  Available arguments:\
     host=: specify a host to communicate with http server (default: localhost)\
     port=: specify a port to communicate with http server (default: 8000)\
     swift: enable swift API Example:

    $ sheep -r host=localhost,port=7001,swift ...

  This tries to enable Swift API and use localhost:7001 to communicate with http server.

- **-u, --upgrade**

  upgrade to the latest data layout

- **-v, --version**

  show the version

  Sheepdog daemon version 0.8.3

- **-w, --cache**

  enable object cache

  Available arguments:\
     size=: size of the cache in megabyes\
     dir=: path to the location of the cache (default: $STORE/cache)\
     directio: use directio mode for cache IO, if not specified use buffered IO

  Example:

    $ sheep -w size=200G,dir=/my\_ssd,directio ...

  This tries to use /my\_ssd as the cache storage with 200G allocted to the cache in directio mode

- **-y, --myaddr**

  specify the address advertised to other sheep

  Example:

    $ sheep -y 192.168.1.1:7000 ...

  This tries to tell other nodes through what address they can talk to this sheep.

- **-z, --zone**

  specify the zone id (default: determined by listen address)

  Example:

    $ sheep -z 1 ...

  This tries to set the zone ID of this sheep to 1 and sheepdog won't store more than one copy of any object into this same zone

## PATH

Proper LSB systems will store sheepdog files in /var/lib/sheepdog.  The init script uses this directory by default.  The directory must be on a filesystem with xattr support.  In the case of ext3, user\_xattr should be added to the mount options.

mount -o remount,user\_xattr /var/lib/sheepdog

## DEPENDENCIES

**sheepdog** requires QEMU 0.13.z or later and Corosync 1.y.z.

## FILES

**/var/lib/sheepdog - Directory containing block storage information**

## SEE ALSO

**[dog(8)](/dog/8.md),** **[qemu(1)](/qemu/1.md),** **[sheepfs(8)](/sheepfs/8.md),** **[corosync\_overview(8)](/corosync_overview/8.md)**

## AUTHORS

This software is developed by the sheepdog community which may be reached via mailing list at \<sheepdog@lists.wpkg.org\>.
