md의 bcache 또는 bcache의 md

bcache 는 플래시 기반과 같은 하나 이상의 빠른 디스크 드라이브를 허용합니다. 하나 이상의 느린 하드 디스크 드라이브의 캐시 역할을하는 SSD (솔리드 스테이트 드라이브) .

올바르게 이해하면

  • SSD * 를 여러 백업 HDD를 캐시하도록 할당 한 다음 결과로 캐시 된 장치를 mdadm
    또는
  • 여러 HDD를 단일 백업 md 장치로 RAID 할 수 있습니다. 캐시에 할당 된 SSD

어떤 것이 더 안전한 방법인지 궁금합니다. RAID5 / 6을 확장하는 것이 하나 또는 다른 기술을 사용하면 더 간단 할 수 있지만 저는 그렇지 않습니다. 확실합니다!

하나의 접근 방식을 다른 방식 (VM 백업 파일이 포함 된 루트가 아닌 대규모 파일 시스템의 경우)을 선택하는 데 필요한 이유 (예 : 백업 스토리지 늘리기 등)가 있습니까?


* “SSD”란 일종의 중복 SSD 장치를 의미합니다. 예를 들어 두 개의 물리적 인 RAID1 모든 SSD

설명

  • 두 경우 모두 bcache 뒷면은 bcache 형식이어야합니다. 따라서 ' md 배열, 단일 결과 디스크를 bcache 백업 파티션으로 완전히 포맷하거나, 캐시 드라이브에 연결하고 거기에서 이동하거나, , 캐시 드라이브에 연결 한 다음 여러 디스크를 하나의 어레이로 포맷합니다. 두 경우 모두 실패의 가능성이 여러 지점이 있으며, 모두 최종 fs는 말할 것도없고 두 파일 시스템 간의 상호 운용성에 의존합니다. 여기 : 아래로 스크롤 을 참조하세요.
  • github.com/g2p/blocks , 일부 제한이 있지만 제자리에서 변환 할 수 있습니다.
  • @mikeserv 다 이해합니다. 그래서 ' 모두 좋습니다. " 두 개의 파일 시스템 "은 무엇을 의미합니까? bcache는 파일 시스템이 아닙니다. ' 유일한 파일 시스템은 최종 bcache 또는 mdadm 장치의 XFS입니다 (선택한 옵션에 따라 다름).
  • 감사합니다. @Adam, 제자리 변환은 나에게 문제가되지 않습니다.
  • @mikeserv 아니요 ' t. 파일 시스템 (예 : btrfs, xfs, extN 등)은 블록 장치 위에 있습니다. mdadm 및 bcache는 파일 시스템 수준이 아닌 블록 장치 수준에서 작동합니다 (btrfs는 문제를 '의 계층화 위반과 혼동하지만 이는 완전히 별개의 대화입니다).

답변

전체 md 장치를 캐싱하는 것이 가장 합리적이라고 생각합니다.

bcache를 사용하여 전체 md 장치는 또 다른 단일 장애 지점을 도입하기 때문에 raid에 대한 전체 아이디어를 희생합니다.

  • SSD 디스크의 OTH 장애는 상대적으로 드물며 bcache는 writethrough / writearound 모드 (writeback 모드와 달리) 캐시 장치에만 저장되며 캐시 실패는 “레이드의 정보를 죽이지 않으므로 상대적으로 안전한 옵션입니다.

  • 다른 사실은 상당한 계산이 있다는 것입니다. 소프트 RAID-5의 오버 헤드; 회전하는 각 RAID 구성원을 개별적으로 캐싱 할 때 컴퓨터는 여전히 캐시 적중시에도 모든 패리티를 다시 계산합니다.

  • 각 회전 드라이브를 개별적으로 캐시하는 경우 비용이 많이 드는 SSD 공간을 희생해야합니다. -raided ssd 캐시를 사용할 계획이 아니라면.

  • 두 옵션 모두 성장 프로세스 시간에 상대적으로 영향을주지 않습니다. 회전 드라이브가 별도로 캐시되는 옵션은 다음과 같은 이유로 느려질 가능성이 있습니다. 더 많은 버스 트래픽.

