BTRFS : 3+ 장치의 RAID 1


10

현재 3 개의 3TB 드라이브와 4TB 드라이브라는 4 개의 장치가있는 Btrfs 파티션이 있습니다. 데이터와 메타 데이터는 RAID 10이므로 6TB의 사용 가능한 공간이 거의 가득합니다. 스토리지가 가득 찰 때 Btrfs의 RAID 5 지원이 성숙 할 것으로 예상했지만 우선 순위는 아닙니다.

내 질문은 : RAID 1보다 RAID 10을 선호하는 이유가 있습니까? 현재 하드웨어의 실제 RAID 1이 각 블록마다 4 개의 복사본으로 3TB의 사용 가능한 공간을 제공해야한다는 것을 알고 있지만 Btrfs는 이러한 방식으로 작동하지 않습니다. 로부터 BTRFS 자주 묻는 질문 :

btrfs는 모든 장치를 저장 영역 풀에 먼저 결합한 다음 파일 데이터가 작성 될 때 청크를 복제합니다. RAID-1은 현재 "다른 장치에있는 모든 데이터의 2 개 사본"으로 정의됩니다. 이는 MD-RAID 및 dmraid와 다릅니다. 이는 n 개의 장치에 대해 정확히 n 개의 복사본을 만듭니다. 3 개의 1TB 장치에있는 btrfs RAID-1에서 1.5TB의 사용 가능한 데이터를 얻습니다. 각 블록은 2 개의 장치에만 복사되므로 지정된 블록을 작성하려면 정확히 2 개의 장치 만 작성하면됩니다. 한 번만 읽을 수 있습니다.

그리고 Jens Erat의 스택 오버플로 :

Btrfs는 데이터 (및 RAID 1 사본)를 블록 단위로 분배하므로 크기가 다른 하드 디스크를 매우 잘 처리합니다. 모든 하드 디스크의 합계를 2로 나눈 값을 받게되며, 비슷한 크기의 쌍으로 묶는 방법을 생각할 필요가 없습니다.

둘 이상의 디스크에 장애가 발생하면 항상 데이터가 손실 될 위험이 있습니다. RAID 1은 동시에 두 개의 디스크가 손실되는 것을 처리 할 수 ​​없습니다. 위의 예에서 잘못된 두 디스크가 죽으면 항상 데이터가 손실됩니다.

이는 RAID 10에서 RAID 1로 재조정하면 4TB 드라이브로 인해 추가로 500GB의 데이터 (6TB가 아닌 6.5TB)를 제공한다는 의미입니까? 그리고 RAID 10을 사용해야 할 이유가 있습니까?


1
BTRFS RAID-5는 (아직 실험적 임에도 불구하고) 실제로는 안정적이며 많은 일반적인 데이터 복구 시나리오가 현재 버전에서 작동합니다 (충돌없이). 데이터가 여전히 올바른지 확인하기 위해 때때로 스크러빙해야하지만 가치가있을 수 있습니다. RAID-1 (0)에서 RAID-5로 변환 할 수 있습니다.
— basic6

감사합니다. 나는 얼마 전에 그 연구되고 보았다 scrub및 replace지원은 3.19의 추가되었습니다했지만, 사람들은 여전히 장치 오류 경고의 부족에 대해 불평했다. 매주 스크럽과 매주 / 매월 SMART 자체 테스트를 위해 크론을 설치 했으므로 이러한 문제를 파악할 수 있어야합니다. 시도해 볼게요.
— Mikkel

주기적 (주별 또는 월별) 스크럽은 중요합니다. 드라이브에서 읽을 수 없어서 스크럽을 찾아서 오류를 발견하면 오류 수가 증가합니다. dev stats다른 cronjob 일 수있는을 사용하여 오류 수를 확인하십시오 .
— basic6

답변:


5

예, 500GB가 추가로 제공됩니다. btrfs에서 사용 가능한 공간을 결정하는 것은 여전히 ​​쉽지 않습니다. 또한 btrfs 디스크 사용량 계산기를 살펴보십시오 .

