Go to file
시골약사 6395f8a03b 초기 커밋: Proxmox VE PBS Storage 자동 추가 스크립트
 주요 기능:
- PBS (Proxmox Backup Server)를 PVE 스토리지로 자동 추가
- 대화형 모드로 쉬운 설정
- 비대화형 모드로 자동화 지원
- API Token 및 사용자명/비밀번호 인증 지원
- SSL 핑거프린트 검증 기능
- 자동 연결 테스트 및 검증

🛠️ 포함 파일:
- add-pbs-storage.sh: PBS 스토리지 추가 스크립트
- README.md: 상세한 사용 가이드 및 예시

📦 사용 방법:
# 대화형 모드
curl -fsSL https://git.0bin.in/thug0bin/pve-add-pbs-storage/raw/branch/main/add-pbs-storage.sh | bash

# 비대화형 모드 (API Token)
./add-pbs-storage.sh -i pbs-backup -s 192.168.1.100 -d datastore1 -t "root@pam!backup" -T "token-secret"

🔧 주요 특징:
- pvesm 명령어를 사용한 안전한 스토리지 추가
- 컬러 출력으로 가독성 향상
- 상세한 에러 메시지 및 문제 해결 가이드
- Root 권한 및 Proxmox VE 환경 자동 확인

🎯 사용 사례:
- 로컬 네트워크 PBS 연결
- 원격 PBS 서버 연결 (SSL 검증)
- 다중 백업 보관 정책 설정
- 자동화 스크립트에 통합

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 08:55:16 +00:00
add-pbs-storage.sh 초기 커밋: Proxmox VE PBS Storage 자동 추가 스크립트 2025-10-28 08:55:16 +00:00
README.md 초기 커밋: Proxmox VE PBS Storage 자동 추가 스크립트 2025-10-28 08:55:16 +00:00

Proxmox VE - PBS Storage 자동 추가 스크립트

Proxmox Backup Server(PBS)를 Proxmox VE의 스토리지로 쉽고 빠르게 추가하는 스크립트입니다.

특징

  • 대화형 모드로 쉬운 설정
  • 비대화형 모드로 자동화 가능
  • API Token 및 사용자명/비밀번호 인증 지원
  • SSL 핑거프린트 검증 지원
  • 자동 연결 테스트
  • 상세한 에러 메시지

요구사항

  • Proxmox VE 7.0 이상
  • PBS (Proxmox Backup Server) 설치 및 실행 중
  • PBS에서 생성된 API Token 또는 사용자 계정
  • Root 권한

빠른 설치

방법 1: 원라인 설치 (대화형 모드)

curl -fsSL https://git.0bin.in/thug0bin/pve-add-pbs-storage/raw/branch/main/add-pbs-storage.sh | bash

방법 2: 다운로드 후 실행

wget https://git.0bin.in/thug0bin/pve-add-pbs-storage/raw/branch/main/add-pbs-storage.sh
chmod +x add-pbs-storage.sh
./add-pbs-storage.sh

사용 방법

1. 대화형 모드 (권장)

스크립트를 실행하면 대화형으로 필요한 정보를 입력받습니다:

./add-pbs-storage.sh

입력할 정보:

  • 스토리지 ID (예: pbs-backup)
  • PBS 서버 주소 (IP 또는 도메인)
  • 데이터스토어 이름 (기본값: datastore1)
  • 인증 방법 (API Token 또는 사용자명/비밀번호)
  • 포트 (기본값: 8007)
  • SSL 핑거프린트 (선택사항)

2. 비대화형 모드 (자동화)

API Token 사용 (권장)

./add-pbs-storage.sh \
  -i "pbs-backup" \
  -s "192.168.1.100" \
  -d "datastore1" \
  -t "root@pam!backup" \
  -T "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

사용자명/비밀번호 사용

./add-pbs-storage.sh \
  -i "pbs-backup" \
  -s "pbs.example.com" \
  -d "datastore1" \
  -u "root@pam" \
  -p "your-password"

전체 옵션 사용 예시

./add-pbs-storage.sh \
  -i "pbs-backup" \
  -s "192.168.1.100" \
  -d "datastore1" \
  -t "root@pam!backup" \
  -T "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \
  -P 8007 \
  -m 3 \
  -c "backup" \
  -f "AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:25:26:27:28:29:30:31:32"

명령어 옵션

필수 옵션

옵션 설명 예시
-i 스토리지 ID pbs-backup
-s PBS 서버 주소 192.168.1.100 또는 pbs.example.com
-d 데이터스토어 이름 datastore1

인증 옵션 (둘 중 하나 필수)

API Token (권장):

옵션 설명 예시
-t API Token Name root@pam!backup
-T API Token Secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

사용자명/비밀번호:

옵션 설명 예시
-u 사용자명 root@pam
-p 비밀번호 your-password

추가 옵션

옵션 설명 기본값
-P PBS 포트 8007
-f SSL Fingerprint 없음
-m 최대 백업 파일 수 1
-c 컨텐츠 타입 backup
-h 도움말 표시 -

PBS API Token 생성 방법

