1SHEEPDOG(8) System Manager's Manual SHEEPDOG(8)
2
3
4
6 sheep - Distributed Block Storage System for QEMU
7
9 sheep [options] [PATH]
10
12 sheep - Sheepdog is a distributed storage system for QEMU. It provides
13 highly available block level storage volumes to virtual machines.
14 Sheepdog supports advanced volume management features such as snapshot,
15 cloning, and thin provisioning. The architecture of Sheepdog is fully
16 symmetric; there is no central node such as a meta-data server.
17
18 The server daemon is called sheep(8). A command line utility is avail‐
19 able via dog(8). QEMU virtual machines use the sheep daemon via a
20 block driver available in qemu(1).
21
23 -b, --bindaddr
24 specify IP address of interface to listen on
25
26 Example:
27
28 $ sheep -b 192.168.1.1 ...
29
30 This tries to teach sheep listen to NIC of 192.168.1.1.
31
32 Example:
33
34 $ sheep -b 0.0.0.0 ...
35
36 This tries to teach sheep listen to all the NICs available. It
37 can be useful when you want sheep to response dog without speci‐
38 fied address and port.
39
40 -c, --cluster
41 specify the cluster driver (default: corosync)
42
43 Available arguments:
44 local: use local driver
45 corosync: use corosync driver
46 zookeeper: use zookeeper driver, need extra arguments
47
48 zookeeper arguments: connection-string,timeout=value (default
49 as 3000)
50
51 Example:
52
53 $ sheep -c zookeeper:IP1:PORT1,IP2:PORT2,IP3:PORT3[/clus‐
54 ter_id][,timeout=1000] ...
55
56 This tries to use 3 node zookeeper cluster, which can be reached
57 by IP1:PORT1, IP2:PORT2, IP3:PORT3 to manage membership and
58 broadcast message and set the timeout of node heartbeat as 1000
59 milliseconds. cluster_id is used to identify which cluster it
60 belongs to, if not set, /sheepdog is used internally as default.
61
62 -D, --directio
63 use direct IO for backend store
64
65
66 -f, --foreground
67 make the program run in foreground
68
69
70 -g, --gateway
71 make the program run as a gateway mode
72
73
74 -h, --help
75 display this help and exit
76
77 -i, --ioaddr
78 use separate network card to handle IO requests (default: dis‐
79 abled)
80
81 Example:
82
83 $ sheep -i host=192.168.1.1,port=7002 ...
84
85 This tries to add a dedicated IO NIC of 192.168.1.1:7002 to
86 transfer data. If IO NIC is down, sheep will fallback to non IO
87 NIC to transfer data.
88
89 -j, --journal
90 use journal file to log all the write operations. (default: dis‐
91 abled)
92
93 Available arguments:
94 size=: size of the journal in megabyes
95 dir=: path to the location of the journal (default: $STORE)
96 skip: if specified, skip the recovery at startup
97
98 Example:
99
100 $ sheep -j dir=/journal,size=1G
101
102 This tries to use /journal as the journal storage of the size 1G
103
104 -l, --log
105 specify the log level, the log directory and the log format(log
106 level default: 6 [SDOG_INFO])
107
108 Example:
109
110 $ sheep -l dir=/var/log/,level=debug,format=server ...
111
112 Available arguments:
113 dir=: path to the location of sheep.log
114 level=: log level of sheep.log
115 format=: log format type
116 dst=: log destination type
117
118 if dir is not specified, use metastore directory
119
120 Available log levels:
121 Level Description
122 emerg system has failed and is unusable
123 alert action must be taken immediately
124 crit critical conditions
125 err error conditions
126 warning warning conditions
127 notice normal but significant conditions
128 info informational notices
129 debug debugging messages default log level is info
130
131 Available log format:
132 FormatType Description
133 default raw format
134 server raw format with timestamp
135 json json format
136
137 Available log destination:
138 DestinationType Description
139 default dedicated file in a directory used by sheep
140 syslog syslog of the system
141 stdout standard output
142
143 -n, --nosync
144 drop O_SYNC for write of backend
145
146
147 -p, --port
148 specify the TCP port on which to listen (default: 7000)
149
150
151 -P, --pidfile
152 create a pid file
153
154
155 -R, --recovery
156 specify the recovery speed throttling
157
158 Available arguments:
159 max=: object recovery process maximum count of each interval
160 interval=: object recovery interval time (millisec) Example:
161
162 $ sheep -R max=50,interval=1000 ...
163
164
165 -u, --upgrade
166 upgrade to the latest data layout
167
168
169 -v, --version
170 show the version
171
172 Sheepdog daemon version 1.0.1
173
174 -V, --vnodes
175 set number of vnodes
176
177 Example:
178
179 $ sheep -V 128
180
181 set number of vnodes
182
183 -w, --wq-threads
184 specify a number of threads for workqueue
185
186
187 -W, --wildcard-recovery
188 wildcard recovery for first time
189
190
191 -y, --myaddr
192 specify the address advertised to other sheep
193
194 Example:
195
196 $ sheep -y 192.168.1.1 ...
197
198 This tries to tell other nodes through what address they can
199 talk to this sheep.
200
201 -z, --zone
202 specify the zone id (default: determined by listen address)
203
204 Example:
205
206 $ sheep -z 1 ...
207
208 This tries to set the zone ID of this sheep to 1 and sheepdog
209 won't store more than one copy of any object into this same zone
210
211
213 Proper LSB systems will store sheepdog files in /var/lib/sheepdog. The
214 init script uses this directory by default. The directory must be on a
215 filesystem with xattr support. In the case of ext3, user_xattr should
216 be added to the mount options.
217
218 mount -o remount,user_xattr /var/lib/sheepdog
219
220
222 sheepdog requires QEMU 0.13.z or later and Corosync 1.y.z.
223
224
226 /var/lib/sheepdog - Directory containing block storage information
227
228
230 dog(8), qemu(1), sheepfs(8), corosync_overview(8)
231
232
234 This software is developed by the sheepdog community which may be
235 reached via mailing list at <sheepdog@lists.wpkg.org>.
236
237 2022-07-23 SHEEPDOG(8)