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

# dog(8)

Command line utility for the sheep daemon

## NAME

dog - Command line utility for the sheep daemon

## SYNOPSIS

**dog \<command\> \<subcommand\> \[options\]**

## DESCRIPTION

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

For more information, run 'dog \<command\> \<subcommand\> --help'.

## COMMAND & SUBCOMMAND

- **vdi check \[-s snapshot\] \[-a address\] \[-p port\] \[-h\] \<vdiname\>**

  Options:\
     \-s, --snapshot          specify a snapshot id or tag name\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit

  Description:\
     check and repair image's consistency

- **vdi create \[-P\] \[-y\] \[-c copies\] \[-a address\] \[-p port\] \[-h\] \[-r\] \[-v\] \<vdiname\> \<size\>**

  Options:\
     \-P, --prealloc          preallocate all the data objects\
     \-y, --hyper             create a hyper volume\
     \-c, --copies            specify the data redundancy level\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit\
     \-r, --raw               raw output mode: omit headers, separate fields with\
                             single spaces and print all sizes in decimal bytes\
     \-v, --verbose           print more information than default

  Description:\
     create an image

- **vdi snapshot \[-s snapshot\] \[-a address\] \[-p port\] \[-h\] \[-r\] \[-v\] \<vdiname\>**

  Options:\
     \-s, --snapshot          specify a snapshot id or tag name\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit\
     \-r, --raw               raw output mode: omit headers, separate fields with\
                             single spaces and print all sizes in decimal bytes\
     \-v, --verbose           print more information than default

  Description:\
     create a snapshot

- **vdi clone \[-s snapshot\] \[-P\] \[-c copies\] \[-a address\] \[-p port\] \[-h\] \[-r\] \[-v\] \<src vdi\> \<dst vdi\>**

  Options:\
     \-s, --snapshot          specify a snapshot id or tag name\
     \-P, --prealloc          preallocate all the data objects\
     \-c, --copies            specify the data redundancy level\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit\
     \-r, --raw               raw output mode: omit headers, separate fields with\
                             single spaces and print all sizes in decimal bytes\
     \-v, --verbose           print more information than default

  Description:\
     clone an image

- **vdi delete \[-s snapshot\] \[-a address\] \[-p port\] \[-h\] \<vdiname\>**

  Options:\
     \-s, --snapshot          specify a snapshot id or tag name\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit

  Description:\
     delete an image

- **vdi rollback \[-s snapshot\] \[-a address\] \[-p port\] \[-h\] \[-f\] \[-r\] \[-v\] \<vdiname\>**

  Options:\
     \-s, --snapshot          specify a snapshot id or tag name\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit\
     \-f, --force             do operation forcibly\
     \-r, --raw               raw output mode: omit headers, separate fields with\
                             single spaces and print all sizes in decimal bytes\
     \-v, --verbose           print more information than default

  Description:\
     rollback to a snapshot

- **vdi list \[-a address\] \[-p port\] \[-r\] \[-h\] \[vdiname\]**

  Options:\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-r, --raw               raw output mode: omit headers, separate fields with\
                             single spaces and print all sizes in decimal bytes\
     \-h, --help              display this help and exit

  Description:\
     list images

- **vdi tree \[-a address\] \[-p port\] \[-h\]**

  Options:\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit

  Description:\
     show images in tree view format

- **vdi graph \[-a address\] \[-p port\] \[-h\]**

  Options:\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit

  Description:\
     show images in Graphviz dot format

- **vdi object \[-i index\] \[-s snapshot\] \[-a address\] \[-p port\] \[-h\] \<vdiname\>**

  Options:\
     \-i, --index             specify the index of data objects\
     \-s, --snapshot          specify a snapshot id or tag name\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit

  Description:\
     show object information in the image

- **vdi track \[-i index\] \[-s snapshot\] \[-a address\] \[-p port\] \[-h\] \[-o oid\] \<vdiname\>**

  Options:\
     \-i, --index             specify the index of data objects\
     \-s, --snapshot          specify a snapshot id or tag name\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit\
     \-o, --oid               specify the object id of the tracking object

  Description:\
     show the object epoch trace in the image

- **vdi setattr \[-d\] \[-x\] \[-a address\] \[-p port\] \[-h\] \<vdiname\> \<key\> \[value\]**

  Options:\
     \-d, --delete            delete a key\
     \-x, --exclusive         write in an exclusive mode\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit

  Description:\
     set a VDI attribute

- **vdi getattr \[-a address\] \[-p port\] \[-h\] \<vdiname\> \<key\>**

  Options:\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit

  Description:\
     get a VDI attribute

- **vdi resize \[-a address\] \[-p port\] \[-h\] \<vdiname\> \<new size\>**

  Options:\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit

  Description:\
     resize an image

- **vdi read \[-s snapshot\] \[-a address\] \[-p port\] \[-h\] \<vdiname\> \[\<offset\> \[\<len\>\]\]**

  Options:\
     \-s, --snapshot          specify a snapshot id or tag name\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit

  Description:\
     read data from an image

- **vdi write \[-a address\] \[-p port\] \[-w\] \[-h\] \<vdiname\> \[\<offset\> \[\<len\>\]\]**

  Options:\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-w, --writeback         use writeback mode\
     \-h, --help              display this help and exit

  Description:\
     write data to an image

