![블록 장치를 캐시하는 방법(장치 매퍼용)](https://linux55.com/image/80174/%EB%B8%94%EB%A1%9D%20%EC%9E%A5%EC%B9%98%EB%A5%BC%20%EC%BA%90%EC%8B%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95(%EC%9E%A5%EC%B9%98%20%EB%A7%A4%ED%8D%BC%EC%9A%A9).png)
이슈/관찰된 효과
페이지 캐시는 열리지 않은 블록 장치를 무시하는 것 같습니다. 더 나쁜 점은 캐시된 장치를 사용하는 DM(장치 매퍼) 장치에서 읽은 데이터가 전혀 캐시되지 않는다는 점입니다(켜져 있지 않은 경우).
테스트를 위해 이 명령을 (반복적으로) 사용합니다.
time dd if=/dev/sda11 of=/dev/null bs=50M count=1
sda11
캐싱은 읽기용으로 열거나( exec 4</dev/sda11
), 마운트하거나 장치 매퍼 장치의 일부로( ) 사용할 경우 echo "0 1427456 linear /dev/sda11 0" | dmsetup create cache1
작동합니다 .
그러나 sda11 위에 /dev/mapper/cache1을 생성하면 첫 번째 읽기나 두 번째 읽기 모두 캐시에서 나오지 않습니다(어쨌든 켜져 있지 않은 경우).
동기 부여
내가 이렇게 하는 이유는 암호화된 볼륨이 있고 내 (KDE) 시스템을 부팅하는 데 꽤 오랜 시간이 걸리기 때문입니다. 암호화된 볼륨을 열기 전에 몇 가지 수동 준비를 했기 때문에 이번에는 암호화된 장치(LVM)에서 데이터를 읽어 KDE 시작 속도를 높일 수 있을 것이라고 생각했습니다. 그러나 언급된 캐시 문제의 경우 이는 아무 소용이 없습니다.
질문
나중에 생성된 DM 암호화 장치를 통해 (채워진) 캐시를 통해 LV에서 데이터를 읽는 방법이 있습니까?