[Bug 1213631] Re: Trim doesn't work with lvm and dm-crypt
frostschutz
1213631 at bugs.launchpad.net
Sun Sep 29 08:27:49 UTC 2013
It turns out to be a caching issue.
When a region of the SSD is trimmed, that data is lost. However for some
unfathomable reason, Linux keeps the data in its caches. As a result,
the 2nd dd call returns wrong data, making it seem as if the TRIM didn't
work regardless whether it really did or not.
I am not sure if this is a kernel bug or not. It should not have any ill
effects in practice (after all who usually tries to read from a freshly
TRIMmed region?) but even so it seems like a waste of cache memory if
it's occupied by invalidated data.
Anyway, drop caches before issuing the dd command.
echo 1 | sudo tee /proc/sys/vm/drop_caches
sudo dd bs=4096 skip=2224384 count=256 if=/dev/mapper/lubuntu--vg-
root | hexdump -C
Then see if it still returns y.y.y. or not. If it does not - trim has
been working as it is supposed to be.
Also the issue_discards in LVM is not strictly necessary, it only
affects lvremove, lvreduce, etc. Filesystem based TRIM seem to be passed
on by LVM unconditionally.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to lvm2 in Ubuntu.
https://bugs.launchpad.net/bugs/1213631
Title:
Trim doesn't work with lvm and dm-crypt
Status in cryptsetup:
New
Status in lvm2 - Logical Volume Manager:
New
Status in The Util-Linux-ng Set of Utilities:
New
Status in “lvm2” package in Ubuntu:
Confirmed
Bug description:
I want to use fstrim together with lvm and dm-crypt but it doesn't
work (see test procedure below). The problem seems to be somewhere in
the lvm layer. Is there any fix or workaround for this?
My configuration:
`cat /etc/crypttab`
sda3_crypt UUID=[...] none luks,discard
and
`cat /etc/lvm/lvm.conf`
# [...]
devices {
# [ ... ]
issue_discards = 1
# [ ... ]
}
# [...]
The SSD is a Samsung 840 Pro.
Here is the output of `sudo dmsetup table`
lubuntu--vg-root: 0 465903616 linear 252:0 2048
lubuntu--vg-swap_1: 0 33308672 linear 252:0 465905664
sda3_crypt: 0 499222528 crypt aes-xts-plain64 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 8:3 4096 1 allow_discards
Here is my `/etc/fstab`:
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/lubuntu--vg-root / ext4 errors=remount-ro 0 1
# /boot was on /dev/sda2 during installation
UUID=f700d855-96d0-495e-a480-81f52b965bda /boot ext2 defaults 0 2
# /boot/efi was on /dev/sda1 during installation
UUID=2296-2E49 /boot/efi vfat defaults 0 1
/dev/mapper/lubuntu--vg-swap_1 none swap sw 0 0
# tmp
tmpfs /tmp tmpfs nodev,nosuid,noexec,mode=1777 0 0
Testing procedure:
yes | dd iflag=fullblock bs=1M count=1 of=trim.test
filefrag -s -v trim.test
Filesystem type is: ef53
File size of trim.test is 1048576 (256 blocks, blocksize 4096)
ext logical physical expected length flags
0 0 2224384 256 eof
trim.test: 1 extent found
df trim.test
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/lubuntu--vg-root 229164268 38651596 178865084 18% /
sudo dd bs=4096 skip=2224384 count=256 if=/dev/mapper/lubuntu--vg-root | hexdump -C
00000000 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a |y.y.y.y.y.y.y.y.|
*
256+0 records in
256+0 records out
1048576 bytes (1,0 MB) copied, 0,00328209 s, 319 MB/s
00100000
rm trim.test
sync
sudo fstrim -v /
/: 695181312 bytes were trimmed
sync
sudo dd bs=4096 skip=2224384 count=256 if=/dev/mapper/lubuntu--vg-root | hexdump -C
00000000 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a |y.y.y.y.y.y.y.y.|
*
256+0 records in
256+0 records out
1048576 bytes (1,0 MB) copied, 0,00166157 s, 631 MB/s
00100000
I.e. the y pattern persists which indicates that TRIM doesn't work. See also my post on unix-stackexchange: http://unix.stackexchange.com/questions/85865/trim-with-lvm-and-dm-crypt
ProblemType: Bug
DistroRelease: Ubuntu 13.04
Package: lvm2 2.02.95-6ubuntu4
ProcVersionSignature: Ubuntu 3.8.0-27.40-generic 3.8.13.4
Uname: Linux 3.8.0-27-generic x86_64
ApportVersion: 2.9.2-0ubuntu8.3
Architecture: amd64
Date: Sun Aug 18 14:31:46 2013
InstallationDate: Installed on 2013-08-03 (14 days ago)
InstallationMedia: Lubuntu 13.04 "Raring Ringtail" - Release amd64 (20130423.1)
MarkForUpload: True
SourcePackage: lvm2
UpgradeStatus: No upgrade log present (probably fresh install)
To manage notifications about this bug go to:
https://bugs.launchpad.net/cryptsetup/+bug/1213631/+subscriptions
More information about the foundations-bugs
mailing list