60GB SSD로 지원되는 200GB LVM 볼륨이 있습니다.lvmcache(7)
, Linux 커널 버전 4.7.2. 나는 이것을 시도해 왔고 fstrim
폐기가 제대로 작동하지 않거나 전혀 작동하지 않는 것 같습니다.
$ df /dev/mapper/vg0-test
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg0-test 199G 46G 143G 25% /media/test
# lsblk -D /dev/mapper/vg0-test
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
vg0-test 0 16M 16G 0
# fstrim -v /media/test
/media/test: 132.4 GiB (142170128384 bytes) trimmed
# lvs -o+devices,cache_total_blocks,cache_used_blocks,cache_dirty_blocks,cache_read_hits,cache_read_misses,cache_write_hits,cache_write_misses,segtype,discards
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices CacheTotalBlocks CacheUsedBlocks CacheDirtyBlocks CacheReadHits CacheReadMisses CacheWriteHits CacheWriteMisses Type Discards
test vg0 Cwc-aoC--- 200.00g [test-cache] 100.00 23.83 0.00 test_corig(0) 983040 983040 39 44554204 5209836 79687783 2798870 cache
fstrim
사용되는 실제 공간이 캐시 크기보다 작기 때문에 lvmcache를 사용하면 사용되지 않는 캐시 블록을 제거하고 기본 SSD를 정리할 수 있기를 바랍니다 . 하지만 그런 일은 일어나지 않는 것 같습니다.
내가 갖고 있는 커널 버전이 내가 기대하는 기능을 지원합니까? DM 및 블록 레이어 코드를 읽는 것은 간단한 일이 아니므로 가능하면 이 문제를 어려운 방법으로 해결하지 않는 것이 좋습니다.
지원된다면 LVM 설정에 문제가 있는 것인가요? 나는 폐기하는 기본 LVM 동작이 기본 장치에 전달하는 것이라고 생각하지만 뭔가 빠졌을 수도 있습니다.