LVM 문제로 어려움을 겪고 있습니다. 기존 LV에 쓰기 캐시가 연결되어 있습니다. 나는 LV와 쓰기 캐시를 폴링했습니다.
lvs -o+writecache_total_blocks,writecache_free_blocks
그러나 아무리 오래 기다려도 사용 가능한 블록은 총 블록 수에 도달하지 않습니다. 마치 쓰기 후에 캐시가 완전히 비워지지 않은 것과 같습니다. 전체 블록 수의 절반 정도만 도달한 다음 그대로 유지되었습니다.
이는 예상된 동작입니까, 아니면 쓰기 후에 캐시가 제대로 플러시되지 않습니까?
답변1
캐시 쓰기 저장은 Stop low water mark at high water mark 사용하는lvconvert --type writecache
대신--type cache
쓰기 저장 시 캐시를 완전히 비우려면 최저 워터마크를 0%로 설정하면 됩니다. 이는 --cachesettings 'low_watermark=0'
캐시를 생성할 때 옵션이 됩니다 . 또는 --cachesettings 'cleaner=1'
캐시가 LV에서 제거될 때 lvconvert --splitcache
이 작업이 어떻게 수행되거나 수행될 것인지와 같이 캐시에 있는 모든 데이터의 점진적인 플러시를 설정하고 싶을 수도 있습니다 . lvconvert --uncache
다른 조정 가능한 설정이 있습니다. 자세한 내용은 매뉴얼 페이지를 참조하십시오 lvmcache(7)
.
옵션을 설정하지 않으면 --cachesettings
쓰기 캐싱은 커널에 내장된 기본값을 사용하여 작동합니다. 모든 사용자 정의 캐시 설정은 다음을 통해 확인할 수 있습니다 lvs -o +cache_settings
. 캐시가 커널 기본값을 사용하는 경우 이 CacheSettings
열은 비어 있습니다.