mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
lvmthin: update data space exhaustion
This commit is contained in:
parent
bea003e94c
commit
e0dc3d5efb
@ -716,14 +716,16 @@ For a 1G pool, using 700M will trigger a resize to 1.2G. When the usage exceeds
|
|||||||
\&
|
\&
|
||||||
|
|
||||||
When properly managed, thin pool data space should be extended before it
|
When properly managed, thin pool data space should be extended before it
|
||||||
is exhausted (see previous section). But, if thin pool data space is
|
is exhausted (see the section "Automatically extend thin pool LV"). If
|
||||||
exhausted, the thin pool behavior is configurable with the --errorwhenfull
|
thin pool data space is already exhausted, it can still be extended (see
|
||||||
y|n option to lvcreate or lvchange. The errorwhenfull setting applies
|
the section "Manually manage free data space of thin pool LV".)
|
||||||
only to writes; reading thin LVs can continue even when data space is
|
|
||||||
exhausted.
|
|
||||||
|
|
||||||
Command to change the handling of data space exhaustion of an existing
|
The behavior of a full thin pool with no remaining data space is
|
||||||
thin pool LV:
|
configurable with the --errorwhenfull y|n option to lvcreate or lvchange.
|
||||||
|
The errorwhenfull setting applies only to writes; reading thin LVs can
|
||||||
|
continue even when data space is exhausted.
|
||||||
|
|
||||||
|
Command to change the handling of no data space of a thin pool:
|
||||||
|
|
||||||
.B lvchange --errorwhenfull {y|n} VG/ThinPoolLV
|
.B lvchange --errorwhenfull {y|n} VG/ThinPoolLV
|
||||||
|
|
||||||
@ -737,24 +739,25 @@ is extended, the queued writes will be processed, and the thin pool will
|
|||||||
return to normal operation.
|
return to normal operation.
|
||||||
|
|
||||||
While waiting to be extended, the thin pool will queue writes for up to 60
|
While waiting to be extended, the thin pool will queue writes for up to 60
|
||||||
seconds. If data space has not been extended after this time, the queued
|
seconds (the default). If data space has not been extended after this
|
||||||
writes will return an error to the caller, e.g. the file system. This can
|
time, the queued writes will return an error to the caller, e.g. the file
|
||||||
result in file system corruption that may require fsck to repair.
|
system. This can result in file system corruption that may require fsck.
|
||||||
|
|
||||||
The 60 second timeout can be changed or disabled with the dm\-thin\-pool
|
The 60 second timeout can be changed or disabled with the dm\-thin\-pool
|
||||||
kernel module option
|
kernel module option
|
||||||
.B no_space_timeout.
|
.B no_space_timeout.
|
||||||
This option sets the number of seconds that thin pools will queue writes.
|
This option sets the number of seconds that thin pools will queue writes.
|
||||||
If set to 0, writes will not time out. Disabling timeouts may result in
|
If set to 0, writes will not time out. Disabling timeouts can result in
|
||||||
the system exhausting memory if too many writes are queued.
|
the system running out of resources, memory exhaustion, hung tasks, and
|
||||||
|
deadlocks. (The timeout applies to all thin pools on the system.)
|
||||||
|
|
||||||
.B errorwhenfull y
|
.B errorwhenfull y
|
||||||
|
|
||||||
Writes to thin LVs immediately return an error, and no writes are queued.
|
Writes to thin LVs immediately return an error, and no writes are queued.
|
||||||
In the case of a file system, this can result in corruption that may
|
In the case of a file system, this can result in corruption that may
|
||||||
require fsck to repair (the specific consequences depend on the thin LV
|
require fsck (the specific consequences depend on the thin LV user.)
|
||||||
user.)
|
|
||||||
|
|
||||||
|
.B display data percent
|
||||||
|
|
||||||
When data space is exhausted, the lvs command displays 100 under Data% for
|
When data space is exhausted, the lvs command displays 100 under Data% for
|
||||||
the thin pool LV:
|
the thin pool LV:
|
||||||
@ -765,24 +768,25 @@ the thin pool LV:
|
|||||||
pool0 vg twi-a-tz-- 512.00m 100.00
|
pool0 vg twi-a-tz-- 512.00m 100.00
|
||||||
.fi
|
.fi
|
||||||
|
|
||||||
A thin pool can run out of data blocks for any of the following reasons:
|
.B causes
|
||||||
|
|
||||||
1. Automatic extension of the thin pool is disabled, and the thin pool is
|
A thin pool may run out of data space for any of the following reasons:
|
||||||
not manually extended. (Disabling automatic extension is not
|
|
||||||
recommended.)
|
|
||||||
|
|
||||||
2. The dmeventd daemon is not running and the thin pool is not manually
|
.IP \[bu] 2
|
||||||
|
Automatic extension of the thin pool is disabled, and the thin pool is not
|
||||||
|
manually extended. (Disabling automatic extension is not recommended.)
|
||||||
|
|
||||||
|
.IP \[bu]
|
||||||
|
The dmeventd daemon is not running and the thin pool is not manually
|
||||||
extended. (Disabling dmeventd is not recommended.)
|
extended. (Disabling dmeventd is not recommended.)
|
||||||
|
|
||||||
3. Automatic extension of the thin pool is too slow given the rate of
|
.IP \[bu]
|
||||||
writes to thin LVs in the pool. (This can be addressed by tuning the
|
Automatic extension of the thin pool is too slow given the rate of writes
|
||||||
|
to thin LVs in the pool. (This can be addressed by tuning the
|
||||||
thin_pool_autoextend_threshold and thin_pool_autoextend_percent.)
|
thin_pool_autoextend_threshold and thin_pool_autoextend_percent.)
|
||||||
|
|
||||||
4. The VG does not have enough free blocks to extend the thin pool.
|
.IP \[bu]
|
||||||
|
The VG does not have enough free blocks to extend the thin pool.
|
||||||
The response to data space exhaustion is to extend the thin pool. This is
|
|
||||||
described in the section "Manually manage free data space of thin pool
|
|
||||||
LV".
|
|
||||||
|
|
||||||
|
|
||||||
.SS Metadata space exhaustion
|
.SS Metadata space exhaustion
|
||||||
|
Loading…
Reference in New Issue
Block a user