JBOD: 다양한 용량의 하드 드라이브를 Raid1하는 방법은 무엇입니까? Btrfs, ZFS?

JBOD: 다양한 용량의 하드 드라이브를 Raid1하는 방법은 무엇입니까? Btrfs, ZFS?

다음과 같은 용량의 하드 드라이브를 선택했습니다.

1 TB
500 GB
320 GB
250 GB

나는 모든 데이터의 복사본이 항상 내가 가지고 있는 4개의 드라이브 중 2개에 있다는 의미에서 Raid1을 만들고 싶습니다. 문제는 모든 드라이브의 용량이 다르다는 것입니다. 과거에는 mdadm에서 마이그레이션한 후 일반 Raid1 mdadm 2x 2TB, Btrfs 및 2x 2TB를 실행했습니다. mdadm, Btrfs 또는 ZFS에 대해 아무것도 모르지만 다시 사용해도 괜찮습니다.

이 기준을 충족하는 가장 적합한 파일 시스템이나 유틸리티는 무엇입니까?

  1. 디스크 하나가 손상되어도 데이터가 손실되지 않도록 항상 두 개의 파일 복사본을 보유합니다.
  2. 가능한 한 많은 여유 공간을 확보하고 여전히 포인트 1의 기준을 충족합니다.

무엇을 사용해야 합니까? Btrfs Raid1이 이 문제를 처리하고 4개의 하드 드라이브 모두에 ​​각 파일의 복사본 2개를 갖게 될 것이라는 느낌이 들지만 확실하지 않습니다. 내 Linux는 커널 5.10이 설치된 AMD64 컴퓨터에서 실행되고 있습니다.

어떤 제안이라도 환영합니다.

편집 - 해결책!

귀하의 모든 응답에 진심으로 감사드립니다! 그래서 저는 Btrfs Raid1 구성을 수행했습니다. 이는 시간이 많이 걸리는 프로세스였지만 이미 Btrfs에 익숙하고 매일 사용했기 때문에 매우 고통스럽지 않았습니다. Raid1은 중복 비율 2를 유지하면서 물리적 공간을 잃지 않을 것이라고 생각합니다. 나는 이 계산기를 사용했다:https://carfax.org.uk/btrfs-usage/

내 장치 크기:

931.51 GiB
465.76 GiB
298.09 GiB
232.89 GiB

Total space for files in Raid1 mode: 963 GiB (all space used)
Total space for files in Raid5 mode: 995 GiB (466 GiB unusable on biggest drive)

Raid1에는 이제 719.5GiB의 데이터가 저장되고 241.6GiB의 여유 공간이 있어 총 961.1GiB가 되며 이는 계산기에 표시된 것과 일치합니다. 나중에 마음대로 드라이브를 추가/제거할 수 있습니다. 놀라운.

Raid1의 2배에 비해 이론적으로 읽기 속도가 4배 향상되었기 때문에 Raid5를 사용하고 싶습니다. 하지만 아직은 실험단계라 일상적으로 사용하기에는 적합하지 않다고 들었죠? 5.10 커널의 상태는 어떻습니까? 이를 사용하고 경험을 공유할 수 있는 사람이 있습니까?

어레이를 구축하고 모든 드라이브를 하나씩 추가하고 모든 데이터를 여기에 마이그레이션한 후(백업이 있음) 전체 정리를 수행했는데 모든 것이 정상이었습니다.

$ sudo btrfs scrub start -Bd /home

Scrub device /dev/sda (id 1) done
Scrub started:    Thu Jun 17 10:10:38 2021
Status:           finished
Duration:         2:38:51
Total to scrub:   724.03GiB
Rate:             77.53MiB/s
Error summary:    no errors found

Scrub device /dev/sdd (id 2) done
Scrub started:    Thu Jun 17 10:10:38 2021
Status:           finished
Duration:         1:52:39
Total to scrub:   374.03GiB
Rate:             56.57MiB/s
Error summary:    no errors found

Scrub device /dev/sdc (id 3) done
Scrub started:    Thu Jun 17 10:10:38 2021
Status:           finished
Duration:         0:48:06
Total to scrub:   207.00GiB
Rate:             73.09MiB/s
Error summary:    no errors found

Scrub device /dev/sdb (id 4) done
Scrub started:    Thu Jun 17 10:10:38 2021
Status:           finished
Duration:         0:30:00
Total to scrub:   143.00GiB
Rate:             80.89MiB/s
Error summary:    no errors found

매우 기쁘다!

편집 - @Marcus Müller의 의견:

"참고: 정말로 이것이 필요합니까? 320GB 및 250GB 드라이브는 그다지 새로운 것이 아닐 수도 있습니다(...)"

당신 말이 맞습니다. 이것은 아주 오래된 드라이브입니다! 지난 몇 년 동안 Btrfs Raid1에서 사용하고 있는 현재 2TB Seagate Barracuda Compute 드라이브 2개를 제거하여 이 임의의 오래된 드라이브 4개를 배치했습니다. Barracudas는 완전한 안정성이 필요한 내 서버에 연결됩니다. /거기(Ext4 mdadm)용으로 2개의 SSD 250GB와 ECC RAM이 있는 /home 및 /var(Btrfs Raid1)용으로 2개의 HDD TB가 있습니다. Btrfs Raid1 모드 또는 Raid10 또는 Raid5를 위해 두 개의 Barracuda가 처음 두 개에 추가됩니다.

이제 4개의 오래된 드라이브가 내 데스크탑에 있으며 여기에는 다음이 포함됩니다.

