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). A command line utility is available via
dog(8). QEMU virtual machines use the sheep daemon via a block driver
available in qemu(1).
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), qemu(1), sheepfs(8), corosync_overview(8)
AUTHORS¶
This software is developed by the sheepdog community which may be reached via
mailing list at <sheepdog@lists.wpkg.org>.