두 개의 물리적 드라이브의 Btrfs: md raid 10 또는 btrfs raid 1

두 개의 물리적 드라이브의 Btrfs: md raid 10 또는 btrfs raid 1

따라서 데스크탑 시스템의 기본 스토리지로 사용될 두 개의 새로운(4TB) 드라이브가 있습니다. 주요 요구 사항은 중복성과 신뢰성입니다. 두 번째 고려 사항은 특히 드라이브 오류 발생 시 데이터 읽기 속도와 서비스 가능성입니다.

이 질문의 범위를 벗어난 이유로 인해 선택한 파일 시스템은 BTRFS입니다.

내가 결정할 수 없는 것은MD raid 10 어레이"far 2" 구성에서는 맨 위에 비-raid BTRFS를 사용하거나 BTRFS에 포함된 raid 1 기능을 사용하여 메타데이터 및 파일 콘텐츠를 처리합니다.

두 옵션 모두 중복성 요구 사항을 충족하며 BTRFS가 Linux 커널에 포함되어 있고 실험적이라고 표시되지 않는다는 사실로 안심할 수 있습니다.충분히 신뢰할 수 있을 것 같아요, 특히 잠재적인 데이터 손상과 관련하여(커널 4.10.3이 방금 출시되었기 때문에 이 글을 쓰고 있습니다).

지금까지 이 설정을 구체적으로 다루는 성능 데이터를 찾지 못했습니다. 각 설정의 관리 세부 사항은 다르지만 둘을 유지 관리하는 복잡성에는 큰 차이가 없다고 생각합니다. 그러나 지금까지 btrfs에 대한 경험이 없지만 (md를 사용하여) 말씀드립니다.

나는 현재 btrfs raid 1보다 md10을 선호합니다.raid 10은 두 개의 디스크에서만 실행될 수 있으며 md1에 비해 성능이 크게 향상되었습니다. 그러나 btrfs raid 1의 기본 아키텍처는 각 디스크의 완전한 미러링이 아니라 두 개 이상의 디스크가 있는 설정에서도 각 데이터 세트의 복사본 두 개만 보장한다는 점에서 md1과 다릅니다.

이제 문제는 이러한 데이터 할당의 자유가 btrfs raid 1이 md1보다 빠르고 성능이 md10과 비슷해지는 방식으로 제공됩니까? 어떤 구성 옵션을 고려해야 합니까?

두 번째 질문은 RAID 아키텍처를 파일 시스템 자체에 통합하면 어떤 이점이 있습니까?

물론 중복성, 신뢰성 및 유지 관리 가능성에 대한 나의 가정이 잘못된 것인지 듣고 싶습니다.

답변1

일반적으로 MD는 가까운 미래에 BTRFS보다 뛰어난 성능을 발휘할 것입니다. BTRFS는 현재 여러 장치에 대한 쓰기를 직렬화하고 지정된 read() 호출에 대해 하나의 장치에서만 읽습니다.

그러나 데이터 보안 측면에서 복제에 BTRFS를 사용하는 것이 MD 또는 LVM2보다 낫습니다. BTRFS는 내부 블록 체크섬을 수행하므로 읽기 호출을 할 때 데이터가 좋은지 확인하고 그렇지 않은 경우 자동으로 다른 복사본으로 대체할 수 있으며 블록 처리가 수행될 때 데이터의 좋은 복사본을 올바르게 선택합니다. 블록 단위로.

즉, 지금까지 제가 찾은 최고의 옵션은 실제로 두 개의 MD 또는 LVM2 RAID0 볼륨 위에 raid1 모드에서 BTRFS를 사용하는 것입니다. MD RAID10 기반의 ext4 또는 XFS만큼 성능이 좋지는 않지만 BTRFS raid10 구현이나 동일한 장치의 MD RAID10 위에 단일 BTRFS 장치를 실행하는 것보다 성능이 훨씬 뛰어나며 동일한 데이터 보안을 제공합니다. 보증. 불행하게도 이를 위해서는 4개의 장치가 필요합니다.

관련 정보