Western Digital Blue Mobile, WDC WD10JPVX-60JC3T0
[1.00 TB, 4K sectors, SATA 3.0, 6.0 Gb/s, 5400 RPM, 2.5"]
Power_On_Hours 2496

Toshiba 2.5" HDD MK..65GSX, TOSHIBA MK5065GSX
[500 GB, 512 sectors, SATA 2.6, 3.0 Gb/s, 5400 RPM, 2.5"]
Power_On_Hours 2519

Seagate Momentus Thin, ST320LT007-9ZV142
[320 GB, 4K sectors, SATA 2.6, 3.0 Gb/s, 7200 RPM, 2.5"]
Power_On_Hours 5152

Seagate Barracuda 7200.12,ST3250318AS
[250 GB, 512 sectors, SATA 2.6, 3.0 Gb/s, 7200 RPM, 3.5"]
Power_On_Hours 6591

신뢰성은 실제로 문제가 되지 않습니다. 백업이 있지만 너무 빨리 고통스러운 놀라움을 원하지 않기 때문에 2.0의 기본 중복으로 문제를 해결할 수 있으며 드라이브 중 하나가 1년 정도 안에 실패하면 다른 드라이브를 한두 개 설치하는 단계로 돌아갑니다.

답변1

각 드라이브에 하나의 LVM 물리 볼륨만 있으면 됩니다.

pvcreate /dev/drive1 /dev/drive2 /dev/drive3 /dev/drive4

그런 다음 볼륨 그룹을 만듭니다.

vgcreate myvolumegroup /dev/drive1 /dev/drive2 /dev/drive3 /dev/drive4

마지막으로 각 블록에 미러가 있다는 속성을 사용하여 논리 볼륨을 생성합니다.

lvcreate --mirrors 1 -l100%FREE  -n myvolume myvolumegroup

축하해요! 이제 사용할 수 있는 블록 장치가 생겼습니다.어느btrfs 또는 XFS와 같은 원하는 파일 시스템:

mkfs.xfs /dev/myvolumegroup/myvolume
mount /dev/myvolumegroup/myvolume /mnt

작동해야합니다.


참고: 당신은틀림없이이걸 원해요? 320GB 및 250GB 드라이브는 그다지 새롭지 않을 수 있으며 여기에 매우 오래된 드라이브를 포함하면 (160+125)GB = 285GB의 추가 스토리지만 얻을 수 있습니다.

오래된 드라이브를 사용하는 것은 RAID1을 시작하려는 이유인 데이터 가용성과 정반대입니다. 또한 RAID5 사용을 고려해보세요( man lvmraid도움이 될 수 있음).

답변2

btrfsZFS와 달리 다양한 크기의 드라이브를 효율적으로 처리할 수 있기 때문에 사용됩니다 . 모든 드라이브의 총 용량은 대략 2로 나누어집니다(중복성을 위한 복사본 2개 포함). 약 1TB. 투명한 압축은 포함되지 않습니다.

ZFS는 다음 용량의 파일만 생성합니다.가장 작은장치 - 하지만 드라이브가 4개라면 미러 vdev 2개를 생성하게 됩니다. 예를 들어 1TB 및 500GB의 미러 1 vdev와 320GB 및 250GB의 미러 2 vdev입니다. 낭비되는 공간을 최소화하기 위해 1TB 및 320GB 드라이브를 분할하여 미러링된 드라이브와 일치하는 500GB 파티션과 250GB 파티션을 가질 수 있습니다. 이렇게 하면 압축하기 전에 풀에 총 750GB의 용량이 제공됩니다(RAID1+0과 유사한 구성에서). 이 드라이브의 남은 공간(500GB 및 70GB)은 인터넷에서 다운로드하여 "인터넷에 백업"했기 때문에 신경 쓰지 않는 내용 등 다른 목적으로 사용할 수 있습니다.

여유가 된다면 250GB 드라이브를 다른 1TB 드라이브로 교체하는 것이 좋습니다. 이는 zfs에 매우 좋으며 btrfs에도 매우 좋습니다. 둘 다 투명 압축 전에 용량을 약 1.3TB로 늘리기 때문입니다. "낭비되는" 공간이 훨씬 적습니다.

RAID-1/미러링을 수행하기 위해 LVM 또는 mdadm을 사용하지 마십시오. btrfs 자체가 이를 수행할 수 있으며 btrfs와 같은 버그 수정 파일 시스템을 사용하는 목적의 대부분을 무효화합니다.

스냅샷 및 투명한 압축과 같은 기능은 계속 작동하지만 실제로는 드라이브만 제공하기 때문에 해당 파일 시스템의 오류 수정 기능을 잃게 됩니다.

할 수 있는원하는 경우 ZFS 또는 btrfs에서 소프트웨어 또는 하드웨어 공격을 사용할 수 있지만 a) 필요하지 않으며 b) 좋은 생각이 아니며 실제로는 끔찍한 생각입니다. 설정 작업이 더 많고 복잡하며 중요한 기능이 제거되고 보상 혜택도 제공되지 않습니다.

LVM이나 mdadm을 사용하려면 그 위에 ext4(또는 더 나은 방법으로) 사용하세요.xfs

그런데, 나는 여전히 RAID-5/6에 대해 btrfs를 신뢰하지 않을 것이라고 생각하지만, RAID-1 또는 RAID-10(미러링과 같은)에는 절대적으로 괜찮을 것입니다.

관련 정보