1
0
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:
David Teigland 2015-01-21 11:08:12 -06:00
parent bea003e94c
commit e0dc3d5efb

View File

@ -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