Re: Should issue_discards be enabled when e2scrub is used on an SSD?

Mikhail Morfikov <[email protected]> Tue, 2 Jan 2024 13:01:35 +0100
Newsgroups dev.linux.lists.linux-lvm
Message-ID <[email protected]>
On 02/01/2024 12.45, Zdenek Kabelac wrote:
> 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
> 

I see, thanks for the info.