bcache
bcache개발자 | 켄트 오버스트리트 외 |
---|---|
저장소 | |
기입처 | C |
운영 체제 | 리눅스 |
유형 | Linux 커널 기능 |
면허증. | GNU GPL |
웹 사이트 | bcache |
bcache(블록 캐시의 약자)는 Linux 커널의 블록 계층에 있는 캐시로, 보조 스토리지 디바이스에 액세스하는 데 사용됩니다.플래시 기반 SSD(Solid-State Drive)와 같은 하나 이상의 고속 스토리지 장치를 하드 Disk 드라이브(HDD)와 같은 속도가 느린 스토리지 장치의 캐시로 사용할 수 있으므로 하이브리드 볼륨을 효과적으로 생성하고 성능을 향상할 수 있습니다.
또한 SSD의 특성과 성능 특성을 고려하여 설계된 bcache는 랜덤 쓰기를 피하고 순차 쓰기로 전환하여 쓰기 증폭을 최소화합니다.이러한 I/O 작업 병합은 캐시와 Primary 스토리지 모두에 대해 수행되므로 캐시로 사용되는 플래시 기반 장치의 수명을 연장하고 RAID 5 세트와 같은 쓰기 민감한 Primary 스토리지의 성능을 향상시킬 수 있습니다.
bcache는 GNU General Public License(GPL; 일반 공중 사용 허가서)에 따라 라이선스가 부여되며 Kent Overstreet가 주요 개발자입니다.Overstreet는 bcache를 [1]파일 시스템인 bcachef의 개발의 "프로토타입"으로 간주하고 있습니다.
개요
bcache를 사용하면 데이터 스토리지 액세스 경로 내에서 SSD를 다른 수준의 방향 전환으로 사용할 수 있습니다. 따라서 회전 자기 미디어가 있는 느린 기계식 하드 디스크 드라이브(HDD)의 캐시로 고속 플래시 기반 SSD를 사용함으로써 전반적인 성능이 향상됩니다.이를 통해 SSD와 HDD 간의 격차를 해소할 수 있습니다. 즉, SSD의 값비싼 속도와 기존 [2]HDD의 저렴한 스토리지 용량이 결합됩니다.
캐싱은 SSD의 가장 중요한 기능으로 거의 0에 가까운 시크 시간을 사용하여 수행된 랜덤 읽기 및 랜덤 쓰기와 관련된 데이터를 저장하기 위해 SSD를 사용하여 구현됩니다. 순차 I/O는 캐싱되지 않으므로 이미 HDD에 적합한 작업에서 SSD 캐시가 빠르게 비활성화되는 것을 방지할 수 있습니다. 대용량 순차적 캐시를 위해 캐시를 돌립니다.writes는 write-around 정책이라고 불립니다.순차 I/O를 캐싱하지 않으면 [3]캐시로 사용되는 SSD의 수명을 연장하는 데에도 도움이 됩니다.SSD에 랜덤 쓰기를 수행하지 않음으로써 쓰기 증폭을 방지할 수 있습니다. 대신 SSD 캐시에 대한 모든 랜덤 쓰기는 항상 블록 레벨 쓰기로 결합되어 SSD의 [4][5]전체 지우기 블록만 다시 쓰게 됩니다.
쓰기 작업 캐싱에는 쓰기 작업과 쓰기 작업(기본값) 정책이 모두 지원됩니다.라이트백 정책의 경우 쓰기 데이터가 먼저 SSD 캐시 내에 저장되고 나중에 검색 친화적인 작업을 수행하는 동안 일괄 처리 방식으로 HDD로 전파되므로 bcache가 I/O 스케줄러로도 작동합니다.기입이 요청된 데이터가 SSD와 HDD 모두에 도달할 때까지 기입 조작이 종료된 것으로 표시되지 않도록 하는 라이트 스루 정책의 경우,[4][5] 기입된 데이터의 캐싱만을 효과적으로 실행함으로써 퍼포먼스의 향상을 억제할 수 있습니다.
HDD에 일괄 쓰기 기능을 갖춘 라이트백 정책은 실제 쓰기 작업을 원자성 읽기-수정-쓰기 시퀀스로 수행하는 RAID 5 및 RAID 6과 같은 쓰기 감응형 RAID(Redundant Array of Independent Disk) 레이아웃에 추가적인 이점을 제공합니다.이렇게 하면 RAID 레이아웃을 그룹화하여 일괄적으로 순차적으로 [4][5]쓰기 작업을 수행함으로써 소규모 랜덤 쓰기의 성능[6] 저하를 줄이거나 방지할 수 있습니다.
bcache에 의한 캐싱은 블록 디바이스 레벨에서 동작하기 때문에 파일시스템에 구애받지 않고 파일시스템에 구애받지 않습니다.이 요건은 거의 모든 표준 Linux 파일시스템과 스왑 파티션에 의해 충족됩니다.bcache가 캐싱 익스텐트로 내부적으로 사용하는 논리 블록의 크기는 단일 HDD [7]섹터 크기로 축소될 수 있습니다.
역사
bcache는 2010년 7월 Kent Overstreet에 의해 완전히 동작하는 Linux 커널 모듈로 처음 발표되었지만 초기 베타 단계에 [8]있습니다.개발은 2012년 5월까지 거의 2년간 계속되었으며, 그 시점에서 bcache는 생산 준비 상태에 [5]도달했습니다.
2013년 [9][10]6월 30일에 출시된 커널 버전 3.10에서 리눅스 커널 메인라인으로 통합되었습니다.이후 Overstreet는 bcache에서 처음 개발된 아이디어를 바탕으로 파일 시스템 bcachefs를 개발하고 있으며, 그는 "진화를 시작했다"고 말했다.완전한 범용 POSIX 파일 시스템으로 변환됩니다."[11]그는 bcache를 bcachef가 된 아이디어의 "프로토타입"으로 묘사하고 bcache를 대체할 bcachef를 의도한다.[12]그는 2015년에 bcachefs를 공식 발표했으며, 2018년 현재 메인라인 Linux [13]커널에 포함시키기 위해 제출하고 있습니다.
특징들
Linux 커널 버전 3.10 이후 bcache에서는 다음 기능이 제공됩니다.[4]
- 동일한 캐시 디바이스를 사용하여 임의의 수의 프라이머리 스토리지 디바이스를 캐시할 수 있습니다.
- 마운트 중 및 사용 중인 프라이머리 스토리지 디바이스를 캐시에서 런타임 연결 및 분리(캐시되지 않은 경우 패스스루 모드로 실행)
- 부정 셧다운으로부터의 자동 리커버리– 캐시가 프라이머리 스토리지 디바이스에 대해 일관성이 있을 때까지 기입이 완료되지 않습니다.내부적으로 bcache는 클린 셧다운과 부정 셧다운을 구분하지 않습니다.
- 캐시[3] 디바이스에서 발생하는 I/O 오류에 대한 투과적 처리
- 쓰기 장벽 및 관련 캐시 플러시가 적절하게 처리됨
- 라이트 스루(기본값), 라이트백 및 라이트 어라운드 정책
- 임계값이 설정 가능한 순차 I/O가 검출되어 바이패스됩니다.바이패스를 무효로 할 수도 있습니다.
- SSD의 I/O 처리 지연이 설정 가능한 임계값을 초과하여 측정된 지연 시간으로 감지되는 폭주 시 SSD에 대한 I/O 조절. 다수의 HDD에 대한 캐시를 제공하는 하나의 SSD가 있는 구성에 유용합니다.
- 캐시 누락 시 미리 읽기(기본적으로 사용 안 함)
- 매우 효율적인 라이트백 구현– 더러운 데이터는 항상 정렬된 순서로 기입됩니다.옵션으로 백그라운드 라이트백을 부드럽게 억제하여 캐시의 구성된 비율을 더러움으로 유지합니다.
- 고성능 B+ 트리가 내부적으로 사용됨– bcache는 하드웨어 속도가 충분히 빠르면 랜덤 읽기 시 약 1,000,000 IOPS를 지원할 수 있습니다.
- 다양한 런타임 통계 및 구성 옵션이 sysfs를[3] 통해 공개됩니다.
개선점
2014년 2월[update] 현재 bcache의 [10]향후 릴리스에는 다음과 같은 새로운 기능이 계획되어 있습니다.
- RAID 5 및 RAID 6 레이아웃에서의 데이터 스트라이핑 인식– 스트라이프 레이아웃에 대한 인식을 라이트백 정책에 추가하므로 캐싱에 대한 결정은 이미 "더러운" 스트라이프보다 우선하며 실제 백그라운드 플러시는 완전한 스트라이프 기입이 우선됩니다.
- 이미 풀 B+ 트리 노드를 사용한 캐시 누락 처리– Linux 커널 3.10의 bcache 버전에서는 내부적으로 사용되는 B+ 트리 노드가 쓰기 시 분할되므로 초기 캐시 워밍업을 거의 수행할 수 없습니다.
- 캐시 세트에 여러 개의 SSD가 포함되어 있어 깨끗한 데이터 및 읽기 캐시를 위한 SSD 공간을 낭비하지 않고 더러운 데이터(라이트백 정책용)와 메타데이터만 미러링됩니다.
- 데이터 체크섬
「 」를 참조해 주세요.
- dm-cache – 하이브리드 볼륨을 생성할 수 있는 Linux 커널의 디바이스 매퍼 타깃
- EnhancedIO – Linux 커널용 디스크 캐시 모듈.
- Flashcache – Linux 커널용 디스크 캐시 컴포넌트.처음에는 Facebook이 개발했습니다.
- 하이브리드 드라이브 – 플래시 기반 및 회전 자기 미디어 스토리지 기술을 결합한 스토리지 장치
- ReadyBoost – Windows Vista 이후의 Microsoft 운영 체제의 디스크 캐싱 소프트웨어 컴포넌트
- 스마트 리스폰스 테크놀로지 (SRT)– 인텔이 칩셋용으로 개발한 독자적인 디스크 스토리지 캐싱 메커니즘
레퍼런스
- ^ "bcache FAQ". bcache.evilpiepirate.org. Retrieved May 7, 2021.
- ^ Petros Koutoupis (November 25, 2013). "Advanced Hard Drive Caching Techniques". Linux Journal. Retrieved December 2, 2013.
- ^ a b c "Linux kernel documentation: Documentation/bcache.txt". kernel.org. August 12, 2013. Retrieved January 24, 2014.
- ^ a b c d Kent Overstreet. "bcache: Linux kernel block layer cache". bcache.evilpiepirate.org. Retrieved December 2, 2013.
- ^ a b c d Jonathan Corbet (May 12, 2012). "A bcache update". LWN.net. Retrieved October 4, 2013.
- ^ "Basic RAID Organizations". ecs.umass.edu. Retrieved October 4, 2013.
- ^ William Stearns; Kent Overstreet (July 2, 2010). "bcache: Caching beyond just RAM". LWN.net. Retrieved October 4, 2013.
- ^ Kent Overstreet (July 4, 2010). "bcache: Version 6". LWN.net. Retrieved October 4, 2013.
- ^ "Linux kernel 3.10, Section 1.2. bcache, a block layer cache for SSD caching". kernelnewbies.org. June 30, 2013. Retrieved October 4, 2013.
- ^ a b Libby Clark (June 11, 2013). "All About the Linux Kernel: bcache". linux.com. Archived from the original on September 29, 2013. Retrieved October 9, 2013.
- ^ Larabel, Michael (August 21, 2015). "A New Linux File-System Aims For Speed While Having ZFS/Btrfs-Like Features". Phoronix. Retrieved November 22, 2018.
- ^ Edge, Jake (May 23, 2018). "An update on bcachefs". LWN.net. Retrieved November 22, 2018.
- ^ Larabel, Michael (May 9, 2018). "bcachefs File-System Is Working On Going Upstream In The Linux Kernel". Phoronix. Retrieved November 22, 2018.
외부 링크
- 공식 웹사이트
- LSFMM: 캐싱 – dm-cache and bcache, LWN.net, 2013년 5월 1일, Jake Edge에 의한
- 안정된 업스트림 커널에서의 Linux 블록 캐싱 옵션 (PDF), 델, 2013년 12월
- bcache 시리즈 테스트:처리량, IOPS, 메타데이터, 대용량 파일 및 정리, Linux Magazine, 2010년 8~9월, Jeffrey B.레이튼
- 확장 기능 간의 퍼포먼스 비교IO, bcache 및 dm-cache, LKML, 2013년 6월 11일
- EnhancedIO, Bcache & DM-Cache Benchmed, Phoronix, 2013년 6월 11일 Michael Larabel에 의한