Re: Should issue_discards be enabled when e2scrub is used on an SSD?
Zdenek Kabelac <[email protected]> Tue, 2 Jan 2024 12:45:18 +0100
| Newsgroups | gmane.linux.lvm.general |
|---|---|
| Message-ID | <[email protected]> |
Dne 02. 01. 24 v 12:13 Mikhail Morfikov napsal(a): > On 02/01/2024 11.41, Zdenek Kabelac wrote: >> Dne 29. 12. 23 v 1:48 Mikhail Morfikov napsal(a): >>> I've got the following setup: LUKSv2+LVM on an SSD drive, and I >>> have trim/discad enabled for encrypted container. I also use >>> e2scrub for Online ext4 Metadata Check which uses a 4 GiB LVM >>> snapshot. I currently have 10 logical volumes, which are >>> periodically (once a week) scanned for errors. I've got a question >>> concerning the *issue_discards* option that can be specified in the >>> /etc/lvm/lvm.conf file. What actually happens when this option is >>> enabled and the LVM snapshot is removed after fsck finishes its >>> job? Will the whole 4 GiB be erased on the flash? Is it safe to >>> enable this option in such case, or is it better to leave it disabled? >> >> Hello >> >> issue_discards is relevant only when you *REMOVE* LVs - the free >> space in VG is after such removal 'discarded' - which is only useful >> in case you i.e. pay for 'provisioned' space for your VG (or you have >> some very very very old ssd) - so this will make you VG space >> consumption smaller - but it will also make restoring of accidentally >> removed LVs impossible as the recovered LV will be simply just an >> empty disk space. >> >> So for 100% you don't need to enabled it for e2scrub as discards are >> normally passed through to your LV device as you may easily check in >> your sysfs dir: >> >> /sys/block/XXXX/queue/discard_max_bytes >> >> Regards >> >> Zdenek >> > > I understand, but the question concerns rather the amount of data written > to the SSD disk. So I have a 4 GiB LVM snapshot, which will be removed > after fsck. Will the whole 4 GiB be written to the disk when issue_discards > is set in the /etc/lvm/lvm.conf file? The whole size of removed LV will be discard. It's mostly equivalent of using 'blkdiscard /dev/vg/lv' just before calling lvremove vg/lv. lvm2 doesn't interpret in any way what has been used physically used within the LV. Regards Zdenek