root / doc / design-file-based-storage.rst @ 0565f862
History | View | Annotate | Download (9.9 kB)
1 | bced76fd | Jose A. Lopes | ================== |
---|---|---|---|
2 | bced76fd | Jose A. Lopes | File-based Storage |
3 | bced76fd | Jose A. Lopes | ================== |
4 | bced76fd | Jose A. Lopes | |
5 | bced76fd | Jose A. Lopes | This page describes the proposed file-based storage for the 2.0 version |
6 | bced76fd | Jose A. Lopes | of Ganeti. The project consists in extending Ganeti in order to support |
7 | bced76fd | Jose A. Lopes | a filesystem image as Virtual Block Device (VBD) in Dom0 as the primary |
8 | bced76fd | Jose A. Lopes | storage for a VM. |
9 | bced76fd | Jose A. Lopes | |
10 | bced76fd | Jose A. Lopes | Objective |
11 | bced76fd | Jose A. Lopes | ========= |
12 | bced76fd | Jose A. Lopes | |
13 | bced76fd | Jose A. Lopes | Goals: |
14 | bced76fd | Jose A. Lopes | |
15 | bced76fd | Jose A. Lopes | * file-based storage for virtual machines running in a Xen-based |
16 | bced76fd | Jose A. Lopes | Ganeti cluster |
17 | bced76fd | Jose A. Lopes | |
18 | bced76fd | Jose A. Lopes | * failover of file-based virtual machines between cluster-nodes |
19 | bced76fd | Jose A. Lopes | |
20 | bced76fd | Jose A. Lopes | * export/import file-based virtual machines |
21 | bced76fd | Jose A. Lopes | |
22 | bced76fd | Jose A. Lopes | * reuse existing image files |
23 | bced76fd | Jose A. Lopes | |
24 | bced76fd | Jose A. Lopes | * allow Ganeti to initalize the cluster without checking for a volume |
25 | bced76fd | Jose A. Lopes | group (e.g. xenvg) |
26 | bced76fd | Jose A. Lopes | |
27 | bced76fd | Jose A. Lopes | Non Goals: |
28 | bced76fd | Jose A. Lopes | |
29 | bced76fd | Jose A. Lopes | * any kind of data mirroring between clusters for file-based instances |
30 | bced76fd | Jose A. Lopes | (this should be achieved by using shared storage) |
31 | bced76fd | Jose A. Lopes | |
32 | bced76fd | Jose A. Lopes | * special support for live-migration |
33 | bced76fd | Jose A. Lopes | |
34 | bced76fd | Jose A. Lopes | * encryption of VBDs |
35 | bced76fd | Jose A. Lopes | |
36 | bced76fd | Jose A. Lopes | * compression of VBDs |
37 | bced76fd | Jose A. Lopes | |
38 | bced76fd | Jose A. Lopes | Background |
39 | bced76fd | Jose A. Lopes | ========== |
40 | bced76fd | Jose A. Lopes | |
41 | bced76fd | Jose A. Lopes | Ganeti is a virtual server management software tool built on top of Xen |
42 | bced76fd | Jose A. Lopes | VM monitor and other Open Source software. |
43 | bced76fd | Jose A. Lopes | |
44 | bced76fd | Jose A. Lopes | Since Ganeti currently supports only block devices as storage backend |
45 | bced76fd | Jose A. Lopes | for virtual machines, the wish came up to provide a file-based backend. |
46 | bced76fd | Jose A. Lopes | Using this file-based option provides the possibility to store the VBDs |
47 | bced76fd | Jose A. Lopes | on basically every filesystem and therefore allows to deploy external |
48 | bced76fd | Jose A. Lopes | data storages (e.g. SAN, NAS, etc.) in clusters. |
49 | bced76fd | Jose A. Lopes | |
50 | bced76fd | Jose A. Lopes | Overview |
51 | bced76fd | Jose A. Lopes | ======== |
52 | bced76fd | Jose A. Lopes | |
53 | bced76fd | Jose A. Lopes | Introduction |
54 | bced76fd | Jose A. Lopes | ++++++++++++ |
55 | bced76fd | Jose A. Lopes | |
56 | bced76fd | Jose A. Lopes | Xen (and other hypervisors) provide(s) the possibility to use a file as |
57 | bced76fd | Jose A. Lopes | the primary storage for a VM. One file represents one VBD. |
58 | bced76fd | Jose A. Lopes | |
59 | bced76fd | Jose A. Lopes | Advantages/Disadvantages |
60 | bced76fd | Jose A. Lopes | ++++++++++++++++++++++++ |
61 | bced76fd | Jose A. Lopes | |
62 | bced76fd | Jose A. Lopes | Advantages of file-backed VBD: |
63 | bced76fd | Jose A. Lopes | |
64 | bced76fd | Jose A. Lopes | * support of sparse allocation |
65 | bced76fd | Jose A. Lopes | |
66 | bced76fd | Jose A. Lopes | * easy from a management/backup point of view (e.g. you can just copy |
67 | bced76fd | Jose A. Lopes | the files around) |
68 | bced76fd | Jose A. Lopes | |
69 | bced76fd | Jose A. Lopes | * external storage (e.g. SAN, NAS) can be used to store VMs |
70 | bced76fd | Jose A. Lopes | |
71 | bced76fd | Jose A. Lopes | Disadvantages of file-backed VBD: |
72 | bced76fd | Jose A. Lopes | * possible performance loss for I/O-intensive workloads |
73 | bced76fd | Jose A. Lopes | |
74 | bced76fd | Jose A. Lopes | * using sparse files requires care to ensure the sparseness is |
75 | bced76fd | Jose A. Lopes | preserved when copying, and there is no header in which metadata |
76 | bced76fd | Jose A. Lopes | relating back to the VM can be stored |
77 | bced76fd | Jose A. Lopes | |
78 | bced76fd | Jose A. Lopes | Xen-related specifications |
79 | bced76fd | Jose A. Lopes | ++++++++++++++++++++++++++ |
80 | bced76fd | Jose A. Lopes | |
81 | bced76fd | Jose A. Lopes | Driver |
82 | bced76fd | Jose A. Lopes | ~~~~~~ |
83 | bced76fd | Jose A. Lopes | |
84 | bced76fd | Jose A. Lopes | There are several ways to realize the required functionality with an |
85 | bced76fd | Jose A. Lopes | underlying Xen hypervisor. |
86 | bced76fd | Jose A. Lopes | |
87 | bced76fd | Jose A. Lopes | 1) loopback driver |
88 | bced76fd | Jose A. Lopes | ^^^^^^^^^^^^^^^^^^ |
89 | bced76fd | Jose A. Lopes | |
90 | bced76fd | Jose A. Lopes | Advantages: |
91 | bced76fd | Jose A. Lopes | * available in most precompiled kernels |
92 | bced76fd | Jose A. Lopes | * stable, since it is in kernel tree for a long time |
93 | bced76fd | Jose A. Lopes | * easy to set up |
94 | bced76fd | Jose A. Lopes | |
95 | bced76fd | Jose A. Lopes | Disadvantages: |
96 | bced76fd | Jose A. Lopes | |
97 | bced76fd | Jose A. Lopes | * buffer writes very aggressively, which can affect guest filesystem |
98 | bced76fd | Jose A. Lopes | correctness in the event of a host crash |
99 | bced76fd | Jose A. Lopes | |
100 | bced76fd | Jose A. Lopes | * can even cause out-of-memory kernel crashes in Dom0 under heavy |
101 | bced76fd | Jose A. Lopes | write load |
102 | bced76fd | Jose A. Lopes | |
103 | bced76fd | Jose A. Lopes | * substantial slowdowns under heavy I/O workloads |
104 | bced76fd | Jose A. Lopes | |
105 | bced76fd | Jose A. Lopes | * the default number of supported loopdevices is only 8 |
106 | bced76fd | Jose A. Lopes | |
107 | bced76fd | Jose A. Lopes | * doesn't support QCOW files |
108 | bced76fd | Jose A. Lopes | |
109 | bced76fd | Jose A. Lopes | ``blktap`` driver |
110 | bced76fd | Jose A. Lopes | ^^^^^^^^^^^^^^^^^ |
111 | bced76fd | Jose A. Lopes | |
112 | bced76fd | Jose A. Lopes | Advantages: |
113 | bced76fd | Jose A. Lopes | |
114 | bced76fd | Jose A. Lopes | * higher performance than loopback driver |
115 | bced76fd | Jose A. Lopes | |
116 | bced76fd | Jose A. Lopes | * more scalable |
117 | bced76fd | Jose A. Lopes | |
118 | bced76fd | Jose A. Lopes | * better safety properties for VBD data |
119 | bced76fd | Jose A. Lopes | |
120 | bced76fd | Jose A. Lopes | * Xen-team strongly encourages use |
121 | bced76fd | Jose A. Lopes | |
122 | bced76fd | Jose A. Lopes | * already in Xen tree |
123 | bced76fd | Jose A. Lopes | |
124 | bced76fd | Jose A. Lopes | * supports QCOW files |
125 | bced76fd | Jose A. Lopes | |
126 | bced76fd | Jose A. Lopes | * asynchronous driver (i.e. high performance) |
127 | bced76fd | Jose A. Lopes | |
128 | bced76fd | Jose A. Lopes | Disadvantages: |
129 | bced76fd | Jose A. Lopes | |
130 | bced76fd | Jose A. Lopes | * not enabled in most precompiled kernels |
131 | bced76fd | Jose A. Lopes | |
132 | bced76fd | Jose A. Lopes | * stable, but not as much tested as loopback driver |
133 | bced76fd | Jose A. Lopes | |
134 | bced76fd | Jose A. Lopes | 3) ubklback driver |
135 | bced76fd | Jose A. Lopes | ^^^^^^^^^^^^^^^^^^ |
136 | bced76fd | Jose A. Lopes | |
137 | bced76fd | Jose A. Lopes | The Xen Roadmap states "Work is well under way to implement a |
138 | bced76fd | Jose A. Lopes | ``ublkback`` driver that supports all of the various qemu file format |
139 | bced76fd | Jose A. Lopes | plugins". |
140 | bced76fd | Jose A. Lopes | |
141 | bced76fd | Jose A. Lopes | Furthermore, the Roadmap includes the following: |
142 | bced76fd | Jose A. Lopes | |
143 | bced76fd | Jose A. Lopes | "... A special high-performance qcow plugin is also under |
144 | bced76fd | Jose A. Lopes | development, that supports better metadata caching, asynchronous IO, |
145 | bced76fd | Jose A. Lopes | and allows request reordering with appropriate safety barriers to |
146 | bced76fd | Jose A. Lopes | enforce correctness. It remains both forward and backward compatible |
147 | bced76fd | Jose A. Lopes | with existing qcow disk images, but makes adjustments to qemu's |
148 | bced76fd | Jose A. Lopes | default allocation policy when creating new disks such as to |
149 | bced76fd | Jose A. Lopes | optimize performance." |
150 | bced76fd | Jose A. Lopes | |
151 | bced76fd | Jose A. Lopes | File types |
152 | bced76fd | Jose A. Lopes | ~~~~~~~~~~ |
153 | bced76fd | Jose A. Lopes | |
154 | bced76fd | Jose A. Lopes | Raw disk image file |
155 | bced76fd | Jose A. Lopes | ^^^^^^^^^^^^^^^^^^^ |
156 | bced76fd | Jose A. Lopes | |
157 | bced76fd | Jose A. Lopes | Advantages: |
158 | bced76fd | Jose A. Lopes | * Resizing supported |
159 | bced76fd | Jose A. Lopes | * Sparse file (filesystem dependend) |
160 | bced76fd | Jose A. Lopes | * simple and easily exportable |
161 | bced76fd | Jose A. Lopes | |
162 | bced76fd | Jose A. Lopes | Disadvantages: |
163 | bced76fd | Jose A. Lopes | |
164 | bced76fd | Jose A. Lopes | * Underlying filesystem needs to support sparse files (most |
165 | bced76fd | Jose A. Lopes | filesystems do, though) |
166 | bced76fd | Jose A. Lopes | |
167 | bced76fd | Jose A. Lopes | QCOW disk image file |
168 | bced76fd | Jose A. Lopes | ^^^^^^^^^^^^^^^^^^^^ |
169 | bced76fd | Jose A. Lopes | |
170 | bced76fd | Jose A. Lopes | Advantages: |
171 | bced76fd | Jose A. Lopes | |
172 | bced76fd | Jose A. Lopes | * Smaller file size, even on filesystems which don't support holes |
173 | bced76fd | Jose A. Lopes | (i.e. sparse files) |
174 | bced76fd | Jose A. Lopes | |
175 | bced76fd | Jose A. Lopes | * Snapshot support, where the image only represents changes made to an |
176 | bced76fd | Jose A. Lopes | underlying disk image |
177 | bced76fd | Jose A. Lopes | |
178 | bced76fd | Jose A. Lopes | * Optional zlib based compression |
179 | bced76fd | Jose A. Lopes | |
180 | bced76fd | Jose A. Lopes | * Optional AES encryption |
181 | bced76fd | Jose A. Lopes | |
182 | bced76fd | Jose A. Lopes | Disadvantages: |
183 | bced76fd | Jose A. Lopes | * Resizing not supported yet (it's on the way) |
184 | bced76fd | Jose A. Lopes | |
185 | bced76fd | Jose A. Lopes | VMDK disk image file |
186 | bced76fd | Jose A. Lopes | ^^^^^^^^^^^^^^^^^^^^ |
187 | bced76fd | Jose A. Lopes | |
188 | bced76fd | Jose A. Lopes | This file format is directly based on the qemu vmdk driver, which is |
189 | bced76fd | Jose A. Lopes | synchronous and thus slow. |
190 | bced76fd | Jose A. Lopes | |
191 | bced76fd | Jose A. Lopes | Detailed Design |
192 | bced76fd | Jose A. Lopes | =============== |
193 | bced76fd | Jose A. Lopes | |
194 | bced76fd | Jose A. Lopes | Terminology |
195 | bced76fd | Jose A. Lopes | +++++++++++ |
196 | bced76fd | Jose A. Lopes | |
197 | bced76fd | Jose A. Lopes | * **VBD** (Virtual Block Device): Persistent storage available to a |
198 | bced76fd | Jose A. Lopes | virtual machine, providing the abstraction of an actual block |
199 | bced76fd | Jose A. Lopes | storage device. VBDs may be actual block devices, filesystem images, |
200 | bced76fd | Jose A. Lopes | or remote/network storage. |
201 | bced76fd | Jose A. Lopes | |
202 | bced76fd | Jose A. Lopes | * **Dom0** (Domain 0): The first domain to be started on a Xen |
203 | bced76fd | Jose A. Lopes | machine. Domain 0 is responsible for managing the system. |
204 | bced76fd | Jose A. Lopes | |
205 | bced76fd | Jose A. Lopes | * **VM** (Virtual Machine): The environment in which a hosted |
206 | bced76fd | Jose A. Lopes | operating system runs, providing the abstraction of a dedicated |
207 | bced76fd | Jose A. Lopes | machine. A VM may be identical to the underlying hardware (as in |
208 | bced76fd | Jose A. Lopes | full virtualization, or it may differ, as in paravirtualization). In |
209 | bced76fd | Jose A. Lopes | the case of Xen the domU (unprivileged domain) instance is meant. |
210 | bced76fd | Jose A. Lopes | |
211 | bced76fd | Jose A. Lopes | * **QCOW**: QEMU (a processor emulator) image format. |
212 | bced76fd | Jose A. Lopes | |
213 | bced76fd | Jose A. Lopes | |
214 | bced76fd | Jose A. Lopes | Implementation |
215 | bced76fd | Jose A. Lopes | ++++++++++++++ |
216 | bced76fd | Jose A. Lopes | |
217 | bced76fd | Jose A. Lopes | Managing file-based instances |
218 | bced76fd | Jose A. Lopes | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
219 | bced76fd | Jose A. Lopes | |
220 | bced76fd | Jose A. Lopes | The option for file-based storage will be added to the 'gnt-instance' |
221 | bced76fd | Jose A. Lopes | utility. |
222 | bced76fd | Jose A. Lopes | |
223 | bced76fd | Jose A. Lopes | Add Instance |
224 | bced76fd | Jose A. Lopes | ^^^^^^^^^^^^ |
225 | bced76fd | Jose A. Lopes | |
226 | bced76fd | Jose A. Lopes | Example: |
227 | bced76fd | Jose A. Lopes | |
228 | bced76fd | Jose A. Lopes | gnt-instance add -t file:[path\ =[,driver=loop[,reuse[,...]]]] \ |
229 | bced76fd | Jose A. Lopes | --disk 0:size=5G --disk 1:size=10G -n node -o debian-etch instance2 |
230 | bced76fd | Jose A. Lopes | |
231 | bced76fd | Jose A. Lopes | This will create a file-based instance with e.g. the following files: |
232 | bced76fd | Jose A. Lopes | * ``/sda`` -> 5GB |
233 | bced76fd | Jose A. Lopes | * ``/sdb`` -> 10GB |
234 | bced76fd | Jose A. Lopes | |
235 | bced76fd | Jose A. Lopes | The default directory where files will be stored is |
236 | bced76fd | Jose A. Lopes | ``/srv/ganeti/file-storage/``. This can be changed by setting the |
237 | bced76fd | Jose A. Lopes | ``<path>`` option. This option denotes the full path to the directory |
238 | bced76fd | Jose A. Lopes | where the files are stored. The filetype will be "raw" for the first |
239 | bced76fd | Jose A. Lopes | release of Ganeti 2.0. However, the code will be extensible to more |
240 | bced76fd | Jose A. Lopes | file types, since Ganeti will store information about the file type of |
241 | bced76fd | Jose A. Lopes | each image file. Internally Ganeti will keep track of the used driver, |
242 | bced76fd | Jose A. Lopes | the file-type and the full path to the file for every VBD. Example: |
243 | bced76fd | Jose A. Lopes | "logical_id" : ``[FD_LOOP, FT_RAW, "/instance1/sda"]`` If the |
244 | bced76fd | Jose A. Lopes | ``--reuse`` flag is set, Ganeti checks for existing files in the |
245 | bced76fd | Jose A. Lopes | corresponding directory (e.g. ``/xen/instance2/``). If one or more |
246 | bced76fd | Jose A. Lopes | files in this directory are present and correctly named (the naming |
247 | bced76fd | Jose A. Lopes | conventions will be defined in Ganeti version 2.0) Ganeti will set a |
248 | bced76fd | Jose A. Lopes | VM up with these. If no file can be found or the names or invalid the |
249 | bced76fd | Jose A. Lopes | operation will be aborted. |
250 | bced76fd | Jose A. Lopes | |
251 | bced76fd | Jose A. Lopes | Remove instance |
252 | bced76fd | Jose A. Lopes | ^^^^^^^^^^^^^^^ |
253 | bced76fd | Jose A. Lopes | |
254 | bced76fd | Jose A. Lopes | The instance removal will just differ from the actual one by deleting |
255 | bced76fd | Jose A. Lopes | the VBD-files instead of the corresponding block device (e.g. a logical |
256 | bced76fd | Jose A. Lopes | volume). |
257 | bced76fd | Jose A. Lopes | |
258 | bced76fd | Jose A. Lopes | Starting/Stopping Instance |
259 | bced76fd | Jose A. Lopes | ^^^^^^^^^^^^^^^^^^^^^^^^^^ |
260 | bced76fd | Jose A. Lopes | |
261 | bced76fd | Jose A. Lopes | Here nothing has to be changed, as the xen tools don't differentiate |
262 | bced76fd | Jose A. Lopes | between file-based or blockdevice-based instances in this case. |
263 | bced76fd | Jose A. Lopes | |
264 | bced76fd | Jose A. Lopes | Export/Import instance |
265 | bced76fd | Jose A. Lopes | ^^^^^^^^^^^^^^^^^^^^^^ |
266 | bced76fd | Jose A. Lopes | |
267 | bced76fd | Jose A. Lopes | Provided "dump/restore" is used in the "export" and "import" guest-os |
268 | bced76fd | Jose A. Lopes | scripts, there are no modifications needed when file-based instances are |
269 | bced76fd | Jose A. Lopes | exported/imported. If any other backup-tool (which requires access to |
270 | bced76fd | Jose A. Lopes | the mounted file-system) is used then the image file can be temporaily |
271 | bced76fd | Jose A. Lopes | mounted. This can be done in different ways: |
272 | bced76fd | Jose A. Lopes | |
273 | bced76fd | Jose A. Lopes | Mount a raw image file via loopback driver:: |
274 | bced76fd | Jose A. Lopes | |
275 | bced76fd | Jose A. Lopes | mount -o loop /srv/ganeti/file-storage/instance1/sda1 /mnt/disk\ |
276 | bced76fd | Jose A. Lopes | |
277 | bced76fd | Jose A. Lopes | Mount a raw image file via blkfront driver (Dom0 kernel needs this |
278 | bced76fd | Jose A. Lopes | module to do the following operation):: |
279 | bced76fd | Jose A. Lopes | |
280 | bced76fd | Jose A. Lopes | xm block-attach 0 tap:aio:/srv/ganeti/file-storage/instance1/sda1 /dev/xvda1 w 0\ |
281 | bced76fd | Jose A. Lopes | |
282 | bced76fd | Jose A. Lopes | mount /dev/xvda1 /mnt/disk |
283 | bced76fd | Jose A. Lopes | |
284 | bced76fd | Jose A. Lopes | Mount a qcow image file via blkfront driver (Dom0 kernel needs this |
285 | bced76fd | Jose A. Lopes | module to do the following operation) |
286 | bced76fd | Jose A. Lopes | |
287 | bced76fd | Jose A. Lopes | xm block-attach 0 tap:qcow:/srv/ganeti/file-storage/instance1/sda1 /dev/xvda1 w 0 |
288 | bced76fd | Jose A. Lopes | |
289 | bced76fd | Jose A. Lopes | mount /dev/xvda1 /mnt/disk |
290 | bced76fd | Jose A. Lopes | |
291 | bced76fd | Jose A. Lopes | High availability features with file-based instances |
292 | bced76fd | Jose A. Lopes | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
293 | bced76fd | Jose A. Lopes | |
294 | bced76fd | Jose A. Lopes | Failing over an instance |
295 | bced76fd | Jose A. Lopes | ^^^^^^^^^^^^^^^^^^^^^^^^ |
296 | bced76fd | Jose A. Lopes | |
297 | bced76fd | Jose A. Lopes | Failover is done in the same way as with block device backends. The |
298 | bced76fd | Jose A. Lopes | instance gets stopped on the primary node and started on the secondary. |
299 | bced76fd | Jose A. Lopes | The roles of primary and secondary get swapped. Note: If a failover is |
300 | bced76fd | Jose A. Lopes | done, Ganeti will assume that the corresponding VBD(s) location (i.e. |
301 | bced76fd | Jose A. Lopes | directory) is the same on the source and destination node. In case one |
302 | bced76fd | Jose A. Lopes | or more corresponding file(s) are not present on the destination node, |
303 | bced76fd | Jose A. Lopes | Ganeti will abort the operation. |
304 | bced76fd | Jose A. Lopes | |
305 | bced76fd | Jose A. Lopes | Replacing an instance disks |
306 | bced76fd | Jose A. Lopes | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
307 | bced76fd | Jose A. Lopes | |
308 | bced76fd | Jose A. Lopes | Since there is no data mirroring for file-backed VM there is no such |
309 | bced76fd | Jose A. Lopes | operation. |
310 | bced76fd | Jose A. Lopes | |
311 | bced76fd | Jose A. Lopes | Evacuation of a node |
312 | bced76fd | Jose A. Lopes | ^^^^^^^^^^^^^^^^^^^^ |
313 | bced76fd | Jose A. Lopes | |
314 | bced76fd | Jose A. Lopes | Since there is no data mirroring for file-backed VMs there is no such |
315 | bced76fd | Jose A. Lopes | operation. |
316 | bced76fd | Jose A. Lopes | |
317 | bced76fd | Jose A. Lopes | Live migration |
318 | bced76fd | Jose A. Lopes | ^^^^^^^^^^^^^^ |
319 | bced76fd | Jose A. Lopes | |
320 | bced76fd | Jose A. Lopes | Live migration is possible using file-backed VBDs. However, the |
321 | bced76fd | Jose A. Lopes | administrator has to make sure that the corresponding files are exactly |
322 | bced76fd | Jose A. Lopes | the same on the source and destination node. |
323 | bced76fd | Jose A. Lopes | |
324 | bced76fd | Jose A. Lopes | Xen Setup |
325 | bced76fd | Jose A. Lopes | +++++++++ |
326 | bced76fd | Jose A. Lopes | |
327 | bced76fd | Jose A. Lopes | File creation |
328 | bced76fd | Jose A. Lopes | ~~~~~~~~~~~~~ |
329 | bced76fd | Jose A. Lopes | |
330 | bced76fd | Jose A. Lopes | Creation of a raw file is simple. Example of creating a sparse file of 2 |
331 | bced76fd | Jose A. Lopes | Gigabytes. The option "seek" instructs "dd" to create a sparse file:: |
332 | bced76fd | Jose A. Lopes | |
333 | bced76fd | Jose A. Lopes | dd if=/dev/zero of=vm1disk bs=1k seek=2048k count=1 |
334 | bced76fd | Jose A. Lopes | |
335 | bced76fd | Jose A. Lopes | Creation of QCOW image files can be done with the "qemu-img" utility (in |
336 | bced76fd | Jose A. Lopes | debian it comes with the "qemu" package). |
337 | bced76fd | Jose A. Lopes | |
338 | bced76fd | Jose A. Lopes | Config file |
339 | bced76fd | Jose A. Lopes | ~~~~~~~~~~~ |
340 | bced76fd | Jose A. Lopes | |
341 | bced76fd | Jose A. Lopes | The Xen config file will have the following modification if one chooses |
342 | bced76fd | Jose A. Lopes | the file-based disk-template. |
343 | bced76fd | Jose A. Lopes | |
344 | bced76fd | Jose A. Lopes | 1) loopback driver and raw file |
345 | bced76fd | Jose A. Lopes | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
346 | bced76fd | Jose A. Lopes | |
347 | bced76fd | Jose A. Lopes | :: |
348 | bced76fd | Jose A. Lopes | |
349 | bced76fd | Jose A. Lopes | disk = ['file:</path/to/file>,sda1,w'] |
350 | bced76fd | Jose A. Lopes | |
351 | bced76fd | Jose A. Lopes | 2) blktap driver and raw file |
352 | bced76fd | Jose A. Lopes | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
353 | bced76fd | Jose A. Lopes | |
354 | bced76fd | Jose A. Lopes | :: |
355 | bced76fd | Jose A. Lopes | |
356 | bced76fd | Jose A. Lopes | disk = ['tap:aio:,sda1,w'] |
357 | bced76fd | Jose A. Lopes | |
358 | bced76fd | Jose A. Lopes | 3) blktap driver and qcow file |
359 | bced76fd | Jose A. Lopes | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
360 | bced76fd | Jose A. Lopes | |
361 | bced76fd | Jose A. Lopes | :: |
362 | bced76fd | Jose A. Lopes | |
363 | bced76fd | Jose A. Lopes | disk = ['tap:qcow:,sda1,w'] |
364 | bced76fd | Jose A. Lopes | |
365 | bced76fd | Jose A. Lopes | Other hypervisors |
366 | bced76fd | Jose A. Lopes | +++++++++++++++++ |
367 | bced76fd | Jose A. Lopes | |
368 | bced76fd | Jose A. Lopes | Other hypervisors have mostly differnet ways to make storage available |
369 | bced76fd | Jose A. Lopes | to their virtual instances/machines. This is beyond the scope of this |
370 | bced76fd | Jose A. Lopes | document. |