From e0dc3d5efb6da6d45994f88e9d89e6657a183aac Mon Sep 17 00:00:00 2001 From: David Teigland Date: Wed, 21 Jan 2015 11:08:12 -0600 Subject: [PATCH] lvmthin: update data space exhaustion --- man/lvmthin.7.in | 56 ++++++++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/man/lvmthin.7.in b/man/lvmthin.7.in index 86456a527..908701a92 100644 --- a/man/lvmthin.7.in +++ b/man/lvmthin.7.in @@ -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 -is exhausted (see previous section). But, if thin pool data space is -exhausted, the thin pool behavior is 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. +is exhausted (see the section "Automatically extend thin pool LV"). If +thin pool data space is already exhausted, it can still be extended (see +the section "Manually manage free data space of thin pool LV".) -Command to change the handling of data space exhaustion of an existing -thin pool LV: +The behavior of a full thin pool with no remaining data space is +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 @@ -737,24 +739,25 @@ is extended, the queued writes will be processed, and the thin pool will return to normal operation. 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 -writes will return an error to the caller, e.g. the file system. This can -result in file system corruption that may require fsck to repair. +seconds (the default). If data space has not been extended after this +time, the queued writes will return an error to the caller, e.g. the file +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 kernel module option .B no_space_timeout. 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 -the system exhausting memory if too many writes are queued. +If set to 0, writes will not time out. Disabling timeouts can result in +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 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 -require fsck to repair (the specific consequences depend on the thin LV -user.) +require fsck (the specific consequences depend on the thin LV user.) +.B display data percent When data space is exhausted, the lvs command displays 100 under Data% for the thin pool LV: @@ -765,24 +768,25 @@ the thin pool LV: pool0 vg twi-a-tz-- 512.00m 100.00 .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 -not manually extended. (Disabling automatic extension is not -recommended.) +A thin pool may run out of data space for any of the following reasons: -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.) -3. 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 +.IP \[bu] +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.) -4. 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". +.IP \[bu] +The VG does not have enough free blocks to extend the thin pool. .SS Metadata space exhaustion