단일 bcache 캐시 드라이브를 지원되는 여러 장치에 연결할 수 있습니다. bcache는 최상위 파일 시스템에 대해 알지 못하므로 이는 내가 아는 한 이러한 장치에 대한 소프트웨어 RAID 구성에 대해서도 모른다는 것을 의미합니다.
예: 쓰기 캐시용 추가 SSD가 있는 bcache 위에 Btrfs RAID1(사본 2개)이 있는 드라이브 3개. Bcache는 RAID1과 디스크의 데이터 중복을 인식하지 못하므로 다른 드라이브에서 읽은 각 블록은 별도로 캐시됩니다. 이는 데이터가 캐시에 복제된다는 의미입니다. 이는 또한 하나의 지원 장치 블록에서는 캐시되었지만 다른 지원 장치 블록에서는 캐시되지 않은 데이터에 대해 항상 50%의 캐시 누락이 있음을 의미합니다. 이는 데이터 복제가 포함된 RAID 구성에서 캐싱의 효율성을 떨어뜨립니다.
위의 예보다 더 효율적인 캐싱 대안은 Linux RAID, bcache 및 Btrfs를 혼합하는 것입니다. 디스크의 md-raid/lvm RAID1 상단에 있는 bcache 상단에 Btrfs(비RAID)가 있습니다. 그러나 RAID의 각 블록 복사본에 대한 Btrfs 체크섬이 손실되어 데이터용 RAID1과 메타데이터용 RAID1c3을 생성할 수 없습니다.
위에 쓴 내용이 모두 사실인가요? RAID1 설정에서 캐시의 데이터 중복을 방지하기 위한 더 나은 캐시 구성이 있습니까?
답변1
나에게 효과가 있었던 것은 어레이 뒤의 각 장치가 아닌 전체 어레이를 캐싱하는 것이었습니다. 캐시를 RAID하는 대신 RAID를 캐싱합니다.
좀 더 자세히 논의해보세요 여기