링크 ux 커 널 bcache 안내
4660 단어 리 눅 스 커 널
bcache 는 SSD 특성 에 따라 디자인 되 었 으 며, 지우 기 통 크기 에 따라 만 분 배 됩 니 다. btree 와 로그 혼합 방법 으로 캐 시 데 이 터 를 추적 합 니 다. 캐 시 데 이 터 는 통 의 임의의 섹 터 일 수 있 습 니 다.bcache 는 무 작위 로 쓴 대 가 를 최대한 줄 였 습 니 다. 순서대로 통 을 채 웠 습 니 다. 다시 사용 할 때 통 을 무효 로 설정 하면 됩 니 다.
bcache 는 직접 쓰기 와 재 쓰기 정책 을 지원 합 니 다.답장 은 기본적으로 닫 혀 있 습 니 다. 실행 중 변경 할 수 있 습 니 다.bcache 는 시스템 이 비정상적 으로 꺼 졌 을 때 데 이 터 를 최대한 보호 합 니 다.데이터 에 저장 장 치 를 완전히 써 야만 쓰기 성공 을 확인 할 수 있 도록 설계 되 었 기 때문이다.
리 턴 정책 은 대부분의 쓰기 요청 을 캐 시 한 다음 색인 에 따라 더러 운 데 이 터 를 백 엔 드 저장 장치 로 순서대로 쓸 수 있 습 니 다.
SSD 의 특징 은 랜 덤 IO 속도 가 빠 르 지만 큰 순서 IO 의 향상 은 크 지 않다 는 것 이다.bcache 는 순서 IO 를 검사 하고 무시 합 니 다.또한 모든 작업 에 동적 인 평균 IO 크기 를 기록 합 니 다. 평균 IO 크기 가 마감 치 를 초과 할 때 이 작업 뒤의 IO 는 무시 되 고 백업 이나 큰 파일 복사 가 가능 합 니 다.
플래시 에서 데이터 IO 오 류 를 발 견 했 을 때 먼저 데 이 터 를 복구 하거나 이 캐 시 항목 을 무효 로 설정 하려 고 시도 합 니 다.복구 할 수 없 는 오류, 예 를 들 어 메타 데이터 나 더러 운 데이터 에 대해 bcache 는 자동 으로 캐 시 를 닫 습 니 다.캐 시 에 더러 운 데이터 가 있 으 면 리 셋 정책 을 먼저 닫 고 더러 운 데이터 가 되 돌아 올 때 까지 기 다 립 니 다.
여기 서부 터.
우선 bcache - tools 를 설치 해 야 합 니 다. Make - bcache 도 구 를 제공 합 니 다.캐 시 장치 와 백 엔 드 디스크 를 사용 하기 전에 초기 화 해 야 합 니 다.
make-bcache -B /dev/sdb
make-bcache -C /dev/sdc
Make - bcache 는 여러 장 치 를 동시에 초기 화 하 는 기능 을 제공 하고 캐 시 장치 와 백 엔 드 디스크 를 자동 으로 연결 합 니 다.
make-bcache -B /dev/sda /dev/sdb -C /dev/sdc
bcache - tools 는 현재 udev 규칙 파일 을 포함 하고 있 으 며, bcache 장 치 는 커 널 에 즉시 감지 할 수 있 습 니 다.udev 규칙 이 없 으 면 수 동 으로 장 치 를 등록 해 야 합 니 다:
echo /dev/sdb > /sys/fs/bcache/register
echo /dev/sdc > /sys/fs/bcache/register
백 엔 드 디스크 를 등록 하면 bcache 장치 가 / dev / 디 렉 터 리 에 나타 나 포맷 해서 사용 할 수 있 습 니 다.bcache 장 치 는 기본적으로 투과 모드 이기 때문에 캐 시 를 연결 해 야 합 니 다.
bcache 는 다음 과 같이 표 시 됩 니 다.
/dev/bcache
그리고 (udev 규칙 파일 이 있 을 때):
/dev/bcache/by-uuid/
/dev/bcache/by-label/
사용 을 시작 하려 면:
mkfs.ext4 /dev/bcache0
mount /dev/bcache0 /mnt
bcache 의 sysfs 제어 항목 은 / sys / block / bcache / bcache 에 있 습 니 다.
bcache 장 치 는 집합 에 따라 관리 되 지만 현재 집합 은 하나의 bcache 장치 만 지원 합 니 다. 앞으로 여러 장치, 메타 데이터, 더러 운 데이터 미 러 를 지원 할 것 입 니 다.새 cache 장 치 는 / sys / fs / bcache / 로 표 시 됩 니 다.
cache 귀속:
캐 시 장치 와 백 엔 드 장 치 를 모두 등록 한 후 캐 시 장 치 를 백 엔 드 장치 에 연결 하여 캐 시 를 사용 해 야 합 니 다.귀속 동작 은 다음 과 같 습 니 다:
echo > /sys/block/bcache0/bcache/attach
이 조작 은 한 번 만 하면 된다.다음 시스템 을 다시 시작 할 때 모든 bcache 장 치 를 다시 등록 해 야 합 니 다.백 엔 드 장치 에 캐 시 데이터 가 남아 있다 면 캐 시 장치 가 돌아 올 때 까지 / dev / bcache 를 만 들 지 않 습 니 다. 특히 정책 을 쓸 때 중요 합 니 다.
캐 시 장치 가 없 을 때 장 치 를 강제로 사용 해 야 한다 면:
echo 1 > /sys/block/sdb/bcache/running
이 매개 변 수 는 bcache 장치 가 아 닌 백 엔 드 장치 입 니 다. 하물며 bcache 장 치 는 아직 만 들 지 않 았 습 니 다.파 티 션 을 사용 하여 만 든 bcache 장치 라면 sdb 2 에 대응 하 는 디 렉 터 리 는 / sys / block / sdb / sdb 2 / bcache 입 니 다.
bcache 장 치 를 강제로 사용 한 후 캐 시 장 치 를 시스템 에 추가 하면 이 캐 시 장치 의 모든 캐 시 데 이 터 는 무효 로 설 정 됩 니 다.캐 시 장치 의 더러 운 데 이 터 는 계속 되 지 않 습 니 다. 이 더러 운 데 이 터 는 현재 파일 시스템 을 붕괴 시 킬 수 있 기 때 문 입 니 다.
오류 처리
bcache 는 IO 오 류 를 처리 하려 고 시도 하지만, 오류 수가 밸브 값 (기본 값 0, 설정 가능) 을 초과 하면 캐 시 를 닫 고 투과 모드 로 전환 합 니 다.
- 읽 기 오류 라면 백 엔 드 장치 에서 직접 읽 어보 기
- 직접 쓰기 오류 라면 캐 시 에 대응 하 는 데이터 블록 을 잘못 설정 합 니 다.
- 귀속 시 더러 운 데 이 터 를 되 돌려 줍 니 다.더러 운 데 이 터 를 다시 쓰 는 데 실 패 했 습 니 다. 현재 처리 되 지 않 았 습 니 다.
성능 관련 문제
bcache 는 설정 옵션 과 조절 가능 한 인자 가 많 습 니 다.기본 값 은 전형 적 인 설정 에 적합 합 니 다. 더 좋 은 성능 을 얻 으 려 면 관련 매개 변 수 를 조정 해 야 합 니 다.
- 쓰기 성능 저하
쓰기 성능 이 좋 지 않 으 면 쓰기 정책 으로 바 꾸 는 것 을 권장 합 니 다.
#echo writeback > /sys/block/bcache0/cache_mode
- 성능 이 떨 어 지 거나 SSD 에 데이터 가 캐 시 되 지 않 았 음
기본적으로 bcache 는 순서 IO 와 큰 파일 을 캐 시 하지 않 습 니 다.
순서 IO 캐 시 열기:
#echo 0 > /sys/block/bcache0/bcache/sequential_cutoff
기본 값 되 돌리 기 설정:
#echo 4M > /sys/block/bcache0/bcache/sequential_cutoff
- 트 래 픽 이 적어 캐 시가 적중 하지 않 음
현실 생활 에서 모든 SSD 가 디스크 의 캐 시 로 충분 한 속 도 를 제공 할 수 있 는 것 은 아니다. 특히 하나의 SSD 가 여러 개의 디스크 의 캐 시 나 순서 IO 일 때.따라서 SSD 가 시스템 병목 이 되 는 것 을 피해 야 한다.
bcache 장치 가 SSD 가 느 려 지 는 것 을 피하 기 위해 밸브 값 을 초과 할 때 유량 을 점점 줄 입 니 다.정체 제어 항목 을 닫 아야 합 니 다:
#echo 0 > /sys/fs/bcache//congested_read_threshold_us
#echo 0 > /sys/fs/bcache//congested_write_threshold_us
읽 기 에 있어 서 기본 값 은 2000 us (2ms) 이 고 쓰기 에 대해 서 는 20000 입 니 다.
SYSFS - 백 엔 드 장치
/sys/block//bcache, /sys/block/bcache*/bcache, /sys/fs/bcache//bdev*
SYSFS - 캐 시 집합
/sys/fs/bcache/
SYSFS - 캐 시 장치
/sys/block//bcache
영문: 문서 / bcache. txt
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
리 눅 스 커 널 깊이 이해 (2.6) 의 관련 데이터 구 조 를 정리 하 다.create_workqueue ("foo") 함수 가 문자열 을 매개 변수 로 받 아들 여 작업 대기 열 을 새로 만 든 workqueue 를 되 돌려 줍 니 다.struct 설명자 의 주소 입 니 다.이 함 수 는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.