본문 바로가기
IT생활

RAID-Z1에서 RAID-Z2로 변경하는 방법 (데이터 보호 유지)

by 우물 밖 개구리. 2025. 3. 15.
반응형

RAID-Z1에서 RAID-Z2로 변경하는 방법 (데이터 보호 유지)

RAID-Z1에서 RAID-Z2로 변경하는 과정에서 기존 데이터를 보호하면서 수행하는 것은 단순한 RAID 레벨 변경이 아니라 스토리지 풀의 확장 및 데이터 마이그레이션이 포함된 복잡한 과정입니다.
ZFS는 기존 RAID-Z1 풀을 직접 RAID-Z2로 변환하는 기능을 지원하지 않으므로, 다음과 같은 시나리오로 진행해야 합니다.


1. RAID-Z1 vs RAID-Z2: 차이점

 

RAID 유형  최소 디스크 개수  허용 가능한 디스크 장애 수  패리티 블록 수  데이터 보호 수준
RAID-Z1 3개 이상 1개 1개 보통 (1개 디스크 장애 시 복구 가능)
RAID-Z2 4개 이상 2개 2개 높음 (2개 디스크 장애 시 복구 가능)

RAID-Z1은 디스크 1개 장애 시 복구 가능하지만, 2개 이상 고장 시 데이터 유실 위험이 큽니다. 반면, RAID-Z2는 2개의 디스크 장애까지 허용하므로 안전성이 높아집니다.

하지만, 기존 RAID-Z1 풀을 RAID-Z2로 변경하는 기능이 존재하지 않으므로, 새로운 RAID-Z2 풀을 생성하고 데이터를 마이그레이션하는 방식으로 진행해야 합니다.


2. RAID-Z1에서 RAID-Z2로 변경하는 방법 (데이터 보호 유지)

시나리오 1: 여유 디스크 공간이 충분한 경우 (가장 안전한 방법)

전제 조건:

  • TrueNAS 시스템에 기존 RAID-Z1 풀 외에도 추가로 디스크를 장착할 수 있는 공간이 있는 경우
  • 새로운 RAID-Z2 풀을 생성한 후 데이터를 마이그레이션할 수 있음
  • 데이터 보호를 유지하면서 RAID-Z2로 변경하는 가장 안전한 방식

진행 과정:

  1. 새로운 RAID-Z2 풀 생성
    • 기존 RAID-Z1 풀과는 별도로 새로운 RAID-Z2 풀을 생성
    • 예: zpool create tank2 raidz2 /dev/sdX /dev/sdY /dev/sdZ ...
  2. 기존 데이터 마이그레이션
    • rsync 또는 zfs send/receive를 활용하여 데이터를 새로운 풀로 복사
    • 예:
      zfs snapshot tank@backup
      zfs send tank@backup | zfs receive tank2@backup
      
  3. 데이터 검증
    • zfs diff 또는 rsync --checksum을 이용하여 복사된 데이터가 정확한지 확인
    • 예:
      rsync -avh --dry-run /mnt/tank/ /mnt/tank2/
      
  4. 기존 RAID-Z1 풀 삭제 후, 새 RAID-Z2 풀을 기본 풀로 설정
    • 기존 RAID-Z1 풀(tank)을 삭제 (zpool destroy tank)
    • tank2의 이름을 기존 풀 이름(tank)으로 변경하여 시스템이 정상적으로 동작하도록 설정
      zpool export tank2
      zpool import tank2 tank
      

장점:

  • 데이터 보호를 유지하면서 RAID-Z2로 전환 가능
  • 다운타임 최소화

단점:

  • 추가적인 디스크 공간이 필요 (새로운 RAID-Z2 풀을 만들기 위해)

시나리오 2: 추가 디스크 공간이 없는 경우 (디스크 교체 방식, 위험도 높음)

전제 조건:

  • 추가 디스크를 사용할 수 없는 경우
  • RAID-Z1을 유지하면서 디스크를 하나씩 교체하여 RAID-Z2로 전환

진행 과정:

  1. 기존 RAID-Z1 풀의 디스크 하나를 더 큰 용량의 새 디스크로 교체
    • 예:
      zpool replace tank old_disk new_disk
      
  2. 디스크가 정상적으로 리빌드되었는지 확인
    • zpool status 명령어로 확인
    • 정상적으로 동기화될 때까지 기다려야 함
  3. 모든 디스크를 RAID-Z2로 변경할 만큼 교체한 후, zpool 업그레이드 진행
    • 모든 디스크를 교체하면, zpool 업그레이드를 통해 RAID-Z2로 전환 가능
    • 예:
      zpool upgrade tank
      

장점:

  • 추가 디스크 공간이 필요 없음
  • 일부 시스템에서는 가능하지만, 일반적으로 TrueNAS에서는 지원되지 않을 수 있음

단점:

  • 디스크 교체 중 장애 발생 시 데이터 손실 위험이 있음
  • 오랜 시간이 걸릴 수 있음

시나리오 3: 백업 후 풀을 새로 생성 (가장 간단하지만, 다운타임 존재)

전제 조건:

  • TrueNAS 외부 스토리지(외장 하드, 다른 NAS 등)에 데이터 백업이 가능
  • RAID-Z1 풀을 삭제한 후, RAID-Z2 풀을 새로 생성할 수 있음

진행 과정:

  1. 데이터 백업
    • 기존 RAID-Z1 풀의 데이터를 외부 스토리지에 백업
    • rsync 또는 zfs send를 사용하여 안전하게 저장
    • 예:
      rsync -avh /mnt/tank/ /mnt/external_backup/
      
  2. RAID-Z1 풀 삭제 후 RAID-Z2 풀 생성
    • 기존 풀 삭제 (zpool destroy tank)
    • RAID-Z2로 새 풀 생성
      zpool create tank raidz2 /dev/sdX /dev/sdY /dev/sdZ /dev/sdA
      
  3. 데이터 복원
    • 백업한 데이터를 RAID-Z2 풀로 복원
    • 예:
      rsync -avh /mnt/external_backup/ /mnt/tank/
      

장점:

  • RAID-Z2로 완벽한 새 풀을 구성 가능
  • 기존 RAID-Z1 풀을 유지할 필요가 없어 더 깔끔한 방법

단점:

  • 백업할 외부 스토리지가 필요
  • 다운타임이 존재 (새 풀을 만들고 복원하는 동안 서비스 중단 가능)

4. 결론: 가장 적합한 방법 선택

 

방법  추가 디스크 필요 여부  데이터 보호 수준  소요 시간  난이도
시나리오 1: 새 RAID-Z2 풀 생성 후 마이그레이션 ✅ 필요 ✅ 높음 ⏳ 중간 ⭐⭐
시나리오 2: 디스크 교체 방식 (RAID-Z1 유지하면서 점진적 변경) ❌ 없음 ⚠️ 위험 있음 ⏳ 오래 걸림 ⭐⭐⭐⭐
시나리오 3: 백업 후 RAID-Z2 새로 생성 ✅ 필요 ✅ 높음 ⏳ 오래 걸림

✅ 추천:

  1. 추가 디스크 공간이 있다면, 시나리오 1 (새 RAID-Z2 풀 생성 후 마이그레이션)이 가장 안전한 방법
  2. 추가 디스크가 없다면, 시나리오 3 (백업 후 새 풀 생성)이 가장 확실한 방법
  3. 디스크 교체 방식(시나리오 2)은 위험 부담이 크므로, 추천하지 않음
반응형