Difference between revisions of "Ploop/sparse"
m (add 'translate' tags) |
(Marked this version for translation) |
||
Line 1: | Line 1: | ||
<translate> | <translate> | ||
+ | <!--T:1--> | ||
'''Sparse file''' is a file that contains blocks of zeroes that are not allocated on disk (see [[w:Sparse file]]). By design, ploop images can't contain such non-allocated blocks. | '''Sparse file''' is a file that contains blocks of zeroes that are not allocated on disk (see [[w:Sparse file]]). By design, ploop images can't contain such non-allocated blocks. | ||
+ | <!--T:2--> | ||
While ploop is never creating sparse image files, they can be accidentally made so when tools such as <code>rsync --sparse</code> or <code>cp --sparse=always</code> are used to copy images. So, one should not use backup or copy tools that create sparse files out of non-sparse ones. | While ploop is never creating sparse image files, they can be accidentally made so when tools such as <code>rsync --sparse</code> or <code>cp --sparse=always</code> are used to copy images. So, one should not use backup or copy tools that create sparse files out of non-sparse ones. | ||
− | == Kernel warning == | + | == Kernel warning == <!--T:3--> |
+ | <!--T:4--> | ||
In case sparse file is detected by the kernel, it gives a warning in dmesg, for example: | In case sparse file is detected by the kernel, it gives a warning in dmesg, for example: | ||
− | Nov 21 20:37:27 sun kernel: [43451.057489] ploop(24002): a hole in image file detected (0) | + | <!--T:5--> |
+ | Nov 21 20:37:27 sun kernel: [43451.057489] ploop(24002): a hole in image file detected (0) | ||
+ | <!--T:6--> | ||
In case there are no other ploop-related warnings or errors immediately after, this one is harmless ({{B|2825}}). | In case there are no other ploop-related warnings or errors immediately after, this one is harmless ({{B|2825}}). | ||
− | == Userspace warnings == | + | == Userspace warnings == <!--T:7--> |
+ | <!--T:8--> | ||
You might see something like this (reported by ploop library) during container start or mount: | You might see something like this (reported by ploop library) during container start or mount: | ||
− | Error in check_and_repair_sparse (check.c:542): Delta file /vz/private/1407/root.hdd/root.hdd contains uninitialized blocks (offset=135573536768 len=1323008) which are not aligned to cluster size | + | <!--T:9--> |
+ | Error in check_and_repair_sparse (check.c:542): Delta file /vz/private/1407/root.hdd/root.hdd contains uninitialized blocks (offset=135573536768 len=1323008) which are not aligned to cluster size | ||
Error in fill_hole (check.c:456): Warning: ploop image '/vz/private/1407/root.hdd/root.hdd' is sparse | Error in fill_hole (check.c:456): Warning: ploop image '/vz/private/1407/root.hdd/root.hdd' is sparse | ||
Reallocating sparse blocks back | Reallocating sparse blocks back | ||
+ | <!--T:10--> | ||
The last line tells that ploop library is going to fix the problem. | The last line tells that ploop library is going to fix the problem. | ||
− | == How to fix == | + | == How to fix == <!--T:11--> |
+ | <!--T:12--> | ||
Since [[Download/ploop/1.10|ploop-1.10]], ploop images are checked for being sparse and are automatically fixed on mount, in case DiskDescriptor.xml is used. Otherwise, you can use <code>ploop check --repair-sparse</code> to check for and repair such images. | Since [[Download/ploop/1.10|ploop-1.10]], ploop images are checked for being sparse and are automatically fixed on mount, in case DiskDescriptor.xml is used. Otherwise, you can use <code>ploop check --repair-sparse</code> to check for and repair such images. | ||
+ | <!--T:13--> | ||
Alternatelely, you can just do something like this to get rid of holes. Make sure ploop file is not used! | Alternatelely, you can just do something like this to get rid of holes. Make sure ploop file is not used! | ||
− | cat root.hdd > root.hdd2 && mv root.hdd2 root.hdd | + | <!--T:14--> |
+ | cat root.hdd > root.hdd2 && mv root.hdd2 root.hdd | ||
− | == See also == | + | == See also == <!--T:15--> |
+ | <!--T:16--> | ||
* [[Ploop]] | * [[Ploop]] | ||
* [[w:Sparse file]] | * [[w:Sparse file]] |
Revision as of 08:42, 26 December 2015
<translate> Sparse file is a file that contains blocks of zeroes that are not allocated on disk (see w:Sparse file). By design, ploop images can't contain such non-allocated blocks.
While ploop is never creating sparse image files, they can be accidentally made so when tools such as rsync --sparse
or cp --sparse=always
are used to copy images. So, one should not use backup or copy tools that create sparse files out of non-sparse ones.
Kernel warning
In case sparse file is detected by the kernel, it gives a warning in dmesg, for example:
Nov 21 20:37:27 sun kernel: [43451.057489] ploop(24002): a hole in image file detected (0)
In case there are no other ploop-related warnings or errors immediately after, this one is harmless (#2825).
Userspace warnings
You might see something like this (reported by ploop library) during container start or mount:
Error in check_and_repair_sparse (check.c:542): Delta file /vz/private/1407/root.hdd/root.hdd contains uninitialized blocks (offset=135573536768 len=1323008) which are not aligned to cluster size
Error in fill_hole (check.c:456): Warning: ploop image '/vz/private/1407/root.hdd/root.hdd' is sparse Reallocating sparse blocks back
The last line tells that ploop library is going to fix the problem.
How to fix
Since ploop-1.10, ploop images are checked for being sparse and are automatically fixed on mount, in case DiskDescriptor.xml is used. Otherwise, you can use ploop check --repair-sparse
to check for and repair such images.
Alternatelely, you can just do something like this to get rid of holes. Make sure ploop file is not used!
cat root.hdd > root.hdd2 && mv root.hdd2 root.hdd
See also
</translate>