FITRIM/discard: Difference between revisions
Initial creation |
|||
(4 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
== Purpose == | == Purpose == | ||
FITRIM is a mounted filesystem feature to discard (or "[ | FITRIM is a mounted filesystem feature to discard (or "[https://en.wikipedia.org/wiki/TRIM trim]") blocks which are not in use by the filesystem. This is useful for solid-state drives (SSDs) and thinly-provisioned storage. | ||
== Requirements == | == Requirements == | ||
Line 7: | Line 7: | ||
#The block device underneath the filesystem must support the FITRIM operation. | #The block device underneath the filesystem must support the FITRIM operation. | ||
#The kernel must include TRIM support and XFS must include FITRIM support (this has been true for Linux since v2.6.38, Jan 18 2011) | #The kernel must include TRIM support and XFS must include FITRIM support (this has been true for Linux since v2.6.38, Jan 18 2011) | ||
#Realtime discard mode requires a more recent v3.0 kernel | |||
This can be verified by viewing /sys/block/<dev>/queue/discard_max_bytes -- If the value is zero then your device doesn't support discard | This can be verified by viewing /sys/block/<dev>/queue/discard_max_bytes -- If the value is zero then your device doesn't support discard | ||
Line 19: | Line 20: | ||
This mode issues discard requests automatically as files are removed from the filesystem. No other command or process is required. | This mode issues discard requests automatically as files are removed from the filesystem. No other command or process is required. | ||
There can be a severe performance penalty for enabling realtime discard. (4) | |||
Realtime discard is selected by adding the filesystem option <code>discard</code> while mounting. | Realtime discard is selected by adding the filesystem option <code>discard</code> while mounting. | ||
Line 29: | Line 32: | ||
=== Batch Mode === | === Batch Mode === | ||
This mode requires user intervention. This intervention is in the form of the command <code>fstrim</code>. It has been included in [ | This mode requires user intervention. This intervention is in the form of the command <code>fstrim</code>. It has been included in [https://en.wikipedia.org/wiki/Util-linux util-linux-ng] since about Nov 26, 2010. | ||
Usage example: | Usage example: | ||
Line 38: | Line 41: | ||
== References == | == References == | ||
# FITRIM description - Lukas Czerner <lczerner at redhat.com> http://patchwork.xfs.org/patch/1490/ | # FITRIM description - Lukas Czerner <lczerner at redhat.com> 2010-12-10 15:53:27 Message ID <1291996407-26251-1-git-send-email-lczerner@redhat.com> http://patchwork.xfs.org/patch/1490/ | ||
# Block requirements - Dave Chinner <david at fromorbit.com> http://oss.sgi.com/pipermail/xfs/2011-October/ | # Block requirements - Dave Chinner <david at fromorbit.com> 2011-10-10 21:05:52 http://oss.sgi.com/pipermail/xfs/2011-October/014867.html | ||
# util-linux-ng addition - Karel Zak <kzak@xxxxxxxxxx> http://www.spinics.net/lists/util-linux-ng/msg03646.html | # util-linux-ng addition - Karel Zak <kzak@xxxxxxxxxx> 2010-11-26 15:17:39 http://www.spinics.net/lists/util-linux-ng/msg03646.html | ||
# Online TRIM/discard performance impact - Christoph Hellwig <hch at infradead.org> 2011-11-07 04:21:21 http://oss.sgi.com/pipermail/xfs/2011-November/015329.html |
Latest revision as of 16:25, 31 August 2012
Purpose[edit | edit source]
FITRIM is a mounted filesystem feature to discard (or "trim") blocks which are not in use by the filesystem. This is useful for solid-state drives (SSDs) and thinly-provisioned storage.
Requirements[edit | edit source]
- The block device underneath the filesystem must support the FITRIM operation.
- The kernel must include TRIM support and XFS must include FITRIM support (this has been true for Linux since v2.6.38, Jan 18 2011)
- Realtime discard mode requires a more recent v3.0 kernel
This can be verified by viewing /sys/block/<dev>/queue/discard_max_bytes -- If the value is zero then your device doesn't support discard operations.
Modes of Operation[edit | edit source]
- Realtime discard -- As files are removed, the filesystem issues discard requests automatically
- Batch Mode -- A user procedure that trims all or portions of the filesystem
Realtime discard[edit | edit source]
This mode issues discard requests automatically as files are removed from the filesystem. No other command or process is required.
There can be a severe performance penalty for enabling realtime discard. (4)
Realtime discard is selected by adding the filesystem option discard
while mounting.
This can be done by the following examples:
- placing
discard
in your /etc/fstab for the filesystem:/dev/sda1 /mountpoint xfs defaults,discard 0 1
- mount options:
mount -o discard /dev/sda1 /mountpoint
Batch Mode[edit | edit source]
This mode requires user intervention. This intervention is in the form of the command fstrim
. It has been included in util-linux-ng since about Nov 26, 2010.
Usage example:
fstrim /mountpoint
References[edit | edit source]
- FITRIM description - Lukas Czerner <lczerner at redhat.com> 2010-12-10 15:53:27 Message ID <1291996407-26251-1-git-send-email-lczerner@redhat.com> http://patchwork.xfs.org/patch/1490/
- Block requirements - Dave Chinner <david at fromorbit.com> 2011-10-10 21:05:52 http://oss.sgi.com/pipermail/xfs/2011-October/014867.html
- util-linux-ng addition - Karel Zak <kzak@xxxxxxxxxx> 2010-11-26 15:17:39 http://www.spinics.net/lists/util-linux-ng/msg03646.html
- Online TRIM/discard performance impact - Christoph Hellwig <hch at infradead.org> 2011-11-07 04:21:21 http://oss.sgi.com/pipermail/xfs/2011-November/015329.html