btrfs RAID1에서 SSD와 HDD를 결합하면 데이터를 안전하게 유지하면서 SSD 읽기 및 쓰기 성능을 얻을 수 있습니까?

btrfs RAID1에서 SSD와 HDD를 결합하면 데이터를 안전하게 유지하면서 SSD 읽기 및 쓰기 성능을 얻을 수 있습니까?

저는 2개의 저장 장치를 가지고 있습니다. 전형적인 느린 HDD(750GB, /dev/sda)와 더 빠른 SSD(128GB, /dev/sdb)입니다. 현재 SSD의 동일한 btrfs 파티션에 Ubuntu와 Mint()를 설치했습니다 /dev/sdb5. 내 btrfs 풀은 /dev/sdb5.

제가 달성하고 싶은 것은 SSD 성능을 유지하면서 HDD에서 데이터를 복제하는 것입니다.

읽기 사례의 경우 이상적인 프로그램은 다음과 같습니다.

  • SSD에서 읽기
  • 체크섬 확인
  • 검증되면..좋네요. 데이터를 주세요.
  • 그렇지 않은 경우 HDD에서 데이터를 가져오고 데이터를 복제하여 오류를 수정합니다.

btrfs check --repair나는 HDD 체크섬을 확인하고 SSD 데이터를 통해 비트로트에 대해 수정하기 위해 매달 수동으로 실행합니다(일부 도구, 어떤 도구인지 잘 모르겠습니다...아마도?).

필기 케이스의 경우:

  • SSD에 쓰기
  • 쓰기 요구 사항이 낮을 때 HDD에 동기화하여 시스템 속도를 저하시키지 않습니다.

가능합니까? 어떻게 해야 합니까?

가장 중요한 것은 btrfs를 좋아하고 SSD의 뛰어난 성능을 유지하면서 HDD와 SSD 드라이브에 데이터를 자동으로 복사하기를 원한다는 것입니다.

SSD를 쓰기 캐시로 사용하는 것은 데이터 복제 및 보안이 부족하기 때문에 선택 사항이 아닙니다.

답변1

SSD의 쓰기 속도가 읽기 속도보다 더 빠르다고 가정하면 Linux의 RAID 하위 시스템을 사용하여 SSD를 쉽게 설정할 수 있습니다. /dev/sda1(HDD) 및 /dev/sdb1(SSD) 를 복사하려고 한다고 가정해 보겠습니다 .

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 --write-mostly --write-behind=1024 /dev/sda1

--write-mostly즉, 전면 장치는 읽기에 먼저 사용되고 후면 장치는 대부분의 경우 쓰기에만 사용됩니다. --write-behind쓰기 지향 장치가 뒤쳐질 수 있음을 의미합니다. 이 매개변수는 쓰기 버퍼의 크기를 결정합니다. 컴퓨터 성능에 따라 write-behind 매개변수를 조정해야 할 수도 있습니다.

기존 볼륨을 사용하려는 경우Super Block Format 1.0에서 RAID-1로 변환할 수 있습니다..

드라이브에는 이미 자체 무결성 검사가 포함되어 있으므로 맨 위에 있는 다른 드라이브는 일반적으로 많이 사용되지 않습니다. 드라이브 오류의 주요 문제는 데이터가 손상되는 것이 아니라 데이터를 읽을 수 없게 된다는 것입니다. SSD와 HDD의 상대적인 감지되지 않은 오류율이 얼마인지는 모르지만 거의 같다고 생각합니다(따라서 SSD 대 HDD가 아니라 특정 장치 간). 따라서 데이터가 HDD에서 다시 읽힌다고 가정할 이유가 없습니다. HDD가 더 정확합니다. Btrfs 및 ZFS에는 필요한 경우 선택적 파일 시스템 수준 무결성 확인 기능이 있습니다.

관련 정보