PBS 웹 인터페이스에서 API Token을 생성하는 방법:

  1. PBS 웹 UI 접속: https://PBS_IP:8007
  2. ConfigurationAccess ControlAPI Tokens
  3. Add 버튼 클릭
  4. 다음 정보 입력:
    • User: root@pam
    • Token Name: backup (원하는 이름)
  5. Add 클릭
  6. 생성된 Secret을 복사 (한 번만 표시됨!)

생성된 토큰 형식:

  • Token Name: root@pam!backup
  • Token Secret: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

SSL Fingerprint 확인 방법

PBS 서버의 SSL 핑거프린트를 확인하려면:

# PBS 서버에서 실행
openssl x509 -in /etc/proxmox-backup/proxy.pem -noout -fingerprint -sha256

또는 PVE에서 확인:

openssl s_client -connect PBS_IP:8007 < /dev/null 2>/dev/null | \
  openssl x509 -noout -fingerprint -sha256 | \
  cut -d= -f2

예시 시나리오

시나리오 1: 로컬 네트워크 PBS 추가

./add-pbs-storage.sh \
  -i "local-pbs" \
  -s "192.168.1.50" \
  -d "backups" \
  -t "root@pam!backup-token" \
  -T "12345678-1234-1234-1234-123456789abc"

시나리오 2: 원격 PBS 추가 (핑거프린트 검증)

./add-pbs-storage.sh \
  -i "remote-pbs" \
  -s "pbs.company.com" \
  -d "datastore1" \
  -t "backup@pbs!remote" \
  -T "87654321-4321-4321-4321-cba987654321" \
  -f "AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:25:26:27:28:29:30:31:32"

시나리오 3: 다중 백업 보관

./add-pbs-storage.sh \
  -i "pbs-longterm" \
  -s "192.168.1.100" \
  -d "longterm-storage" \
  -t "root@pam!backup" \
  -T "your-token-secret" \
  -m 10

스토리지 확인

스크립트 실행 후 다음 명령어로 스토리지를 확인할 수 있습니다:

# 모든 스토리지 목록 보기
pvesm status

# 특정 스토리지 상태 확인
pvesm status -storage pbs-backup

# 스토리지 설정 보기
cat /etc/pve/storage.cfg

스토리지 제거

PBS 스토리지를 제거하려면:

pvesm remove pbs-backup

백업 생성 방법

PBS 스토리지를 추가한 후 백업을 생성하는 방법:

웹 UI에서:

  1. VM 또는 Container 선택
  2. Backup 탭 클릭
  3. Backup now 버튼 클릭
  4. Storage: PBS 스토리지 선택
  5. Backup 클릭

명령줄에서:

# VM 백업
vzdump 100 --storage pbs-backup --mode snapshot

# 여러 VM 백업
vzdump 100 101 102 --storage pbs-backup --mode snapshot

# Container 백업
vzdump 200 --storage pbs-backup

자동 백업 스케줄 설정

웹 UI에서 자동 백업 스케줄 설정:

  1. DatacenterBackup
  2. Add 버튼 클릭
  3. 다음 설정:
    • Storage: PBS 스토리지 선택
    • Schedule: 백업 주기 설정 (예: 0 2 * * * = 매일 새벽 2시)
    • Selection Mode: VM 선택 방식
    • Retention: 보관 정책

문제 해결

연결 실패

# PBS 서버 연결 확인
ping PBS_IP

# PBS 포트 확인
nc -zv PBS_IP 8007

# PBS 서비스 상태 확인 (PBS 서버에서)
systemctl status proxmox-backup-proxy

인증 실패

  • API Token이 올바른지 확인
  • Token에 필요한 권한이 있는지 확인 (PBS에서 확인)
  • 사용자명 형식 확인: username@realm (예: root@pam)

SSL 인증서 오류

  • 자체 서명 인증서를 사용하는 경우 핑거프린트를 지정하세요
  • 또는 PBS에 유효한 인증서를 설치하세요

데이터스토어를 찾을 수 없음

PBS 웹 UI에서 데이터스토어가 생성되어 있는지 확인:

  • PBS UI → Datastore 확인

고급 설정

컨텐츠 타입

지원되는 컨텐츠 타입:

  • backup: VM 및 Container 백업 (기본값)
  • snippets: 스니펫 파일

여러 타입 지정:

-c "backup,snippets"

보존 정책

최대 백업 파일 수 설정:

-m 5  # 최근 5개 백업만 보관

보안 권장사항

  1. API Token 사용 (비밀번호보다 안전)
  2. Token에 최소 권한만 부여
  3. SSL 핑거프린트 검증 사용
  4. 방화벽에서 PBS 포트(8007) 제한
  5. 정기적으로 Token 갱신

자주 묻는 질문 (FAQ)

Q: PBS와 NFS/CIFS 백업의 차이는?

PBS 장점:

  • 중복 제거 (Deduplication)
  • 압축
  • 암호화
  • 백업 검증
  • 증분 백업

Q: 여러 PVE 노드에서 같은 PBS 사용 가능?

네, 각 PVE 노드에서 이 스크립트를 실행하면 됩니다.

Q: PBS 백업을 외부로 복제하려면?

PBS에서 RemoteSync Jobs를 설정하세요.

참고 자료

라이선스

MIT License

기여

Issues 및 Pull Requests는 언제나 환영합니다!

관련 프로젝트