SHEEPDOG(8)                 System Manager's Manual                SHEEPDOG(8)

       sheep - Distributed Block Storage System for QEMU

       sheep [options] [PATH]

       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).

       -b, --bindaddr
              specify IP address of interface to listen on


                $ sheep -b ...

              This tries to teach sheep listen to NIC of


                $ sheep -b ...

              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: connection-string,timeout=value (default
              as 3000)


                $ sheep -c

              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.  cluster_id is used to identify which cluster it
              belongs to, if not set, /sheepdog is used internally as default.

       -D, --directio
              use direct IO for backend store

       -f, --foreground
              make the program run in foreground

       -g, --gateway
              make the program run as a gateway mode

       -h, --help
              display this help and exit

       -i, --ioaddr
              use separate network card to handle IO requests (default:


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

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

       -j, --journal
              use journal file to log all the write operations. (default:

              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


                $ 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])


                $ 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, --recovery
              specify the recovery speed throttling

              Available arguments:
                max=: object recovery process maximum count of each interval
                interval=: object recovery interval time (millisec) Example:

                $ sheep -R max=50,interval=1000 ...

       -u, --upgrade
              upgrade to the latest data layout

       -v, --version
              show the version

              Sheepdog daemon version 1.0.1

       -V, --vnodes
              set number of vnodes


                $ sheep -V 128

                set number of vnodes

       -w, --wq-threads
              specify a number of threads for workqueue

       -W, --wildcard-recovery
              wildcard recovery for first time

       -y, --myaddr
              specify the address advertised to other sheep


                $ sheep -y ...

              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)


                $ 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

       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

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

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

       dog(8), qemu(1), sheepfs(8), corosync_overview(8)

       This software is developed by the sheepdog community which may be
       reached via mailing list at <>.

                                  2019-02-02                       SHEEPDOG(8)