Root/
1 | dm-zero |
2 | ======= |
3 | |
4 | Device-Mapper's "zero" target provides a block-device that always returns |
5 | zero'd data on reads and silently drops writes. This is similar behavior to |
6 | /dev/zero, but as a block-device instead of a character-device. |
7 | |
8 | Dm-zero has no target-specific parameters. |
9 | |
10 | One very interesting use of dm-zero is for creating "sparse" devices in |
11 | conjunction with dm-snapshot. A sparse device reports a device-size larger |
12 | than the amount of actual storage space available for that device. A user can |
13 | write data anywhere within the sparse device and read it back like a normal |
14 | device. Reads to previously unwritten areas will return a zero'd buffer. When |
15 | enough data has been written to fill up the actual storage space, the sparse |
16 | device is deactivated. This can be very useful for testing device and |
17 | filesystem limitations. |
18 | |
19 | To create a sparse device, start by creating a dm-zero device that's the |
20 | desired size of the sparse device. For this example, we'll assume a 10TB |
21 | sparse device. |
22 | |
23 | TEN_TERABYTES=`expr 10 \* 1024 \* 1024 \* 1024 \* 2` # 10 TB in sectors |
24 | echo "0 $TEN_TERABYTES zero" | dmsetup create zero1 |
25 | |
26 | Then create a snapshot of the zero device, using any available block-device as |
27 | the COW device. The size of the COW device will determine the amount of real |
28 | space available to the sparse device. For this example, we'll assume /dev/sdb1 |
29 | is an available 10GB partition. |
30 | |
31 | echo "0 $TEN_TERABYTES snapshot /dev/mapper/zero1 /dev/sdb1 p 128" | \ |
32 | dmsetup create sparse1 |
33 | |
34 | This will create a 10TB sparse device called /dev/mapper/sparse1 that has |
35 | 10GB of actual storage space available. If more than 10GB of data is written |
36 | to this device, it will start returning I/O errors. |
37 | |
38 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9