로컬 NAS 저장소의 경우 저장소 파일 오버헤드나 HDD 탐색 동작이 처리량을 제한한다는 측정 결과가 나오지 않는 한 restic의 16MiB 기본값을 유지하세요. NAS가 회전식 디스크에 수 테라바이트 규모의 저장소를 보관한다면, 그보다 큰 값을 고려하기 전에 32MiB 또는 64MiB 팩을 벤치마크해 보는 것이 합리적입니다.
팩 크기는 restic의 중복 제거 청크 크기와 동일하지 않습니다. Restic은 먼저 파일 데이터를 콘텐츠 정의 블롭으로 분할한 다음, 블롭을 팩 파일로 그룹화합니다. 대상 팩 크기를 변경하면 저장소에서 이러한 블롭이 묶이는 방식이 바뀌지만, 저장소의 청커 다항식이나 콘텐츠 해시는 변경되지 않습니다.
16MiB 기본값으로 시작
현재 restic 조정 지침에 따르면 기본 대상 팩 크기는 16MiB입니다. 또한 로컬 HDD에 저장된 일부 저장소에서는 더 큰 팩 파일이 저장소 파일 수를 줄이고 백업 성능을 향상시킬 수 있다고 설명합니다.
restic version
restic -r /mnt/nas/restic-repo snapshots
restic -r /mnt/nas/restic-repo stats --mode raw-data
조정하기 전에 restic 버전, 저장소 크기, 스냅샷 수, 스토리지 유형 및 현재 백업 소요 시간을 기록하세요. 저장소 백업이 이미 백업 시간 내에 완료된다면, 팩 크기를 늘려도 유용한 이점 없이 복잡성만 커질 수 있습니다.
팩 크기가 실제로 변경하는 내용 이해
Restic의 저장소 형식 설계에서는 파일 콘텐츠가 콘텐츠 정의 블롭으로 분할되고, 이러한 블롭이 팩 파일로 그룹화된다고 설명합니다.
소스 파일
|
콘텐츠 정의 청킹
|
중복 제거된 블롭
|
팩 그룹화
|
저장소 데이터 파일
일반적으로 더 큰 팩 대상 크기는 더 적고 큰 저장소 파일을 의미합니다. 그러면 회전식 디스크가 메타데이터와 파일 열기 오버헤드에 소비하는 시간이 줄어들 수 있습니다. 그렇다고 동일한 파일 콘텐츠의 중복 제거 효율이 더 좋아지는 것은 아닙니다.
NAS가 실제로 팩 크기에 의해 제한되는지 확인
조정하기 전에 일반적인 증분 백업 중 저장소 디스크를 관찰하세요. 처리량은 낮은데 로컬 HDD 저장소에서 짧은 탐색과 메타데이터 작업이 많이 발생한다면, 이미 높은 속도로 순차 쓰기 중인 SSD 저장소보다 조정 대상으로 더 적합합니다.
iostat -xz 2
지속적인 디스크 사용률, 증가한 await 시간, 대규모 순차 쓰기에 비해 낮은 처리량을 확인하세요. CPU 사용량과 원본 읽기 속도도 점검하세요. 압축, 해시 계산, 원본 I/O 또는 네트워킹이 병목이라면 팩 크기를 늘려도 문제가 해결되지 않습니다.
서로 비교 가능한 저장소로 16, 32, 64MiB 벤치마크하기
가장 깔끔한 비교 방법은 테스트용으로 만든 임시 저장소를 사용하는 것입니다. 동일한 원본 데이터 세트, NAS 볼륨, restic 버전, 백엔드 연결 수를 사용하세요.
restic --pack-size 16 -r /mnt/nas/test-restic-16 init
restic --pack-size 16 -r /mnt/nas/test-restic-16 backup /srv/testdata
restic --pack-size 32 -r /mnt/nas/test-restic-32 init
restic --pack-size 32 -r /mnt/nas/test-restic-32 backup /srv/testdata
restic --pack-size 64 -r /mnt/nas/test-restic-64 init
restic --pack-size 64 -r /mnt/nas/test-restic-64 backup /srv/testdata
경과 시간, 저장소 디스크 처리량, 임시 공간 사용량, 결과 데이터 파일 수를 측정하세요. 가능하면 실행을 반복하여 페이지 캐시의 영향이 결과를 좌우하지 않도록 하세요.
팩 크기를 늘리기 전에 임시 공간을 고려하세요
Restic은 임시 공간 요구 사항을 대략 다음과 같이 설명합니다.
팩 크기 × (백엔드 연결 수 + 1)
백엔드 연결 5개와 목표 크기 64MiB를 사용하면 최소 384MiB의 임시 공간이 필요합니다. 현재 로컬 백엔드는 대부분의 원격 백엔드보다 기본 연결 수가 적지만, 같은 규칙이 여전히 적용됩니다.
df -h "${TMPDIR:-/tmp}"
export TMPDIR=/mnt/fast-temp/restic
mkdir -p "$TMPDIR"
더 큰 임시 팩은 메모리 사용량을 늘릴 수 있으며, 캐시에 남지 않고 SSD 저장 장치에 기록되는 임시 쓰기 작업이 더 많아질 수 있습니다.
저장소에 기록하는 명령에서 동일한 팩 크기 설정 유지
Restic은 저장소를 수정하는 모든 명령에 팩 크기 설정을 지정해야 한다고 설명합니다. 전체 작업에 하나의 환경 변수를 사용하세요.
export RESTIC_REPOSITORY=/mnt/nas/restic-repo
export RESTIC_PACK_SIZE=64
export RESTIC_PASSWORD_FILE=/root/.config/restic/password
restic backup /srv/data
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6
restic prune
팩 크기를 변경해도 중복 제거 청킹 방식이 다시 정의되지는 않지만, 크기가 서로 다른 팩이 생길 수 있습니다. 일관성을 유지하면 향후 유지 관리와 성능 비교 결과를 더 쉽게 해석할 수 있습니다.
기존 팩이 자동으로 크기가 조정될 것이라고 기대하지 마세요
새로운 팩 크기 설정은 새로 생성되거나 다시 패킹되는 데이터에 적용됩니다. 기존 팩 파일은 단지 설정이 변경되었다는 이유만으로 다시 작성되지 RESTIC_PACK_SIZE 변경 사항.
기존의 작은 팩을 의도적으로 prune에서 다시 묶으려면 현재 restic에서 --repack-smaller-than을 제공합니다. 먼저 prune 재패킹 옵션을 검토하세요.
restic prune --dry-run --repack-smaller-than 32M
드라이 런으로 시작하세요. 모든 팩 파일을 균일하게 보이게 만들기 위해서만 전체 repack을 강제로 수행하지 마세요.
튜닝 후 무결성 검증
restic check
restic check --read-data-subset=5%
리포지토리 크기에 맞는 검증 일정을 선택하세요. restic의 리포지토리 문제 해결 지침에서는 무결성 검사를 리포지토리 손상을 진단하는 기반으로 다룹니다.
더 폭넓은 백업 설계를 위해 로컬 리포지토리를 다른 독립적인 복사본과 결합하세요. ZimaOS의 3-2-1 백업 전략은 로컬 중복성과 별도의 대상이 서로 다른 장애 유형을 해결하는 이유를 설명합니다.
이 결정 규칙 사용
- 백업이 이미 허용된 시간 내에 완료되거나 병목이 다른 곳에 있다면 16MiB를 유지하세요.
- 대규모 HDD 리포지토리에서 메타데이터 및 작은 파일 작업에 상당한 시간이 소요된다면 32MiB를 테스트하세요.
- 32MiB에서 개선 효과가 있고 임시 공간 사용량이 감당 가능한 수준이라면 64MiB를 테스트하세요.
- 증가를 멈추세요. 개선 효과가 둔화되거나 임시 I/O가 증가하면 중단하세요.
가장 적합한 팩 크기는 새로운 병목을 만들지 않으면서 리포지토리 오버헤드를 측정 가능하게 줄이는 가장 작은 값입니다.
restic 팩 크기 FAQ
더 큰 팩 크기가 restic 중복 제거 성능을 향상하나요?
아니요. 중복 제거는 블롭/청크 계층에서 수행된 후 블롭이 팩 파일로 그룹화됩니다.
팩 크기를 변경하면 기존 팩 파일이 다시 작성되나요?
아니요. 기존 팩은 일반적인 prune/repack 작업에서 다시 작성될 때까지 그대로 유지됩니다.
로컬 HDD NAS에서 먼저 시도할 팩 크기는 얼마인가요?
기준값으로 16MiB를 사용한 다음, 동일한 워크로드에서 32MiB와 64MiB를 벤치마크하세요.
지원 및 팁
더 읽어보기

Home Assistant가 Wi-Fi에서는 작동하지만 이더넷이나 VPN에서는 작동하지 않음
각 네트워크 경로를 개별적으로 테스트하고, 인터페이스와 라우팅 상태를 확인한 다음, 직접 IP 연결과 검색 기능을 구분하여 실패한 계층만 복구하세요.

보호되지 않은 데이터를 남기지 않고 Home Assistant를 폐기하는 방법
교체 또는 보관을 입증하고, 모든 신뢰 경로를 폐기하며, 데이터를 저장하는 각 장치를 안전하게 삭제하고, 문서화된 보호 복구 사본만 보존하세요.

홈 서버에서 Home Assistant 자동 업데이트를 사용해야 할까요?
가정에 미치는 영향, 호환성 위험, 관찰 시간, 복구 준비 상태를 고려해 수동 업데이트, 알림만 제공, 또는 단계적 자동 업데이트를 선택하세요.