- **vdi backup \[-s snapshot\] \[-F from\] \[-a address\] \[-p port\] \[-h\] \<vdiname\> \<backup\>**

  Options:\
     \-s, --snapshot          specify a snapshot id or tag name\
     \-F, --from              create a differential backup from the snapshot\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit

  Description:\
     create an incremental backup between two snapshots

- **vdi restore \[-s snapshot\] \[-a address\] \[-p port\] \[-h\] \<vdiname\> \<backup\>**

  Options:\
     \-s, --snapshot          specify a snapshot id or tag name\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit

  Description:\
     restore snapshot images from a backup

- **vdi cache {flush\|delete\|info\|purge} \[-s snapshot\] \[-a address\] \[-p port\] \[-h\] \<vdiname\>**

  Available subcommands:\
     flush                   flush the cache of the vdi specified.\
     delete                  delete the cache of the vdi specified in all nodes.\
     info                    show usage of the cache\
     purge                   purge the cache of all vdi (no flush)

  Options:\
     \-s, --snapshot          specify a snapshot id or tag name\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit

  Description:\
     Run 'dog vdi cache' for more information

- **node kill \[-a address\] \[-p port\] \[-r\] \[-h\] \[-l\] \<node id\>**

  Options:\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-r, --raw               raw output mode: omit headers, separate fields with\
                             single spaces and print all sizes in decimal bytes\
     \-h, --help              display this help and exit\
     \-l, --local             issue request to local node

  Description:\
     kill node

- **node list \[-a address\] \[-p port\] \[-r\] \[-h\]**

  Options:\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-r, --raw               raw output mode: omit headers, separate fields with\
                             single spaces and print all sizes in decimal bytes\
     \-h, --help              display this help and exit

  Description:\
     list nodes

- **node info \[-a address\] \[-p port\] \[-r\] \[-h\]**

  Options:\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-r, --raw               raw output mode: omit headers, separate fields with\
                             single spaces and print all sizes in decimal bytes\
     \-h, --help              display this help and exit

  Description:\
     show information about each node

- **node recovery \[-a address\] \[-p port\] \[-h\] \[-P\] \[-r\]**

  Options:\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit\
     \-P, --progress          show progress of recovery in the node\
     \-r, --raw               raw output mode: omit headers, separate fields with\
                             single spaces and print all sizes in decimal bytes

  Description:\
     show recovery information of nodes

- **node md {info\|plug\|unplug} \[-a address\] \[-p port\] \[-r\] \[-A\] \[-h\] \[disks\]**

  Available subcommands:\
     info                    show multi-disk information\
     plug                    plug more disk(s) into node\
     unplug                  unplug disk(s) from node

  Options:\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-r, --raw               raw output mode: omit headers, separate fields with\
                             single spaces and print all sizes in decimal bytes\
     \-A, --all               show md information of all the nodes\
     \-h, --help              display this help and exit

  Description:\
     See 'dog node md' for more information

- **node stat \[-a address\] \[-p port\] \[-r\] \[-w\] \[-h\]**

  Options:\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-r, --raw               raw output mode: omit headers, separate fields with\
                             single spaces and print all sizes in decimal bytes\
     \-w, --watch             watch the stat every second\
     \-h, --help              display this help and exit

  Description:\
     show stat information about the node

- **node log level \[-a address\] \[-p port\] \[-h\]**

  Available subcommands:\
     level                   manipulate loglevel

  Options:\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit

  Description:\
     show or set log level of the node

- **cluster info \[-a address\] \[-p port\] \[-r\] \[-h\] \[-s\]**

  Options:\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-r, --raw               raw output mode: omit headers, separate fields with\
                             single spaces and print all sizes in decimal bytes\
     \-h, --help              display this help and exit\
     \-s, --backend           show backend store information

  Description:\
     show cluster information

- **cluster format \[-b store\] \[-c copies\] \[-t\] \[-a address\] \[-p port\] \[-h\]**

  Options:\
     \-b, --store             specify backend store\
     \-c, --copies            specify the default data redundancy (number of copies)\
     \-t, --strict            do not serve write request if number of nodes is not sufficient\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit

  Description:\
     create a Sheepdog store

- **cluster shutdown \[-a address\] \[-p port\] \[-h\]**

  Options:\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit

  Description:\
     stop Sheepdog

- **cluster snapshot {save\|list\|load} \[-a address\] \[-p port\] \[-h\] \<tag\|idx\> \<path\>**

  Available subcommands:\
     save                    save snapshot to localpath\
     list                    list snapshot of localpath\
     load                    load snapshot from localpath

  Options:\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit

  Description:\
     snapshot/restore the cluster

- **cluster recover {force\|enable\|disable} \[-a address\] \[-f\] \[-p port\] \[-h\]**

  Available subcommands:\
     force                   force recover cluster immediately\
     enable                  enable automatic recovery and run once recover if necessary\
     disable                 disable automatic recovery

  Options:\
     \-a, --address           specify the daemon address (default: localhost)\
     \-f, --force             do not prompt for confirmation\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit

  Description:\
     See 'dog cluster recover' for more information

- **cluster reweight \[-a address\] \[-p port\] \[-h\]**

  Options:\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit

  Description:\
     reweight the cluster

- **cluster check \[-a address\] \[-p port\] \[-h\]**

  Options:\
     \-a, --address           specify the daemon address (default: localhost)\
     \-p, --port              specify the daemon port\
     \-h, --help              display this help and exit

  Description:\
     check and repair cluster

## DEPENDENCIES

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

## FILES

none

## SEE ALSO

**[sheep(8)](/sheep/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\>.