ssd 드라이브를 교체해야 할 때 제거하도록 bcache를 구성하는 것은 빠르고 비교적 간단한 프로세스입니다. 블록 은 공격대 설정을 현장에서 양방향으로 마이그레이션 할 수 있어야합니다.

또한 현재 대부분 (모두?) 라이브- CD 배포는 bcache 를 지원하지 않으므로 bcachemdraid 레이아웃 옵션을 선택했습니다.

댓글

  • I ' 나는 중복되지 않는 SSD 캐시를 가질 계획이 아니라 ' 명확하게 질문을 업데이트했습니다. 두 번째 글 머리 기호 포인트는 훌륭한 포이입니다 nt, 감사합니다. 공간에 대한 세 번째 글 머리 기호 : SSD에 패리티를 저장하기 때문에 ' 의미합니까? 마지막으로, 저는 ' F20을 사용하고 있지만 결국에는 RHEL / CentOS7 또는 Debian Jessie를 사용할 것입니다 (bcache-tools가 잘라낸 경우).
  • @JackDouglas Ad 세 번째 글 머리 기호 : 예, 맞습니다. 하지만 RAID가 적용된 SSD 드라이브를 사용할 계획이므로 ' 적용되지 않습니다.
  • 그 이유는 '는 미러링 될뿐만 아니라 백업 드라이브에 대한 RAID 패리티도 저장해야합니다. 이것은 ' 내가 요점이라고 생각했던 bcache 아래에서 RAID가 수행되는 경우가 아닙니다.
  • 반대를 의미한다고 생각합니다. ssd 매트릭스는 ' 회전 디스크 ' 패리티가 전체 mdraid 드라이브에 공급되는 경우 저장할 필요가 없습니다.
  • 예, 그렇습니다 ' 정확히 의미합니다!

답변

I ” d 정상적인 접근 방식은 결과 MD 장치를 캐시하는 것이라고 생각합니다.

bcache는 순차적 읽기 및 쓰기를 통과하도록 설계되었습니다.

각 장치를 개별적으로, 논리적으로 여러 장치를 b 캐시하는 경우 raided 또는 stripped MD로 스트라이핑하면 bcache 관점에서 지속적으로 임의 블록을 작성합니다.

bcached MD 볼륨은 정상적으로 보이지만 볼륨에 파일을 작성하는 대신 여러 블록에 임의 블록을 작성합니다.

하드 및 소프트웨어 레이드의 전체 요점은 백엔드에서 데이터 스트라이핑을 수행하여 결과 파일 시스템이 tem은 정상적인 볼륨처럼 보입니다.

이것은 정확하지 않을 수 있지만 (bcache 개발자는 영리하고 이러한 상황을 설명 할 수 있기 때문에) 논리적으로 최적의 작업은 볼륨을 캐시하는 것입니다.

설명

  • 또한 매우 좋은 점
  • RAID5 / 6에 대한 대규모 순차적 쓰기는 다음에 대한 순차적 쓰기를 생성합니다. 모든 구성 장치. 각 구성 요소 장치는 모든 N-1 데이터 블록 (또는 패리티)을 가져 오지만 가져 오는 데이터는 순차적입니다. 하지만 ' 일이 왜곡된다는 것은 맞습니다. 부분 스트라이프 쓰기가 자주 발생하는 일부 청크가있어 패리티 스트라이프 (일부)의 읽기-수정-쓰기가 발생하면 bcache에 의해 캐시 될 수 있습니다. 부분 스트라이프 쓰기가 MD 장치에 도달하기 전에 더 높은 곳에 캐싱하는 것이 훨씬 좋습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다