두 번째 질문 : 배열 성능이 약간 떨어질 수 있습니다. 당연히, 데이터는 두 RAID 구성 모두에서 동일하게 안전합니다. 성능을 고려할 때 다음 벤치 마크 ( kernel.org , phoronix.com)를 살펴볼 수 있습니다.

이미 RAID 1로 변환 해 보셨습니까? 그렇다면 : 무엇을 발견 했습니까?


1
이것은 질문에 대한 답변을 제공하지 않습니다. 작성자의 의견을 비판하거나 설명을 요청하려면 게시물 아래에 댓글을 남겨주세요. 언제든지 자신의 게시물 에 댓글 을 달 수 있으며 평판 이 충분 하면 게시물 에 댓글 을 달 수 있습니다 .
— DavidPostill

그러나 귀하의 질문에 대답하기 위해 변환했으며 결과는 내 기대와 일치하는 것 같습니다. BTRFS는 실제 사용 가능한 디스크 공간을 지시하는 빈약 한 일을한다, 그러나 당신은에서 볼 수있는 출력 의 btrfs fi sh4 TB 드라이브에 여분의 공간의 장점을 취해지고 있는지, 그리고 (2.83 + 1.93 + 1.95 + 1.93) /2~=4.30 예상대로. 최근에 드라이브 오류가 지속되고 데이터 손실없이 성공적으로 재 구축되었으므로 중복성이 손상되지 않았 음을 직접 확인할 수 있습니다.
— Mikkel

답변이 명확하지 않아 죄송합니다. @david. 원래 게시물의 마지막 두 줄에있는 두 가지 질문에 답하려고했습니다. 또한 나는 불확실성의 범위를 나타내었고 (btrfs에 내재 된 것처럼 보임) 내 참고 자료를 제공했다. 실제로 나는 또한 저자에게 질문을하여 다른 사람들이 그의 발견에서 배울 수있을 것이다. 나는 당신이 이미 설명 한 이유로 대답 내에서 이것을했습니다. 다음 번에 스택 교환에 대한 질문에 답변 할 때 귀하의 의견을 고려하겠습니다.
— Laura

가장 확실한 대답은 아니지만 내 결과에 따르면 귀하의 가정이 정확하다는 것을 알 수 있으므로 동의합니다. 그래도 성능 차이에 대한 귀하의 의견은 확실하지 않습니다. 하드웨어 RAID 1 대 10의 경우는 사실이지만 Btrfs가 RAID 10의 성능 향상을 볼 수 있을지 확실하지 않습니다. 또한 RAID 1이라고 부르는 것은 여전히 ​​여러 장치에 걸쳐 스트라이핑되므로 RAID 10과 유사합니다. 실제 RAID 1. 변환하기 전에 답장을 읽으면 벤치 마크 전후에 수행했지만 어레이를 RAID 10으로 변환하고 다시 변환하는 데 1 주일을 소비하지 않습니다.
— Mikkel

글쎄, 이 페이지 는 RAID 1보다 RAID 10의 한계 이점을 보여 주며 벤치 마크가 7 년이라는 최고점을 경고합니다.
— Mikkel

0

btrfs raid 5 또는 6을 사용하지 마십시오. 구현에 버그로 가득차 있습니다. 원하는 경우 zfs를 실행하십시오.

raid10을 사용하면 속도가 향상됩니다.

가장 좋은 방법은 4TB 드라이브에 3TB 파티션을 만들고 (3 개 모두 정확히 같은 크기인지 확인) 6TB의 여유 공간이있는 RAID10에 이들을 결합하십시오. / boot에 4TB 드라이브의 여분의 1TB를 사용하십시오 (efistub를 사용하고 grub 또는 부트를 조금 더 빠르게 만드는 다른 부트 로더를 피하려면 어쨌든 vfat이어야 함). 꽤 큰 것은 작은 zram 스왑입니다 (32 기가 바이트 램에서는 4 기가 작동하고 16 기가 있으면 2 기가 좋습니다. 가치가 있고 16 idk 미만이면 가치가 있고 어쨌든 업그레이드해야합니다) zstd를 사용하고 코어 / 스레드가있는만큼 많은 압축 스트림을 사용하여 먼저 사용 (우선 순위를 가장 높게 설정) ...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.