Skip to content

RustFS 디스크 장애 해결 가이드

RustFS는 오류 수정 코드와 유사한 메커니즘을 통해 일부 디스크 장애 시에도 읽기/쓰기 액세스를 제공하고 디스크 교체 후 자동으로 데이터를 복구합니다.

목차

  1. 장애 디스크 언마운트
  2. 장애 디스크 교체
  3. /etc/fstab 또는 RustFS 구성 업데이트
  4. 새 디스크 재마운트
  5. 데이터 복구 트리거 및 모니터링
  6. 후속 검사 및 주의사항

장애 디스크 언마운트

물리적 하드 디스크를 교체하기 전에 먼저 운영 체제 레벨에서 장애 디스크를 안전하게 언마운트해야 합니다. 이는 파일 시스템이나 RustFS가 교체 과정에서 I/O 오류가 발생하는 것을 방지합니다.

bash
# 장애 디스크가 /dev/sdb라고 가정
umount /dev/sdb

설명

  • 마운트 포인트가 여러 개인 경우 각각 umount를 실행하세요.
  • "장치가 사용 중"이라는 오류가 발생하면 먼저 RustFS 서비스를 중지할 수 있습니다:
bash
systemctl 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를 사용하는 경우:
bash
blkid /dev/sdb
# 새 파티션의 UUID를 가져온 후 fstab의 해당 필드를 교체
  • fstab 수정 후 반드시 구문을 검증하세요:
bash
mount -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

설명

  • 복구 프로세스는 백그라운드에서 완료되며, 일반적으로 온라인 액세스에 미치는 영향이 매우 작습니다;
  • 복구가 완료되면 도구가 성공을 보고하거나 실패한 객체 목록을 제공합니다.

후속 검사 및 주의사항

  1. 성능 모니터링
  • 복구 기간 동안 I/O가 약간 변동할 수 있으므로 디스크 및 네트워크 로드를 모니터링하는 것을 권장합니다.
  1. 일괄 장애
  • 동일한 배치의 디스크에서 여러 번 장애가 발생하는 경우 더 빈번한 하드웨어 검사를 고려해야 합니다.
  1. 정기 훈련
  • 정기적으로 디스크 장애를 시뮬레이션하여 팀이 복구 프로세스에 익숙해지도록 보장하세요.
  1. 유지보수 창
  • 장애율이 높을 때 전용 유지보수 창을 계획하여 교체 및 복구 속도를 높이세요.

Apache License 2.0 하에 출시되었습니다.