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

감사합니다. 나는 얼마 전에 그 연구되고 보았다 scrubreplace지원은 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.