diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /Documentation/device-mapper/zero.txt |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'Documentation/device-mapper/zero.txt')
-rw-r--r-- | Documentation/device-mapper/zero.txt | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/Documentation/device-mapper/zero.txt b/Documentation/device-mapper/zero.txt new file mode 100644 index 000000000000..20fb38e7fa7e --- /dev/null +++ b/Documentation/device-mapper/zero.txt | |||
@@ -0,0 +1,37 @@ | |||
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 | |||