RustFS 디스크 장애 해결 가이드
RustFS는 오류 수정 코드와 유사한 메커니즘을 통해 일부 디스크 장애 시에도 읽기/쓰기 액세스를 제공하고 디스크 교체 후 자동으로 데이터를 복구합니다.
목차
장애 디스크 언마운트
물리적 하드 디스크를 교체하기 전에 먼저 운영 체제 레벨에서 장애 디스크를 안전하게 언마운트해야 합니다. 이는 파일 시스템이나 RustFS가 교체 과정에서 I/O 오류가 발생하는 것을 방지합니다.
bash
# 장애 디스크가 /dev/sdb라고 가정
umount /dev/sdb
설명
- 마운트 포인트가 여러 개인 경우 각각
umount
를 실행하세요.- "장치가 사용 중"이라는 오류가 발생하면 먼저 RustFS 서비스를 중지할 수 있습니다:
bashsystemctl stop rustfs
장애 디스크 교체
물리적으로 장애 디스크를 교체한 후에는 새 디스크에 파티션을 생성하고 포맷하며, 원본 디스크와 동일한 레이블을 붙여야 합니다.
bash
# ext4로 포맷하고 DISK1 레이블을 붙임(원본 레이블과 일치해야 함)
mkfs.ext4 /dev/sdb -L DISK1
요구사항
- 새 디스크 용량 ≥ 원본 디스크 용량;
- 파일 시스템 유형을 다른 디스크와 일치시킴;
- 디스크 순서가 시스템 재시작의 영향을 받지 않도록 레이블(LABEL) 또는 UUID 마운트 사용을 권장합니다.
/etc/fstab
또는 RustFS 구성 업데이트
/etc/fstab
의 마운트 항목 레이블이나 UUID가 새 디스크를 가리키는지 확인하세요. RustFS 전용 구성 파일(예: config.yaml
)을 사용하는 경우에도 해당 항목을 동기화하여 업데이트해야 합니다.
bash
# 현재 fstab 확인
cat /etc/fstab
# fstab 항목 예시(레이블이 동일한 경우 수정 불필요)
LABEL=DISK1 /mnt/disk1 ext4 defaults,noatime 0 2
팁
- UUID를 사용하는 경우:
bashblkid /dev/sdb # 새 파티션의 UUID를 가져온 후 fstab의 해당 필드를 교체
- fstab 수정 후 반드시 구문을 검증하세요:
bashmount -a # 오류가 없으면 구성이 올바름
새 디스크 재마운트
다음 명령을 실행하여 모든 디스크를 일괄 마운트하고 RustFS 서비스를 시작하세요:
bash
mount -a
systemctl start rustfs
모든 디스크가 정상적으로 마운트되었는지 확인하세요:
bash
df -h | grep /mnt/disk
주의
- 일부 마운트가 실패한 경우 fstab 항목과 디스크 레이블/UUID가 일치하는지 확인하세요.
데이터 복구 트리거 및 모니터링
RustFS는 새 디스크를 감지한 후 자동으로 또는 수동으로 데이터 복구(heal) 프로세스를 트리거합니다. 다음 예시는 가상의 rustfs-admin
도구를 사용합니다:
bash
# 현재 디스크 상태 확인
rustfs-admin disk status
# 새 디스크에 대한 복구 수동 트리거
rustfs-admin heal --disk /mnt/disk1
# 실시간 복구 진행 상황 확인
rustfs-admin heal status --follow
동시에 서비스 로그를 확인하여 시스템이 디스크를 인식하고 데이터 복구를 시작했는지 확인할 수 있습니다:
bash
# systemd로 관리되는 설치의 경우
journalctl -u rustfs -f
# 또는 전용 로그 파일 확인
tail -f /var/log/rustfs/heal.log
설명
- 복구 프로세스는 백그라운드에서 완료되며, 일반적으로 온라인 액세스에 미치는 영향이 매우 작습니다;
- 복구가 완료되면 도구가 성공을 보고하거나 실패한 객체 목록을 제공합니다.
후속 검사 및 주의사항
- 성능 모니터링
- 복구 기간 동안 I/O가 약간 변동할 수 있으므로 디스크 및 네트워크 로드를 모니터링하는 것을 권장합니다.
- 일괄 장애
- 동일한 배치의 디스크에서 여러 번 장애가 발생하는 경우 더 빈번한 하드웨어 검사를 고려해야 합니다.
- 정기 훈련
- 정기적으로 디스크 장애를 시뮬레이션하여 팀이 복구 프로세스에 익숙해지도록 보장하세요.
- 유지보수 창
- 장애율이 높을 때 전용 유지보수 창을 계획하여 교체 및 복구 속도를 높이세요.