För ett lokalt NAS-arkiv bör du behålla restics standardvärde på 16 MiB, såvida inte mätningar visar att overhead från arkivfiler eller HDD-sökningar begränsar genomströmningen. Om NAS-enheten lagrar ett arkiv på flera terabyte på roterande diskar är 32 MiB eller 64 MiB rimliga värden att benchmarka innan du överväger något större.
Packstorleken är inte samma sak som restics chunkstorlek för deduplicering. Restic delar först upp fildata i innehållsdefinierade blobbar och grupperar sedan blobbarna i packfiler. När målpackstorleken ändras påverkas hur dessa blobbar paketeras i arkivet; arkivets chunker-polynom eller innehållshashar ändras inte.
Börja med standardvärdet 16 MiB
Den aktuella vägledningen för finjustering av restic anger att standardmålet för packstorleken är 16 MiB. Den påpekar också att större packfiler kan minska antalet arkivfiler och förbättra säkerhetskopieringsprestandan för vissa arkiv som lagras på lokala HDD-enheter.
restic version
restic -r /mnt/nas/restic-repo snapshots
restic -r /mnt/nas/restic-repo stats --mode raw-data
Anteckna restic-versionen, arkivets storlek, antalet ögonblicksbilder, lagringstypen och den aktuella säkerhetskopieringstiden innan du finjusterar. Om arkivet redan blir klart inom säkerhetskopieringsfönstret kan en större packstorlek medföra mer komplexitet utan att ge någon märkbar nytta.
Förstå vad packstorleken faktiskt ändrar
Restics design av arkivformatet förklarar att filinnehåll delas upp i innehållsdefinierade blobbar och att dessa blobbar grupperas i packfiler.
Källfiler
|
innehållsdefinierad chunkindelning
|
deduplicerade blobbar
|
packgruppering
|
datafiler i arkivet
Ett större packmål innebär i allmänhet färre och större arkivfiler. Det kan hjälpa en roterande disk att lägga mindre tid på metadata och overhead för filöppning. Det gör inte att identiskt filinnehåll dedupliceras bättre.
Kontrollera om NAS-enheten faktiskt är begränsad av packstorleken
Innan du finjusterar bör du övervaka lagringsdisken i arkivet under en normal inkrementell säkerhetskopiering. Ett lokalt HDD-arkiv som är upptaget med många korta sökningar och metadataoperationer medan genomströmningen förblir låg är en bättre kandidat än ett SSD-arkiv som redan skriver sekventiellt med hög hastighet.
iostat -xz 2
Leta efter ihållande diskanvändning, förhöjda await-tider och låg genomströmning jämfört med en stor sekventiell skrivning. Kontrollera även CPU-användning och läshastighet från källan. Om komprimering, hashberäkning, käll-I/O eller nätverk är flaskhalsen löser en ökad packstorlek inte problemet.
Jämför 16, 32 och 64 MiB med jämförbara arkiv
Den renaste jämförelsen använder engångsarkiv som skapas för testet. Använd samma källdatauppsättning, NAS-volym, Restic-version och antal backendanslutningar.
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
Mät förfluten tid, genomströmning för arkivets disk, användning av tillfälligt utrymme och antalet resulterande datafiler. Upprepa körningarna när det är möjligt, så att effekter från sidcachen inte avgör resultatet.
Ta hänsyn till tillfälligt utrymme innan du ökar packstorleken
Restic dokumenterar kravet på tillfälligt utrymme ungefär så här:
packstorlek × (backendanslutningar + 1)
Med fem backendanslutningar och ett mål på 64 MiB krävs minst 384 MiB tillfälligt utrymme. Den lokala backendanslutningen använder för närvarande som standard färre anslutningar än de flesta fjärranslutningar, men samma regel gäller fortfarande.
df -h "${TMPDIR:-/tmp}"
export TMPDIR=/mnt/fast-temp/restic
mkdir -p "$TMPDIR"
Större tillfälliga packfiler kan också öka minnesanvändningen och göra att fler tillfälliga skrivningar når SSD-lagringen i stället för att förbli i cachen.
Använd samma packstorleksinställning för kommandon som skriver till arkivet
Restic anger att packstorleksinställningen bör anges för varje kommando som ändrar arkivet. Använd en miljövariabel för hela jobbet:
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
Att ändra packstorleken omdefinierar inte dedupliceringssegmenteringen, men det kan leda till packfiler av olika storlek. Enhetlighet gör framtida underhåll och prestandajämförelser enklare att tolka.
Förvänta dig inte att befintliga packfiler ändrar storlek automatiskt
En ny inställning för packstorlek påverkar nyskapade eller ompaketerade data. Befintliga packfiler skrivs inte om enbart för att RESTIC_PACK_SIZE ändringar.
Om du avsiktligt vill att prune ska paketera om mindre befintliga packfiler erbjuder aktuella versioner av restic --repack-smaller-than. Läs först alternativen för ompaketering med prune.
restic prune --dry-run --repack-smaller-than 32M
Börja med en torrkörning. Tvinga inte fram en fullständig ompaketering enbart för att få alla packfiler att se enhetliga ut.
Verifiera integriteten efter justering
restic check
restic check --read-data-subset=5%
Välj ett verifieringsschema som passar arkivets storlek. Restics felsökningsvägledning för arkiv behandlar integritetskontroller som grunden för att diagnostisera skador på arkivet.
För en mer omfattande säkerhetskopieringsdesign kan du kombinera det lokala arkivet med en annan oberoende kopia. ZimaOS 3-2-1-strategi för säkerhetskopiering förklarar varför lokal redundans och ett separat mål hanterar olika typer av fel.
Använd denna beslutsregel
- Behåll 16 MiB om säkerhetskopieringarna redan ryms inom tidsfönstret eller om flaskhalsen finns någon annanstans.
- Testa 32 MiB om ett stort HDD-arkiv tillbringar mycket tid med metadata och åtgärder på små filer.
- Testa 64 MiB om 32 MiB ger bättre resultat och användningen av tillfälligt utrymme fortfarande är hanterbar.
- Sluta öka när förbättringarna avtar eller den tillfälliga I/O-belastningen ökar.
Den bästa packstorleken är det minsta värde som märkbart minskar overheaden i arkivet utan att skapa en ny flaskhals.
Vanliga frågor om restics packstorlek
Ger en större packstorlek bättre deduplicering i restic?
Nej. Deduplikering sker på blob-/chunknivå innan blobbar grupperas i packfiler.
Kommer en ändring av packstorleken att skriva om mina gamla packfiler?
Nej. Befintliga packfiler finns kvar tills vanligt prune-/ompaketeringsarbete skriver om dem.
Vilken packstorlek bör jag prova först på en lokal HDD-baserad NAS?
Använd 16 MiB som baslinje och jämför sedan 32 MiB och 64 MiB under samma arbetsbelastning.
Support och tips
Mer att läsa

Home Assistant fungerar via Wi-Fi men inte via Ethernet eller VPN
Testa varje nätverkssökväg separat, verifiera gränssnittets och routingens status, skilj direktanslutning via IP-adress från upptäckt och reparera sedan endast det lager som har fallerat.

Så avvecklar du Home Assistant utan att lämna kvar oskyddade data
Bevisa utbytet eller arkiveringen, återkalla varje förtroendeväg, sanera varje databärande enhet och behåll endast dokumenterade skyddade återställningskopior.

Bör du använda automatiska uppdateringar för Home Assistant på en hemmaserver?
Välj manuella, endast aviserade eller stegvis automatiska uppdateringar utifrån påverkan på hushållet, kompatibilitetsrisk, observationstid och beredskap för återställning.

