SHEEPDOG(8)
π SHEEPDOG(8) π
Bestie, welcome to the SHEEPDOG(8) page from the System Manager's Manual. This is the manual for dog, and it's giving iconic distributed-storage energy. π¦
β¨ NAME β¨
dog β command line utility for the sheep daemon. That's the whole vibe: one CLI, one daemon bestie, zero central drama. π
πΈ SYNOPSIS πΈ
dog <command> <subcommand> [options]
π DESCRIPTION π
Okay so 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). A command line utility is available via dog(8). QEMU virtual machines use the sheep daemon via a block driver available in qemu(1).
For more information, run dog <command> <subcommand> --help. No cap, that's the cheat code. β¨
π COMMAND & SUBCOMMAND π
π vdi check π
vdi check [-s snapshot] [-e] [-a address] [-p port] [-h] [-T] <vdiname>
Options
-s,--snapshotβ specify a snapshot id or tag name-e,--existβ only check objects exist or not, neither comparing nor repairing-a,--addressβ specify the daemon address (default:localhost)-p,--portβ specify the daemon port-h,--helpβ display this help and exit-T,--timeβ show elapsed time
Description
check and repair image's consistency. It's the glow-up check for your image, bestie. π
π vdi create π
vdi create [-P] [-y] [-c copies] [-a address] [-p port] [-h] [-r] [-v] [-z block_size_shift] [-T] <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-z,--block_size_shiftβ specify the bit shift num for data object size-T,--timeβ show elapsed time
Description
create an image. New image, new me, periodt. π
π vdi snapshot π
vdi snapshot [-s snapshot] [-a address] [-p port] [-h] [-r] [-v] [-T] [-R] <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-T,--timeβ show elapsed time-R,--reduce-identical-snapshotsβ do not create snapshot if working VDI doesn't have its own objects
Description
create a snapshot. It's giving freeze-frame main character moment. πΈ
π vdi clone π
vdi clone [-s snapshot] [-P] [-n] [-a address] [-p port] [-h] [-r] [-v] [-T] <src vdi> <dst vdi>
Options
-s,--snapshotβ specify a snapshot id or tag name-P,--preallocβ preallocate all the data objects-n,--no-shareβ share nothing with its parent-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-T,--timeβ show elapsed time
Description
clone an image. Twin era, but make it storage. π―
π vdi delete π
vdi delete [-s snapshot] [-a address] [-p port] [-h] [-T] <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-T,--timeβ show elapsed time
Description
delete an image. Say bye, but like, responsibly. π
π vdi rollback π
vdi rollback [-s snapshot] [-a address] [-p port] [-h] [-f] [-r] [-v] [-T] <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-T,--timeβ show elapsed time
Description
rollback to a snapshot. Rewind time, bestie. βͺ
π vdi list π
vdi list [-a address] [-p port] [-r] [-h] [-o oid] [-T] [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-o,--oidβ specify the object id of the tracking object-T,--timeβ show elapsed time
Description
list images. It's the roll call, and everyone looks cute. πβ¨
π vdi tree π
vdi tree [-a address] [-p port] [-h] [-T]
Options
-a,--addressβ specify the daemon address (default:localhost)-p,--portβ specify the daemon port-h,--helpβ display this help and exit-T,--timeβ show elapsed time
Description
show images in tree view format. Family tree, but for VDIs. π³
π vdi graph π
vdi graph [-a address] [-p port] [-h] [-T]
Options
-a,--addressβ specify the daemon address (default:localhost)-p,--portβ specify the daemon port-h,--helpβ display this help and exit-T,--timeβ show elapsed time
Description
show images in Graphviz dot format. Graph girlies, this one's for you. π
π vdi object π
vdi object {location|map|dump-inode} [-i index] [-s snapshot] [-a address] [-p port] [-h] [-T] <vdiname>
Available subcommands
locationβ show object location informationmapβ show object map informationdump-inodeβ dump inode information
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-T,--timeβ show elapsed time
Description
show object information in the image. Object lore unlocked. π
π vdi track π
vdi track [-i index] [-s snapshot] [-a address] [-p port] [-h] [-o oid] [-T] <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-T,--timeβ show elapsed time
Description
show the object epoch trace in the image. Tracking tea, served fresh. π΅
π vdi setattr π
vdi setattr [-d] [-x] [-a address] [-p port] [-h] [-T] <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-T,--timeβ show elapsed time
Description
set a VDI attribute. Customize your fave. π
π vdi getattr π
vdi getattr [-a address] [-p port] [-h] [-T] <vdiname> <key>
Options
-a,--addressβ specify the daemon address (default:localhost)-p,--portβ specify the daemon port-h,--helpβ display this help and exit-T,--timeβ show elapsed time
Description
get a VDI attribute. Receipts, but for metadata. π§Ύ
π vdi resize π
vdi resize [-a address] [-p port] [-h] [-T] <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-T,--timeβ show elapsed time
Description
resize an image. Glow-up, but make it capacity. π
π vdi read π
vdi read [-s snapshot] [-a address] [-p port] [-h] [-T] <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-T,--timeβ show elapsed time
Description
read data from an image. Reading era, we love to see it. π
π vdi write π
vdi write [-a address] [-p port] [-w] [-h] [-T] <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-T,--timeβ show elapsed time
Description
write data to an image. Pen to paper, bytes to block. βοΈ
vdi backup πΎ
vdi backup [-s snapshot] [-F from] [-a address] [-p port] [-h] [-T] <vdiname>
Options:
-s,--snapshotβ pick a snapshot id or tag name, bestie π-F,--fromβ create a differential backup from the snapshot, like a glow-up from that point β¨-a,--addressβ specify the daemon address (default:localhost) β it's giving "where u at" π-p,--portβ specify the daemon port, the door number basically πͺ-h,--helpβ display this help and exit, no cap π-T,--timeβ show elapsed time, so u know how long u've been slaying β³
Description:
create an incremental backup between two snapshots and outputs to STDOUT β it's literally saving the diff between two snapshots and yeeting it to STDOUT π
vdi restore π¦
vdi restore [-s snapshot] [-a address] [-p port] [-h] [-T] <vdiname>
Options:
-s,--snapshotβ specify a snapshot id or tag name, so u know which one to bring back π¦-a,--addressβ specify the daemon address (default:localhost) β the addy of the daemon, iykyk π-p,--portβ specify the daemon port, the port number, slay πΈ-h,--helpβ display this help and exit, we love a helpful queen π-T,--timeβ show elapsed time, for the time-conscious besties β°
Description:
restore snapshot images from a backup provided in STDIN β it takes the backup from STDIN and restores the snapshot images, no cap π
vdi alter-copy π
vdi alter-copy [-c copies] [-a address] [-p port] [-h] [-T] [-f] <vdiname>
Options:
-c,--copiesβ specify the data redundancy level, like how many copies u want, the more the merrier π-a,--addressβ specify the daemon address (default:localhost) β where the daemon is at π-p,--portβ specify the daemon port, the port, periodt πͺ-h,--helpβ display this help and exit, a classic π-T,--timeβ show elapsed time, so u can clock the tea β³-f,--forceβ do operation forcibly, like no questions asked, just do it π₯
Description:
set the vdi's redundancy level β it sets how many copies of the vdi u want, fr fr π
vdi lock π
vdi lock {list|unlock} [-s snapshot] [-a address] [-p port] [-h] [-T]
Available subcommands:
listβ list locked VDIs, so u can see who's locked up πunlockβ unlock locked VDI forcibly, break them free, no cap π
Options:
-s,--snapshotβ specify a snapshot id or tag name, for the snapshot vibe π-a,--addressβ specify the daemon address (default:localhost) β the daemon's addy π-p,--portβ specify the daemon port, the port number, slay πΈ-h,--helpβ display this help and exit, we love to see it π-T,--timeβ show elapsed time, for the time girlies β°
Description:
See dog vdi lock for more information β so go check that out, bestie π
node kill π
node kill [-a address] [-p port] [-r] [-h] [-l] [-T] <node id>
Options:
-a,--addressβ specify the daemon address (default:localhost) β where the daemon is at π-p,--portβ specify the daemon port, the port, periodt πͺ-r,--rawβ raw output mode: omit headers, separate fields with single spaces and print all sizes in decimal bytes β it's giving no filter, just the raw tea π-h,--helpβ display this help and exit, a classic π-l,--localβ issue request to local node, keep it local, bestie π‘-T,--timeβ show elapsed time, so u can clock the tea β³
Description:
kill node β it kills the node, periodt π
node list π
node list [-a address] [-p port] [-r] [-h] [-T]
Options:
-a,--addressβ specify the daemon address (default:localhost) β the daemon's addy π-p,--portβ specify the daemon port, the port number, slay πΈ-r,--rawβ raw output mode: omit headers, separate fields with single spaces and print all sizes in decimal bytes β no filter, just facts β¨-h,--helpβ display this help and exit, we love a helpful queen π-T,--timeβ show elapsed time, for the time-conscious besties β°
Description:
list nodes β it lists all the nodes, no cap π
node info π΅
node info [-a address] [-p port] [-r] [-h] [-T]
Options:
-a,--addressβ specify the daemon address (default:localhost) β where the daemon is at π-p,--portβ specify the daemon port, the port, periodt πͺ-r,--rawβ raw output mode: omit headers, separate fields with single spaces and print all sizes in decimal bytes β raw and unfiltered, just how we like it π-h,--helpβ display this help and exit, a classic π-T,--timeβ show elapsed time, so u can clock the tea β³
Description:
show information about each node β it spills the tea on each node, fr fr π΅
node recovery ποΈ
node recovery {info|set-throttle|get-throttle} [-a address] [-p port] [-h] [-P] [-r] [-T] <max> <interval>
Available subcommands:
infoβ show recovery information of nodes (default) β the default, so if u don't pick, this is it πset-throttleβ set new throttling β set the throttle, like control the speed ποΈget-throttleβ get current throttling β get the current throttle, so u know what's up π
Options:
-a,--addressβ specify the daemon address (default:localhost) β the daemon's addy π-p,--portβ specify the daemon port, the port number, slay πΈ-h,--helpβ display this help and exit, we love to see it π-P,--progressβ show progress of recovery in the node β show the progress, so u can watch it slay πͺ-r,--rawβ raw output mode: omit headers, separate fields with single spaces and print all sizes in decimal bytes β no filter, just the raw data β¨-T,--timeβ show elapsed time, for the time girlies β°
Description:
show recovery information or set/get recovery speed throttling of nodes β it shows recovery info or sets/gets the recovery speed throttle for nodes, no cap π
node md π½
node md {info|plug|unplug} [-a address] [-p port] [-r] [-A] [-f] [-h] [-T] [disks]
Available subcommands:
infoβ show multi-disk information β shows info about multiple disks, slay π½plugβ plug more disk(s) into node β plug in more disks, like adding more storage besties πunplugβ unplug disk(s) from node β unplug disks, bye Felicia π
Options:
-a,--addressβ specify the daemon address (default:localhost) β where the daemon is at π-p,--portβ specify the daemon port, the port, periodt πͺ-r,--rawβ raw output mode: omit headers, separate fields with single spaces and print all sizes in decimal bytes β raw and real π-A,--allβ show md information of all the nodes β show md info for ALL the nodes, go big or go home π-f,--forceβ ignore the confirmation β ignore the confirmation, just do it π₯-h,--helpβ display this help and exit, a classic π-T,--timeβ show elapsed time, so u can clock the tea β³
Description:
See dog node md for more information β go check that out, bestie π
node stat π
node stat [-a address] [-p port] [-r] [-w] [-h] [-T]
Options:
-a,--addressβ specify the daemon address (default:localhost) β the daemon's addy π-p,--portβ specify the daemon port, the port number, slay πΈ-r,--rawβ raw output mode: omit headers, separate fields with single spaces and print all sizes in decimal bytes β no filter, just facts β¨-w,--watchβ watch the stat every second β watch the stats every second, like a hawk π-h,--helpβ display this help and exit, we love a helpful queen π-T,--timeβ show elapsed time, for the time-conscious besties β°
Description:
show stat information about the node β it shows stat info about the node, fr fr π
node log level ποΈ
node log level [-a address] [-p port] [-h] [-T]
Available subcommands:
levelβ manipulate loglevel β manipulate the log level, like turn it up or down ποΈ
Options:
-a,--addressβ specify the daemon address (default:localhost) β where the daemon is at π-p,--portβ specify the daemon port, the port, periodt πͺ-h,--helpβ display this help and exit, a classic π-T,--timeβ show elapsed time, so u can clock the tea β³
Description:
show or set log level of the node β it shows or sets the log level of the node, no cap π
node vnodes set β¨
node vnodes set [-a address] [-p port] [-h] <num of vnodes>
Available subcommands:
setβ set new vnodes β set new vnodes, like a fresh start β¨
Options:
-a,--addressβ specify the daemon address (default:localhost) β the daemon's addy π-p,--portβ specify the daemon port, the port number, slay πΈ-h,--helpβ display this help and exit, we love to see it π
Description:
set new vnodes β it sets new vnodes, periodt π
node format π
node format [-a address] [-p port] [-h] [-T] <directory of sheep> <a name of store format>
Options:
-a,--addressβ specify the daemon address (default:localhost) β where the daemon is at π-p,--portβ specify the daemon port, the port, periodt πͺ-h,--helpβ display this help and exit, a classic π-T,--timeβ show elapsed time, so u can clock the tea β³
Description:
initialize store format of the node β it initializes the store format of the node, fr fr π
cluster info π
cluster info [-a address] [-p port] [-r] [-h] [-v] [-T] [-d]
Options:
-a,--addressβ specify the daemon address (default:localhost) β the daemon's addy π-p,--portβ specify the daemon port, the port number, slay πΈ-r,--rawβ raw output mode: omit headers, separate fields with single spaces and print all sizes in decimal bytes β no filter, just facts β¨-h,--helpβ display this help and exit, we love a helpful queen π-v,--verboseβ print more information than default β spill extra tea, verbose mode π΅-T,--timeβ show elapsed time, for the time-conscious besties β°-d,--diffβ just output the changes between the two adjacent epoches for cluster info β just the diff between adjacent epoches, like a before and after π
Description:
show cluster information β it shows cluster info, no cap π
cluster format ποΈ
cluster format [-b store] [-c copies] [-l] [-t] [-a address] [-p port] [-h] [-z block_size_shift] [-T] [-V] [-R] [-f] [-F]
Options:
-b,--storeβ specify backend store β pick the backend store, like choosing ur vibe ποΈ-c,--copiesβ specify the default data redundancy (number of copies) β set the default number of copies, the more the merrier π-l,--lockβ Lock vdi to exclude multiple users β lock the vdi so multiple users can't touch it, exclusive vibes π-t,--strictβ do not serve write request if number of nodes is not sufficient β strict mode: no write requests if there aren't enough nodes, periodt π-a,--addressβ specify the daemon address (default:localhost) β where the daemon is at π-p,--portβ specify the daemon port, the port, periodt πͺ-h,--helpβ display this help and exit, a classic π-z,--block_size_shiftβ specify the shift num of default data object size β specify the shift num for the default data object size, math queen π-T,--timeβ show elapsed time, so u can clock the tea β³-V,--fixedvnodesβ disable automatic vnodes calculation β disable automatic vnodes calculation, manual mode β-R,--recyclevidβ enable recycling of VID β enable VID recycling, sustainable queen β»οΈ-f,--forceβ do not prompt for confirmation β do not prompt for confirmation, just do it π₯-F,--avoid-diskfullβ skip recovery if recovery process can cause disk full β skip recovery if it would cause a disk full, protecting ur disk space π‘οΈ
Description:
create a Sheepdog store β it creates a Sheepdog store, slay π
cluster shutdown π
cluster shutdown [-a address] [-p port] [-h] [-T]
Options:
-a,--addressβ specify the daemon address (default:localhost) β the daemon's addy π-p,--portβ specify the daemon port, the port number, slay πΈ-h,--helpβ display this help and exit, we love to see it π-T,--timeβ show elapsed time, for the time girlies β°
Description:
stop Sheepdog β it stops Sheepdog, periodt π
cluster snapshot πΈ
cluster snapshot {save|list|load|show} [-a address] [-p port] [-h] [-T] [-m] <tag|idx> <path> [vdi1] [vdi2] ...
okay bestie, so for cluster snapshot the available subcommands are giving:
saveβ save snapshot tolocalpathlistβ list snapshot oflocalpathloadβ load snapshot fromlocalpathshowβ show vdi list from snapshot
Options:
-a,--addressβ specify the daemon address (default:localhost)-p,--portβ specify the daemon port-h,--helpβ display this help and exit-T,--timeβ show elapsed time-m,--multithreadβ use multi-thread for 'cluster snapshot save'
Description: snapshot/restore the cluster
cluster recover π
Usage:
cluster recover {force|enable|disable} [-a address] [-f] [-p port] [-h] [-T]
Available subcommands:
forceβ force recover cluster immediatelyenableβ enable automatic recovery and run once recover if necessarydisableβ 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-T,--timeβ show elapsed time
Description: See 'dog cluster recover' for more information
cluster reweight βοΈ
Usage:
cluster reweight [-a address] [-p port] [-h] [-T]
Options:
-a,--addressβ specify the daemon address (default:localhost)-p,--portβ specify the daemon port-h,--helpβ display this help and exit-T,--timeβ show elapsed time
Description: reweight the cluster
cluster check β
Usage:
cluster check [-a address] [-p port] [-h] [-T]
Options:
-a,--addressβ specify the daemon address (default:localhost)-p,--portβ specify the daemon port-h,--helpβ display this help and exit-T,--timeβ show elapsed time
Description: check and repair cluster
cluster alter-copy π¦
Usage:
cluster alter-copy [-a address] [-p port] [-h] [-T] [-c copies] [-f]
Options:
-a,--addressβ specify the daemon address (default:localhost)-p,--portβ specify the daemon port-h,--helpβ display this help and exit-T,--timeβ show elapsed time-c,--copiesβ specify the default data redundancy (number of copies)-f,--forceβ do not prompt for confirmation
Description: set the cluster's redundancy level
upgrade inode-convert πͺ
Usage:
upgrade inode-convert [-h] [-T] [-o orig-version] <path of original inode file> <path of new inode file>
Options:
-h,--helpβ display this help and exit-T,--timeβ show elapsed time-o,--orig-versionβ version of converting file
Description: upgrade inode object file
upgrade epoch-convert π°οΈ
Usage:
upgrade epoch-convert [-h] [-T] [-o orig-version] <path of original epoch log file> <path of new epoch log file>
Options:
-h,--helpβ display this help and exit-T,--timeβ show elapsed time-o,--orig-versionβ version of converting file
Description: upgrade epoch log file
benchmark io ποΈ
Usage:
benchmark io [-a address] [-p port] [-r] [-h] [-T] [-f] [-w workqueue] [-t total] [-n nr-threads] <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-T,--timeβ show elapsed time-f,--forceβ do not prompt for confirmation-w,--workqueueβ specify workqueue type-t,--totalβ a number of total operation (e.g. I/O request)-n,--nr-threadsβ a number of worker threads (only used for fixed workqueue)
Description: benchmark I/O performance
β¨ DEPENDENCIES β¨
Sheepdog requires QEMU 0.13.z or later and Corosync 1.y.z or 2.y.z.
π FILES π
none
π SEE ALSO π
sheep(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>.
that's the whole vibe, bestie! π signing off from SHEEPDOG(8) on 2025-07-26. periodt. πβ¨
π¦ where this page comes from
- fedora 43: sheepdog 1.0.1-25.fc43 Β· GPL-2.0-only AND GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms