나는 내 파일 서버에서 Ext3/4+lvm2+mdadm 파일 시스템 설정을 약 5년 동안 사용해 왔습니다. 크기가 커지고(프로세서를 몇 번 이동함) 시스템 간에 디스크를 이동하고(볼륨 그룹 내보내기/가져오기) 물리 볼륨을 새 디스크로 이동했기 때문에 꽤 만족하지만 최근에 찾기 시작했습니다. mdadm의 확인 및 재동기화 시간이 과도해지고 최신 시스템이 이를 방지하기 위해 체크섬 및 동적 복구를 사용하는 것으로 나타나기 때문에 대체 파일 시스템이 필요합니다.
내 설정은 혼합 디스크 크기를 허용하기 위해 전체 디스크가 아닌 파티션으로 구축된 RAID 어레이를 사용합니다. 예를 들어 이전에는 4개의 디스크(3TB 2개, 2Tb 1개, 1Tb 1개)를 혼합하여 9Tb 어레이를 생성하여 6Tb의 여유 공간을 제공했습니다. . 4개의 디스크가 1Tb 파티션으로 포맷되었다고 가정하면 mdadm/lvm2 명령은 다음과 같습니다.
# mdadm /dev/md0 --create -lraid5 -n3 /dev/sda1 /dev/sdb1 /dev/sdc1
# mdadm /dev/md1 --create -lraid5 -n3 /dev/sda2 /dev/sdb2 /dev/sdc2
# mdadm /dev/md2 --create -lraid5 -n3 /dev/sda3 /dev/sdb3 /dev/sdd1
# pvcreate /dev/md0 /dev/md1 /dev/md2
# vgcreate grp /dev/md0 /dev/md1 /dev/md2
# lvcreate -l100%FREE --name vol grp
ZFS의 경우 로그와 캐시를 무시하고 명령은 다음과 같습니다.
# zpool create puddle raidz sda1 sdb2 sdc1 raidz sda2 sdb2 sdc2 raidz sda3 sdb3 sdd1
그러나 BTRFS의 경우 가장 좋은 접근 방식은 3개의 RAID 어레이를 만드는 것 같습니다.
# mkfs.btrfs -draid5 /dev/sda1 /dev/sdb1 /dev/sdc1
# mkfs.btrfs -draid5 /dev/sda2 /dev/sdb2 /dev/sdc2
# mkfs.btrfs -draid5 /dev/sda3 /dev/sdb3 /dev/sdd1
제가 누락한 것이 없다면 BTRFS에서는 이를 단일 파일 시스템으로 병합할 수 있는 방법이 없는 것 같습니다. (또한 많은 토론에서는 raid5 구현이 상당히 새롭고 프로덕션 표준이 아닐 수도 있음을 암시합니다!) 4개의 서로 다른 크기의 디스크에 걸쳐 단일 파일 시스템을 가져오고 단일 디스크 손실에 대비한 중복성을 제공하고 저장을 위한 여유 공간의 2/3를 확보하도록 BTRFS를 구성하는 방법이 있습니까?
아니면 내 옵션이 ZFS 또는 기존 ext/lvm/mdadm 스택으로 제한됩니까?
고쳐 쓰다: BTRFS RAID5가 안정적으로 선언되기를 기다리는 동안 BTRFS RAID1 설정을 만들었습니다. 그 후 BTRFS RAID5/6은 매우 손상되었으며 실험 설정에만 적합하다고 선언되어 ZFS RAIDZ2(RAID6) 어레이로 전환했습니다.
답변1
예제 디스크 크기(2 x 3TB, 1 x 2TB, 1 x 1TB)의 경우 사용 가능한 공간의 정확히 2/3와 드라이브를 잃을 만큼 충분한 패리티가 있는 btrfs raid5에서 제대로 작동합니다. 파티셔닝이 필요하지 않습니다. 모든 장치를 btrfs에 직접 넘겨주기만 하면 됩니다.
당신은 그것을 사용할 수 있습니다Btrfs 공간 할당자웹사이트의 다양한 구성을 시도하여 얼마나 많은 공간이 낭비되는지 확인하십시오.
귀하의 예에서는 다음을 수행하여 배열을 생성합니다.
mkfs.btrfs -d raid5 -m raid5 /dev/sd[a-d]
그러나 raid0/1/10은 매우 안정적이지만(오랫동안 커널에 있었습니다. 예를 들어 SuSE Linux Enterprise Server 12는 공식적으로 이러한 모드를 지원합니다), raid5/6 코드는 Linux 3.19에서만 반 완성되었습니다. , raid5는 현재 여전히 "쓰기 구멍"에 취약하므로 btrfs raid5를 사용하려는 경우 모든 중요한 데이터를 잘 백업했는지 확인하십시오(파일 시스템에 관계없이 모든 사람이 어쨌든 이 작업을 수행해야 합니다).
개인적으로 저는 실험적이지 않은 설정에서 btrfs raid5/6을 사용하기 전에 몇 가지 커널 릴리스를 더 기다릴 것입니다.
raid5/6의 최신 상태를 이해하려면btrfs raid56 위키 페이지일반적으로 최신 버전이어야 합니다.