(12TB × 6 → 18TB × 6 교체)
1. 작업 개요
- 기존 구성
- TrueNAS SCALE
- ZFS
RAIDZ2 - 데이터 디스크: 12TB × 6
- 변경 목표
- 데이터 디스크를 18TB × 6으로 교체
- 데이터 손실 없이 용량 확장
- 교체 방식
- 디스크 1개씩 순차 교체
zpool replace+resilver
- 결과
- 풀 용량 약 100TB
- 가용 공간 약 75TB
- 오류 및 데이터 손실 0
2. 사전 상태 확인
zpool status
- 풀 상태
ONLINE - 스크럽 오류 없음
- RAIDZ2 정상 구성 확인
3. 디스크 교체 기본 절차 (반복)
아래 절차를 6회 반복했다.
3-1. 디스크 물리 교체
- 서버 전원 OFF
- 기존 12TB 디스크 1개 제거
- 18TB 디스크 장착
- 서버 전원 ON
3-2. ZFS에서 제거된 디스크 확인
zpool status
출력 예시:
UNAVAIL
was /dev/disk/by-partuuid/xxxxxxxx
→ 이 값이 zpool replace의 old 디스크 ID
3-3. 새 디스크 식별
ls -l /dev/disk/by-id/ | grep WUH721818
→ 새로 추가된 18TB 디스크의 by-id 확인
3-4. (중요) RAID 메타데이터 제거
중고 디스크라면 ddf_raid_member 메타데이터가 남아 있는 경우가 많다.
lsblk -f /dev/sdX
표시 예:
FSTYPE: ddf_raid_member
이 경우 반드시 제거:
sudo wipefs -a /dev/sdX
sudo wipefs /dev/sdX
3-5. 디스크 교체 실행
sudo zpool replace mainDATA \
<UNAVAIL-ID> \
/dev/disk/by-id/<새-디스크-ID>
3-6. 리실버 진행 확인
zpool status
정상 상태 예:
resilver in progress- READ / WRITE / CKSUM = 0
리실버 완료 시:
scan: resilvered ... with 0 errors
state: ONLINE
4. 모든 디스크 교체 완료 후 상태
zpool status
- RAIDZ2 구성 유지
- 18TB × 6 전부 ONLINE
- 오류 없음
5. 풀 용량 확장 (중요 단계)
5-1. autoexpand 활성화
sudo zpool set autoexpand=on mainDATA
zpool get autoexpand mainDATA
5-2. 용량 확인
zpool list
zfs list
결과:
mainDATA SIZE 100T ALLOC 25T FREE 75T HEALTH ONLINE
→ 확장 자동 반영 완료
RAIDZ에서는 모든 디스크 교체가 끝난 시점에
autoexpand가 켜져 있으면 별도 명령 없이 반영되는 경우가 많다.
6. 최종 무결성 검증 (스크럽)
sudo zpool scrub mainDATA
zpool status
정상 완료 메시지:
scrub repaired 0B with 0 errors
7. 최종 결과 요약
| 항목 | 결과 |
|---|---|
| 디스크 교체 | 12TB × 6 → 18TB × 6 |
| RAID 레벨 | RAIDZ2 |
| 풀 용량 | 약 100TB |
| 가용 공간 | 약 75TB |
| 데이터 손실 | 없음 |
| 오류 | 없음 |
| 작업 방식 | 무중단, 1디스크씩 교체 |
8. 작업 중 주의사항 정리
- 반드시 1개씩 교체
- 리실버 중에는:
- 재부팅 ❌
- 다음 디스크 교체 ❌
- 디스크 경로는 항상:
/dev/disk/by-id사용
- 중고 디스크는:
wipefs -a필수
9. 마무리
이번 작업은:
- ZFS RAIDZ2의 장점을 최대한 활용한
- 교과서적인 디스크 교체 & 확장 사례
였다.
대용량 스토리지 환경에서도
절차만 정확히 지키면 데이터 손실 없이 안정적으로 확장 가능하다는 것을 확인했다.
답글 남기기