플래시 캐시

Flashcache

FlashcacheLinux 커널용 디스크 캐시 구성 요소로, Facebook이 2010년 4월부터 처음 개발하여 2011년에 오픈 소스로 출시했습니다.2013년 1월부터 Enhanced라는 이름의 Flashcache가 출시되었습니다.IOsTec, Inc.[1]에 의해 개발되었습니다.2015년부터 그 포크는 유지보수가 되지 않게 되었고 개인이 [2]다시 포크를 만들어 유지보수를 하게 되었습니다.

FlashCache는 플래시 메모리, USB 플래시 드라이브, SD 카드, CompactFlash 또는 모든 종류의 휴대용 플래시 대용량 스토리지 시스템을 라이트백 영구 캐시로 사용하여 작동합니다.내장 SSD를 사용하여 성능을 향상시킬 수도 있습니다.

개요

캐시에 플래시 메모리(NAND 메모리 디바이스)를 사용하면 Linux 커널이 캐시가 없는 것보다 더 나은 성능으로 랜덤 디스크 IO를 처리할 수 있습니다.이 캐시는 페이지 파일 또는 시스템 이진 파일뿐만 아니라 모든 디스크 컨텐츠에 적용됩니다.플래시 메모리 기반 장치는 일반적으로 랜덤 IO의 경우 회전 HDD보다 훨씬 빠르지만 순차적 읽기/쓰기에서는 이점이 적거나 속도가 더 느립니다.기본적으로 flashcache는 모든 전체 블록 크기 IO를 캐시하지만 순차 IO는 [3]무시하고 랜덤 IO만 캐시하도록 구성할 수 있습니다.

Microsoft Windows 에서는, Windows Vista 이후의 ReadyBoost 와 같은 테크놀로지가 사용되고 있습니다.

실행

FlashCache는 Linux 커널의 디바이스 매퍼 위에 구축되어 있습니다.캐시의 데이터 구조는 세트 관련 해시 테이블로, 캐시는 세트 내의 선형 프로빙을 사용하여 여러 고정 크기 세트(버킷)로 분할됩니다.디바이스 매퍼 계층은 요청을 캐시 [citation needed]계층에 전달하기 전에 모든 I/O 요청을 블록 크기 청크로 나눕니다.

쓰기 요청이 발생하면 해당 캐시 블록이 더티로 표시되며 더티 캐시 블록은 백그라운드에서 디스크에 느릿느릿 기록됩니다.라이트백 정책을 제어하는 파라미터에는 dirty-threshold, idled 및 recording을 [citation needed]앞둔 다른 dirty block과의 인접성이 있습니다.

제한 사항

flashcache [citation needed]구현에는 다음과 같은 몇 가지 제한이 있습니다.

원자성
캐시 블록 쓰기는 현재 비원자적입니다.
TRIM 지원
플래시 메모리를 최적화하기 위한 ATA TRIM 명령은 아직 지원되지 않습니다.
캐시 오염 방지
프로세스를 캐시 불가능으로 표시하여 요청을 캐시 불가능으로 표시할 수 있습니다. 그러나 캐시 불가능으로 표시된 프로세스가 중단되면 플래시 캐시를 정리할 방법이 없습니다.
얼라인먼트
디바이스 매퍼에 의존하면 성능 문제가 캐싱되고 4KiB의 배수가 아닌 쓰기는 캐싱되지 않습니다.이는 주로 Xen 하이퍼바이저에 영향을 미칩니다., 확장IO는 디바이스 매퍼 통합에서 벗어나 최적의 사용 사례가 [citation needed]아닌 경우에도 더 높은 성능을 제공합니다.
라이트 어라운드 읽기 레이텐시의 영향
write-around 모드에서는 높은 일관성을 위해 모든 쓰기가 캐시를 바이패스합니다.현재 구현에서는 SSD 디바이스를 통해 읽기를 가져온 다음 실제 판독기에 전달합니다.즉, 이전에 캐시되지 않은 블록은 항상 SSD 디바이스로 먼저 이동해야 하므로 쓰기 IO가 일정해집니다.Facebook이 사용하는 엔터프라이즈 SSD 또는 하이엔드 PCIe 장치에서는 문제가 되지 않지만 로우엔드 SSD에서는 성능이 저하됩니다.
쓰기 어라운드 읽기 캐시 웜업 단계
write-around 모드에서는 FlashCache에는 온디스크 페이지와 캐시된 페이지의 경과시간을 비교할 수 있는 정보가 없습니다. (1) 디바이스가 FlashCache 외부에 마운트되었을 수 있기 때문에 (2) 이 모드에서는 쓰기가 추적되지 않습니다.따라서 각 볼륨 활성화 후(즉, 재부팅) 빈 캐시가 생성됩니다.모든 핫 영역이 캐시될 때까지 성능이 저하됩니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ 확장IO: Linux용 새로운 솔리드 스테이트 드라이브 캐싱
  2. ^ EnhancedIO Linux용 오픈 소스
  3. ^ Mohan Srinivasan. "Flashcache : A Write Back Block Cache for Linux".

외부 링크