2.4. Discard Unused Blocks
Batch discard and online discard operations are features of mounted file systems that discard blocks not in use by the file system. They are useful for both solid-state drives and thinly-provisioned storage.
- Batch discard operations are run explicitly by the user with the
fstrimcommand. This command discards all unused blocks in a file system that match the user's criteria.
- Online discard operations are specified at mount time, either with the
-o discardoption as part of a
mountcommand or with the
discardoption in the
/etc/fstabfile. They run in real time without user intervention. Online discard operations only discard blocks that are transitioning from used to free.
Both operation types are supported for use with ext4 file systems as of Red Hat Enterprise Linux 6.2 and later and with XFS file systems since Red Hat Enterprise Linux 6.4. Also, the block device underlying the file system must support physical discard operations. Physical discard operations are supported if the value stored in the
/sys/block/device/queue/discard_max_bytesfile is not zero.
If you are executing the
- a device that does not support discard operations, or
- a logical device (LVM or MD) comprised of multiple devices, where any one of the device does not support discard operations
the following message will be displayed:
fstrim -v /mnt/non_discardfstrim: /mnt/non_discard: the discard operation is not supported
mountcommand allows you to mount a device that does not support discard operations with the
Red Hat recommends batch discard operations unless the system's workload is such that batch discard is not feasible, or online discard operations are necessary to maintain performance.
For more information, see the fstrim(8) and mount(8) man pages.