                  ============================================
                  SnapRAID Säkerhetskopiering för Disk-arrayer
                  ============================================


1 SYNOPSIS
==========

snapraid [-c, --conf CONFIG]
	[-f, --filter PATTERN] [-d, --filter-disk NAME]
	[-m, --filter-missing] [-e, --filter-error]
	[-a, --audit-only] [-h, --pre-hash] [-i, --import DIR]
	[-p, --plan PERC|bad|new|full]
	[-o, --older-than DAYS] [-l, --log FILE]
	[-s, --spin-down-on-error] [-w, --bw-limit RATE]
	[-t, --tail]
	[-Z, --force-zero] [-E, --force-empty]
	[-U, --force-uuid] [-D, --force-device]
	[-N, --force-nocopy] [-F, --force-full]
	[-R, --force-realloc] [-W, --force-realloc-tail]
	[-S, --start BLKSTART] [-B, --count BLKCOUNT]
	[-L, --error-limit NUMBER]
	[-A, --stats]
	[-v, --verbose] [-q, --quiet]
	status|smart|probe|up|down|diff|sync|scrub|fix|check
	|list|dup|pool|devices|touch|rehash|locate

snapraid [-V, --version] [-H, --help] [-C, --gen-conf CONTENT]


2 BESKRIVNING
=============

SnapRAID är ett säkerhetskopieringsprogram designat för disk-arrayer,
som lagrar paritetsinformation för dataåterställning vid upp till sex
diskfel.

SnapRAID är i första hand avsett för hemmamediabibliotek med stora,
sällan ändrade filer, och erbjuder flera funktioner:

* Du kan använda diskar som redan är fyllda med filer utan
  att behöva formatera om dem, och du får åtkomst till dem som vanligt.
* All din data hashberäknas för att säkerställa dataintegritet och
  förhindra tyst korruption.
* När antalet felaktiga diskar överskrider paritetsantalet,
  begränsas dataförlusten till de drabbade diskarna; data på
  andra diskar förblir åtkomlig.
* Om du oavsiktligt raderar filer på en disk är återställning
  möjlig.
* Diskar kan ha olika storlekar.
* Du kan lägga till diskar när som helst.
* SnapRAID låser inte in din data; du kan sluta använda det
  när som helst utan omformatering eller dataflytt.
* För att få åtkomst till en fil behöver endast en enda disk snurra,
  vilket sparar ström och minskar buller.

För mer information, besök den officiella SnapRAID-webbplatsen:

    https://www.snapraid.it/


3 BEGRäNSNINGAR
===============

SnapRAID är en hybrid mellan ett RAID- och ett säkerhetskopieringsprogram,
som syftar till att kombinera de bästa fördelarna med båda. Den har dock
vissa begränsningar som du bör överväga innan du använder den.

Huvudbegränsningen är att om en disk misslyckas och du inte nyligen har
synkat, kanske du inte kan återställa fullständigt.
Mer specifikt, kanske du inte kan återställa upp till storleken på
de ändrade eller raderade filerna sedan den senaste synkroniseringsoperationen.
Detta inträffar även om de ändrade eller raderade filerna inte finns på
den felaktiga disken. Det är därför SnapRAID passar bättre för
data som sällan ändras.

Å andra sidan förhindrar nyligen tillagda filer inte återställning av redan
befintliga filer. Du kommer bara att förlora de nyligen tillagda filerna om de
finns på den felaktiga disken.

Andra SnapRAID-begränsningar är:

* Med SnapRAID har du fortfarande separata filsystem för varje disk.
  Med RAID får du ett enda stort filsystem.
* SnapRAID stripas inte data.
  Med RAID får du en hastighetsökning med striping.
* SnapRAID stöder inte återställning i realtid.
  Med RAID behöver du inte sluta arbeta när en disk misslyckas.
* SnapRAID kan bara återställa data från ett begränsat antal diskfel.
  Med en säkerhetskopia kan du återställa från ett fullständigt
  fel på hela disk-arrayen.
* Endast filnamn, tidsstämplar, symboliska länkar och hårda länkar sparas.
  Behörigheter, ägarskap och utökade attribut sparas inte.


4 KOM IGåNG
===========

För att använda SnapRAID måste du först välja en disk i din disk-array
som ska dediceras till `parity`-information. Med en disk för paritet,
kommer du att kunna återställa från ett enda diskfel, liknande RAID5.

Om du vill återställa från fler diskfel, liknande RAID6,
måste du reservera ytterligare diskar för paritet. Varje ytterligare
paritetsdisk möjliggör återställning från ett diskfel till.

Som paritetsdiskar måste du välja de största diskarna i arrayen,
eftersom paritetsinformationen kan växa till storleken av den största
datadisken i arrayen.

Dessa diskar kommer att dediceras till att lagra `parity`-filerna.
Du bör inte lagra din data på dem.

Sedan måste du definiera de `data`-diskar som du vill skydda
med SnapRAID. Skyddet är mer effektivt om dessa diskar
innehåller data som sällan ändras. Av denna anledning är det bäst att
INTE inkludera Windows C:\-disken eller Unix /home, /var och /tmp
katalogerna.

Listan över filer sparas i `content`-filerna, som vanligtvis
lagras på data-, paritets- eller startdiskarna.
Denna fil innehåller detaljerna för din säkerhetskopia, inklusive alla
checksummor för att verifiera dess integritet.
`content`-filen lagras i flera kopior, och varje kopia måste
finnas på en annan disk för att säkerställa att, även vid flera
diskfel, minst en kopia är tillgänglig.

Anta till exempel att du bara är intresserad av en paritetsnivå
av skydd, och dina diskar finns på:

    /mnt/diskp <- vald disk för paritet
    /mnt/disk1 <- första disken att skydda
    /mnt/disk2 <- andra disken att skydda
    /mnt/disk3 <- tredje disken att skydda

Du måste skapa konfigurationsfilen /etc/snapraid.conf med
följande alternativ:

    parity /mnt/diskp/snapraid.parity
    content /var/snapraid/snapraid.content
    content /mnt/disk1/snapraid.content
    content /mnt/disk2/snapraid.content
    data d1 /mnt/disk1/
    data d2 /mnt/disk2/
    data d3 /mnt/disk3/

Om du använder Windows bör du använda Windows sökvägsformat, med
enhetsbeteckningar och omvända snedstreck istället för snedstreck.

    parity E:\snapraid.parity
    content C:\snapraid\snapraid.content
    content F:\array\snapraid.content
    content G:\array\snapraid.content
    data d1 F:\array\
    data d2 G:\array\
    data d3 H:\array\

Om du har många diskar och får slut på enhetsbeteckningar kan du montera
diskar direkt i undermappar. Se:

    https://www.google.com/search?q=Windows+mount+point

Vid denna punkt är du redo att köra kommandot `sync` för att bygga
paritetsinformationen.

    snapraid sync

Denna process kan ta flera timmar första gången, beroende på storleken
på datan som redan finns på diskarna. Om diskarna är tomma är
processen omedelbar.

Du kan stoppa det när som helst genom att trycka Ctrl+C, och vid nästa körning
återupptas det där det avbröts.

När detta kommando är klart är din data SÄKER.

Nu kan du börja använda din array som du vill och periodiskt
uppdatera paritetsinformationen genom att köra kommandot `sync`.

4.1 Skrubbning (Scrubbing)
--------------------------

För att periodiskt kontrollera data och paritet för fel kan du
köra kommandot `scrub`.

    snapraid scrub

Detta kommando jämför data i din array med den hash som beräknades
under kommandot `sync` för att verifiera integriteten.

Varje körning av kommandot kontrollerar ungefär 8% av arrayen, exklusive data
som redan skrubbats under de föregående 10 dagarna.
Du kan använda alternativet -p, --plan för att specificera en annan mängd
och alternativet -o, --older-than för att specificera en annan ålder i dagar.
Till exempel, för att kontrollera 5% av arrayen för block äldre än 20 dagar, använd:

    snapraid -p 5 -o 20 scrub

Om tysta eller input/output-fel hittas under processen,
markeras de motsvarande blocken som dåliga i `content`-filen
och listas i kommandot `status`.

    snapraid status

För att fixa dem kan du använda kommandot `fix`, filtrera efter dåliga block med
alternativet -e, --filter-error:

    snapraid -e fix

Vid nästa `scrub` kommer felen att försvinna från `status`-rapporten
om de verkligen är fixade. För att göra det snabbare kan du använda -p bad för att skrubba
endast block markerade som dåliga.

    snapraid -p bad scrub

Att köra `scrub` på en osynkad array kan rapportera fel orsakade av
borttagna eller modifierade filer. Dessa fel rapporteras i `scrub`-
utdata, men de relaterade blocken markeras inte som dåliga.

4.2 Poolning
------------

Obs: Poolningsfunktionen som beskrivs nedan har ersatts av verktyget
mergerfs, som nu är det rekommenderade alternativet för Linux-användare i
SnapRAID-communityt. Mergefs ger ett mer flexibelt och effektivt
sätt att poola flera enheter till en enda enhetlig monteringspunkt,
vilket möjliggör sömlös åtkomst till filer över din array utan att förlita sig
på symboliska länkar. Det integreras väl med SnapRAID för paritetsskydd
och används ofta i installationer som OpenMediaVault (OMV)
eller anpassade NAS-konfigurationer.

För att visa alla filer i din array i samma katalogträd,
kan du aktivera funktionen `pooling`. Den skapar en skrivskyddad virtuell
vy av alla filer i din array med hjälp av symboliska länkar.

Du kan konfigurera `pooling`-katalogen i konfigurationsfilen med:

    pool /pool

eller, om du använder Windows, med:

    pool C:\pool

och kör sedan kommandot `pool` för att skapa eller uppdatera den virtuella vyn.

    snapraid pool

Om du använder en Unix-plattform och vill dela denna katalog
över nätverket till antingen Windows- eller Unix-maskiner, bör du lägga till
följande alternativ till din /etc/samba/smb.conf:

    # I den globala sektionen av smb.conf
    unix extensions = no

    # I delningssektionen av smb.conf
    [pool]
    comment = Pool
    path = /pool
    read only = yes
    guest ok = yes
    wide links = yes
    follow symlinks = yes

I Windows kräver delning av symboliska länkar över ett nätverk att klienter
löser dem på distans. För att aktivera detta måste du, förutom att dela pool-katalogen,
även dela alla diskar oberoende, med hjälp av de disk-namn
som definieras i konfigurationsfilen som delningspunkter. Du måste också specificera
i alternativet `share` i konfigurationsfilen den Windows UNC-sökväg som
fjärrklienter behöver använda för att få åtkomst till dessa delade diskar.

Till exempel, om du arbetar från en server som heter `darkstar`, kan du använda
alternativen:

    data d1 F:\array\
    data d2 G:\array\
    data d3 H:\array\
    pool C:\pool
    share \\darkstar

och dela följande kataloger över nätverket:

    \\darkstar\pool -> C:\pool
    \\darkstar\d1 -> F:\array
    \\darkstar\d2 -> G:\array
    \\darkstar\d3 -> H:\array

för att tillåta fjärrklienter att få åtkomst till alla filer på \\darkstar\pool.

Du kan också behöva konfigurera fjärrklienter för att möjliggöra åtkomst till
fjärrsymboliska länkar med kommandot:

    fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1

4.3 Ångra radering (Undeleting)
-------------------------------

SnapRAID fungerar mer som ett säkerhetskopieringsprogram än ett RAID-system, och det
kan användas för att återställa eller ångra radering av filer till deras tidigare tillstånd
med hjälp av alternativet -f, --filter:

    snapraid fix -f FIL

eller för en katalog:

    snapraid fix -f KATALOG/

Du kan också använda det för att återställa endast oavsiktligt raderade filer inuti
en katalog med hjälp av alternativet -m, --filter-missing, som återställer
endast saknade filer, och lämnar alla andra orörda.

    snapraid fix -m -f KATALOG/

Eller för att återställa alla raderade filer på alla enheter med:

    snapraid fix -m

4.4 Återställning
-----------------

Det värsta har hänt, och du har förlorat en eller flera diskar!

FÅ INTE PANIK! Du kommer att kunna återställa dem!

Det första du måste göra är att undvika ytterligare ändringar i din disk-array.
Inaktivera alla fjärranslutningar till den och alla schemalagda processer, inklusive
alla schemalagda SnapRAID nattliga sync- eller scrub-körningar.

Fortsätt sedan med följande steg.

---- 4.4.1 STEG 1 -> Omkonfigurera ----
Du behöver lite utrymme för att återställa, helst på ytterligare
reservdiskar, men en extern USB-disk eller fjärrdisk räcker.

Ändra SnapRAID-konfigurationsfilen för att få alternativet `data` eller `parity`
för den felaktiga disken att peka på en plats med tillräckligt tomt
utrymme för att återställa filerna.

Om till exempel disk `d1` har misslyckats, ändra från:

    data d1 /mnt/disk1/

till:

    data d1 /mnt/new_spare_disk/

Om disken som ska återställas är en paritetsdisk, uppdatera det lämpliga `parity`-
alternativet.
Om du har flera felaktiga diskar, uppdatera alla deras konfigurationsalternativ.

---- 4.4.2 STEG 2 -> Fixa ----
Kör kommandot fix och lagra loggen i en extern fil med:

    snapraid -d NAMN -l fix.log fix

Där NAMN är namnet på disken, till exempel `d1` i vårt tidigare exempel.
Om disken som ska återställas är en paritetsdisk, använd namnen `parity`, `2-parity`,
etc.
Om du har flera felaktiga diskar, använd flera -d-alternativ för att specificera alla
av dem.

Detta kommando kommer att ta lång tid.

Se till att du har några gigabyte ledigt för att lagra fix.log-filen.
Kör den från en disk med tillräckligt med ledigt utrymme.

Nu har du återställt allt som är återställningsbart. Om vissa filer är delvis
eller helt icke-återställningsbara, kommer de att döpas om genom att lägga till tillägget
`.unrecoverable`.

Du kan hitta en detaljerad lista över alla icke-återställningsbara block i fix.log-filen
genom att kontrollera alla rader som börjar med `unrecoverable:`.

Om du inte är nöjd med återställningen kan du försöka igen hur många
gånger du vill.

Om du till exempel har tagit bort filer från arrayen efter den senaste
`sync`, kan detta leda till att vissa filer inte återställs.
I detta fall kan du försöka igen `fix` med alternativet -i, --import,
specificera var dessa filer nu finns för att inkludera dem igen i
återställningsprocessen.

Om du är nöjd med återställningen kan du fortsätta,
men notera att efter synkronisering kan du inte försöka igen kommandot `fix`
längre!

---- 4.4.3 STEG 3 -> Kontrollera ----
Som en försiktighetsåtgärd kan du nu köra ett `check`-kommando för att säkerställa att
allt är korrekt på den återställda disken.

    snapraid -d NAMN -a check

Där NAMN är namnet på disken, till exempel `d1` i vårt tidigare exempel.

Alternativen -d och -a talar om för SnapRAID att endast kontrollera den specificerade disken
och ignorera all paritetsdata.

Detta kommando kommer att ta lång tid, men om du inte är alltför försiktig,
kan du hoppa över det.

---- 4.4.4 STEG 4 -> Synkronisera ----
Kör kommandot `sync` för att synkronisera arrayen igen med den nya disken.

    snapraid sync

Om allt är återställt är detta kommando omedelbart.


5 KOMMANDON
===========

SnapRAID tillhandahåller några enkla kommandon som låter dig:

* Skriva ut statusen för arrayen -> `status`
* Kontrollera diskarna -> `smart`, `probe`, `up`, `down`
* Göra en säkerhetskopia/ögonblicksbild -> `sync`
* Periodiskt kontrollera data -> `scrub`
* Återställa den senaste säkerhetskopian/ögonblicksbilden -> `fix`.

Kommandon måste skrivas med gemener.

5.1 status
----------

Skriver ut en sammanfattning av tillståndet för disk-arrayen.

Det inkluderar information om paritetsfragmentering, hur gamla
blocken är utan kontroll, och alla registrerade tysta
fel som påträffats under skrubbning.

Informationen som presenteras hänvisar till den senaste tidpunkten du
körde `sync`. Senare modifieringar beaktas inte.

Om dåliga block upptäcktes, listas deras blocknummer.
För att fixa dem kan du använda kommandot `fix -e`.

Det visar också ett diagram som representerar den senaste tidpunkten då varje block
skrubbades eller synkroniserades. Skrubbade block visas med `*`,
block synkroniserade men ännu inte skrubbade med `o`.

Inget ändras.

5.2 smart
---------

Skriver ut en SMART-rapport över alla diskar i systemet.

Det inkluderar en uppskattning av sannolikheten för fel under det kommande
året, vilket gör att du kan planera underhållsersättningar av diskar som visar
misstänkta attribut.

Denna sannolikhetsuppskattning erhålls genom att korrelera SMART-attributen
för diskarna med Backblaze-data som finns tillgänglig på:

    https://www.backblaze.com/hard-drive-test-data.html

Om SMART rapporterar att en disk håller på att misslyckas, skrivs `FAIL` eller `PREFAIL` ut
för den disken, och SnapRAID returnerar med ett fel.
I detta fall rekommenderas omedelbar ersättning av disken starkt.

Andra möjliga statussträngar är:
    logfail - Tidigare var vissa attribut lägre än
        tröskelvärdet.
    logerr - Enhetens fellogg innehåller fel.
    selferr - Enhetens självtestlogg innehåller fel.

Om alternativet -v, --verbose specificeras, tillhandahålls en djupare statistisk analys.
Denna analys kan hjälpa dig att bestämma om du behöver mer
eller mindre paritet.

Detta kommando använder verktyget `smartctl` och är ekvivalent med att köra
`smartctl -a` på alla enheter.

Om dina enheter inte upptäcks automatiskt korrekt kan du specificera
ett anpassat kommando med hjälp av alternativet `smartctl` i konfigurations-
filen.

Inget ändras.

5.3 probe
---------

Skriver ut STRÖM-tillståndet för alla diskar i systemet.

`Standby` betyder att disken inte snurrar. `Active` betyder
att disken snurrar.

Detta kommando använder verktyget `smartctl` och är ekvivalent med att köra
`smartctl -n standby -i` på alla enheter.

Om dina enheter inte upptäcks automatiskt korrekt kan du specificera
ett anpassat kommando med hjälp av alternativet `smartctl` i konfigurations-
filen.

Inget ändras.

5.4 up
------

Snurrar upp alla diskar i arrayen.

Du kan snurra upp endast specifika diskar med hjälp av alternativet -d, --filter-disk.

Att snurra upp alla diskar samtidigt kräver mycket ström.
Se till att din strömförsörjning kan klara det.

Inget ändras.

5.5 down
--------

Snurrar ner alla diskar i arrayen.

Detta kommando använder verktyget `smartctl` och är ekvivalent med att köra
`smartctl -s standby,now` på alla enheter.

Du kan snurra ner endast specifika diskar med hjälp av alternativet -d, --filter-disk
alternativet.

För att automatiskt snurra ner vid fel kan du använda alternativet -s, --spin-down-on-error
med alla andra kommandon, vilket är ekvivalent med att köra `down` manuellt
när ett fel inträffar.

Inget ändras.

5.6 diff
--------

Listar alla filer som modifierats sedan den senaste `sync` och som behöver få
sin paritetsdata omberäknad.

Detta kommando kontrollerar inte filens data, utan endast filens tidsstämpel,
storlek och inode.

Efter att ha listat alla ändrade filer presenteras en sammanfattning av ändringarna,
grupperade efter:
    equal - Filer oförändrade från tidigare.
    added - Filer tillagda som inte fanns tidigare.
    removed - Filer borttagna.
    updated - Filer med en annan storlek eller tidsstämpel, vilket innebär att de
        modifierades.
    moved - Filer flyttade till en annan katalog på samma disk.
        De identifieras genom att ha samma namn, storlek, tidsstämpel
        och inode, men en annan katalog.
    copied - Filer som kopierats på samma eller en annan disk där
        originalfilen fortfarande finns kvar.
        De identifieras genom att ha samma namn, storlek och
        tidsstämpel.
        Om tidsstämpeln för undersekunder är noll måste hela sökvägen
        matcha för att identifieras, inte bara namnet.
    relocated - Filer som flyttats på samma eller en annan disk där
        originalet har försvunnit.
        De identifieras genom att ha samma namn, storlek och
        tidsstämpel.
        Om tidsstämpeln för undersekunder är noll måste hela sökvägen
        matcha för att identifieras.
        Till skillnad från 'moved' filer på samma disk har omlokaliserade
        filer en annan inode.
    restored - Filer med en annan inode men matchande katalog, namn,
        storlek och tidsstämpel.
        Dessa är vanligtvis filer som återställts efter att ha raderats.

Om en `sync` krävs är processens returkod 2, istället för standard 0.
Returkoden 1 används för ett generiskt feltillstånd.

Inget ändras.

5.7 sync
--------

Uppdaterar paritetsinformationen. Alla modifierade filer
i disk-arrayen läses, och motsvarande paritets-
data uppdateras.

Du kan stoppa denna process när som helst genom att trycka Ctrl+C,
utan att förlora det arbete som redan utförts.
Vid nästa körning kommer `sync`-processen att återupptas där
den avbröts.

Om tysta eller input/output-fel hittas under processen,
markeras de motsvarande blocken som dåliga.

Filer identifieras med sökväg och/eller inode och kontrolleras med
storlek och tidsstämpel.
Om filstorleken eller tidsstämpeln skiljer sig åt, beräknas paritetsdata
om för hela filen.
Om filen flyttas eller döps om på samma disk, samtidigt som
samma inode behålls, beräknas inte pariteten om.
Om filen flyttas till en annan disk, beräknas pariteten om,
men den tidigare beräknade hash-informationen behålls.

`content`- och `parity`-filerna modifieras vid behov.
Filerna i arrayen modifieras INTE.

5.8 scrub
---------

Skrubbar arrayen och söker efter tysta eller input/output-fel i data-
och paritetsdiskar.

Varje anrop kontrollerar ungefär 8% av arrayen, exklusive
data som redan skrubbats under de senaste 10 dagarna.
Detta innebär att skrubbning en gång i veckan säkerställer att varje bit data kontrolleras
minst en gång var tredje månad.

Du kan definiera en annan skrubbplan eller mängd med hjälp av alternativet -p, --plan
som accepterar:
bad - Skrubbar block markerade som dåliga.
new - Skrubbar nyligen synkroniserade block som ännu inte skrubbats.
full - Skrubbar allt.
0-100 - Skrubbar den specificerade procentandelen av block.

Om du specificerar en procentsats kan du också använda alternativet -o, --older-than
för att definiera hur gammalt blocket ska vara.
De äldsta blocken skrubbas först, vilket säkerställer en optimal kontroll.
Om du bara vill skrubba de nyligen synkroniserade blocken som ännu inte skrubbats,
använd alternativet `-p new`.

För att få detaljer om skrubbstatusen, använd kommandot `status`.

För alla tysta eller input/output-fel som hittas, markeras de motsvarande blocken
som dåliga i `content`-filen.
Dessa dåliga block listas i `status` och kan fixas med `fix -e`.
Efter fixningen, vid nästa skrubb, kommer de att kontrolleras igen, och om de befinns
korrigerade, tas det dåliga märket bort.
För att skrubba endast de dåliga blocken kan du använda kommandot `scrub -p bad`.

Det rekommenderas att köra `scrub` endast på en synkroniserad array för att undvika
rapporterade fel orsakade av osynkad data. Dessa fel känns igen
som att de inte är tysta fel, och blocken markeras inte som dåliga,
men sådana fel rapporteras i kommandots utdata.

`content`-filen modifieras för att uppdatera tiden för den senaste kontrollen
för varje block och för att markera dåliga block.
`parity`-filerna modifieras INTE.
Filerna i arrayen modifieras INTE.

5.9 fix
-------

Fixar alla filer och paritetsdata.

Alla filer och paritetsdata jämförs med ögonblicksbilds-
tillståndet som sparades i den senaste `sync`.
Om en skillnad hittas, återställs den till det lagrade ögonblicksbildstillståndet.

VARNING! Kommandot `fix` skiljer inte mellan fel och
avsiktliga modifieringar. Det återställer ovillkorligen filtillståndet
till den senaste `sync`.

Om inget annat alternativ specificeras, behandlas hela arrayen.
Använd filteralternativen för att välja en delmängd av filer eller diskar att arbeta med.

För att fixa endast blocken markerade som dåliga under `sync` och `scrub`,
använd alternativet -e, --filter-error.
Till skillnad från andra filteralternativ tillämpar detta fixar endast på filer som är
oförändrade sedan den senaste `sync`.

SnapRAID döper om alla filer som inte kan fixas genom att lägga till tillägget
`.unrecoverable`.

Innan fixningen skannas hela arrayen för att hitta alla filer som flyttats
sedan den senaste `sync`-operationen.
Dessa filer identifieras av deras tidsstämpel, ignorera deras namn
och katalog, och används i återställningsprocessen vid behov.
Om du flyttade några av dem utanför arrayen kan du använda alternativet -i, --import
för att specificera ytterligare kataloger att skanna.

Filer identifieras endast med sökväg, inte med inode.

`content`-filen modifieras INTE.
`parity`-filerna modifieras vid behov.
Filerna i arrayen modifieras vid behov.

5.10 check
----------

Verifierar alla filer och paritetsdata.

Det fungerar som `fix`, men det simulerar endast en återställning och inga ändringar
skrivs till arrayen.

Detta kommando är i första hand avsett för manuell verifiering,
som efter en återställningsprocess eller under andra speciella förhållanden.
För periodiska och schemalagda kontroller, använd `scrub`.

Om du använder alternativet -a, --audit-only, kontrolleras endast fil-
datan, och paritetsdatan ignoreras för en
snabbare körning.

Filer identifieras endast med sökväg, inte med inode.

Inget ändras.

5.11 list
---------

Listar alla filer som finns i arrayen vid tidpunkten för den
senaste `sync`.

Med -v eller --verbose visas även undertiden.

Inget ändras.

5.12 dup
--------

Listar alla dubblettfiler. Två filer antas vara lika om deras
hashar matchar. Filens data läses inte; endast de
förberäknade hasharna används.

Inget ändras.

5.13 pool
---------

Skapar eller uppdaterar en virtuell vy av alla
filer i din disk-array i `pooling`-katalogen.

Filerna kopieras inte utan länkas med hjälp av
symboliska länkar.

Vid uppdatering raderas alla befintliga symboliska länkar och tomma
underkataloger och ersätts med den nya
vyn av arrayen. Alla andra vanliga filer lämnas kvar.

Inget ändras utanför pool-katalogen.

5.14 devices
------------

Skriver ut de lågnivåenheter som används av arrayen.

Detta kommando visar enhetsassociationerna i arrayen
och är främst avsett som ett skriptgränssnitt.

De två första kolumnerna är lågnivåenhetens ID och sökväg.
De nästa två kolumnerna är högnivåenhetens ID och sökväg.
Den sista kolumnen är diskens namn i arrayen.

I de flesta fall har du en lågnivåenhet för varje disk i
arrayen, men i vissa mer komplexa konfigurationer kan du ha flera
lågnivåenheter som används av en enda disk i arrayen.

Inget ändras.

5.15 touch
----------

Anger en godtycklig undertidsstämpel för alla filer
som har den satt till noll.

Detta förbättrar SnapRAIDs förmåga att känna igen flyttade
och kopierade filer, eftersom det gör tidsstämpeln nästan unik,
vilket minskar möjliga dubbletter.

Mer specifikt, om undertidsstämpeln inte är noll,
identifieras en flyttad eller kopierad fil som sådan om den matchar
namn, storlek och tidsstämpel. Om undertidsstämpeln
är noll, betraktas den som en kopia endast om hela sökvägen,
storlek och tidsstämpel alla matchar.

Tidsstämpeln med sekundprecision modifieras inte,
så alla datum och tider för dina filer bevaras.

5.16 rehash
-----------

Schemalägger en omhashning av hela arrayen.

Detta kommando ändrar den hash-typ som används, vanligtvis vid uppgradering
från ett 32-bitars system till ett 64-bitars system, för att byta från
MurmurHash3 till den snabbare SpookyHash.

Om du redan använder den optimala hashen, gör detta kommando
ingenting och informerar dig om att ingen åtgärd behövs.

Omhashningen utförs inte omedelbart utan sker
progressivt under `sync` och `scrub`.

Du kan kontrollera omhashningstillståndet med hjälp av `status`.

Under omhashningen bibehåller SnapRAID full funktionalitet,
med det enda undantaget att `dup` inte kan upptäcka dubbletter
med hjälp av en annan hash.

5.17 locate
-----------

Lokaliserar filer som lagras på paritetsdiskarna. För varje matchande fil
skrivs dess plats i paritetsfilen och antalet fragment den upptar ut.

Du kan använda alternativet -t, --tail för att begränsa åtgärden till filer som
upptar den angivna slutdelen (tail) av pariteten.

Om du vill omallokera dessa filer kan du använda alternativet
-W, --force-realloc-tail.
Var medveten om att sådana filer inte skyddas av paritet under
omallokeringsprocessen.


6 ALTERNATIV
============

SnapRAID tillhandahåller följande alternativ:

    -c, --conf CONFIG
        Väljer den konfigurationsfil som ska användas. Om den inte specificeras, i Unix
        används filen `/usr/local/etc/snapraid.conf` om den finns,
        annars `/etc/snapraid.conf`.
        I Windows används filen `snapraid.conf` i samma
        katalog som `snapraid.exe`.

    -f, --filter PATTERN
        Filtrerar filerna att behandla i `check` och `fix`.
        Endast filerna som matchar det specificerade mönstret behandlas.
        Detta alternativ kan användas flera gånger.
        Se avsnittet MÖNSTER för mer information om
        mönsterspecifikationer.
        I Unix, se till att globbing-tecken citeras om de används.
        Detta alternativ kan endast användas med `check` och `fix`.
        Det kan inte användas med `sync` och `scrub`, eftersom de alltid
        behandlar hela arrayen.

    -d, --filter-disk NAME
        Filtrerar diskarna att behandla i `check`, `fix`, `up` och `down`.
        Du måste specificera ett disk-namn som definieras i konfigurations-
        filen.
        Du kan också specificera paritetsdiskar med namnen: `parity`, `2-parity`,
        `3-parity`, etc., för att begränsa operationer till en specifik paritetsdisk.
        Om du kombinerar flera --filter, --filter-disk och --filter-missing alternativ,
        väljs endast filer som matchar alla filter.
        Detta alternativ kan användas flera gånger.
        Detta alternativ kan endast användas med `check`, `fix`, `up` och `down`.
        Det kan inte användas med `sync` och `scrub`, eftersom de alltid
        behandlar hela arrayen.

    -m, --filter-missing
        Filtrerar filerna att behandla i `check` och `fix`.
        Endast filerna som saknas eller har raderats från arrayen behandlas.
        När det används med `fix`, fungerar detta som ett `undelete`-kommando.
        Om du kombinerar flera --filter, --filter-disk och --filter-missing alternativ,
        väljs endast filer som matchar alla filter.
        Detta alternativ kan endast användas med `check` och `fix`.
        Det kan inte användas med `sync` och `scrub`, eftersom de alltid
        behandlar hela arrayen.

    -e, --filter-error
        Behandlar filerna med fel i `check` och `fix`.
        Det behandlar endast filer som har block markerade med tysta
        eller input/output-fel under `sync` och `scrub`, som listas i `status`.
        Detta alternativ kan endast användas med `check` och `fix`.

    -p, --plan PERC|bad|new|full
        Väljer skrubbplanen. Om PERC är ett numeriskt värde från 0 till 100,
        tolkas det som procentandelen av block som ska skrubbas.
        Istället för en procentsats kan du specificera en plan:
        `bad` skrubbar dåliga block, `new` skrubbar block som ännu inte skrubbats,
        och `full` skrubbar allt.
        Detta alternativ kan endast användas med `scrub`.

    -o, --older-than DAYS
        Väljer den äldsta delen av arrayen att behandla i `scrub`.
        DAYS är den minsta åldern i dagar för ett block att skrubbas;
        standard är 10.
        Block markerade som dåliga skrubbas alltid oavsett detta alternativ.
        Detta alternativ kan endast användas med `scrub`.

    -a, --audit-only
        I `check`, verifierar hashen av filerna utan
        att kontrollera paritetsdata.
        Om du bara är intresserad av att kontrollera filens data, kan detta
        alternativ avsevärt påskynda kontrollprocessen.
        Detta alternativ kan endast användas med `check`.

    -h, --pre-hash
        I `sync`, kör en preliminär hash-fas av all ny data
        för ytterligare verifiering innan paritetsberäkningen.
        Vanligtvis görs ingen preliminär hashning i `sync`, och den nya
        datan hashberäknas precis innan paritetsberäkningen när den läses
        för första gången.
        Denna process sker när systemet är under
        tung belastning, med alla diskar snurrande och en upptagen CPU.
        Detta är ett extremt tillstånd för maskinen, och om den har ett
        latent hårdvaruproblem, kan tysta fel gå obemärkt förbi
        eftersom datan ännu inte har hashberäknats.
        För att undvika denna risk kan du aktivera `pre-hash`-läget för att få
        all data läst två gånger för att säkerställa dess integritet.
        Detta alternativ verifierar också filer som flyttats inom arrayen
        för att säkerställa att flyttoperationen lyckades och, om nödvändigt,
        låter dig köra en fix-operation innan du fortsätter.
        Detta alternativ kan endast användas med `sync`.

    -i, --import DIR
        Importerar från den specificerade katalogen alla filer som raderats
        från arrayen efter den senaste `sync`.
        Om du fortfarande har sådana filer, kan de användas av `check`
        och `fix` för att förbättra återställningsprocessen.
        Filerna läses, inklusive i underkataloger, och identifieras
        oavsett deras namn.
        Detta alternativ kan endast användas med `check` och `fix`.

    -s, --spin-down-on-error
        Vid något fel, snurrar ner alla hanterade diskar innan den avslutas med
        en statuskod som inte är noll. Detta förhindrar att enheterna
        förblir aktiva och snurrar efter en avbruten operation,
        vilket hjälper till att undvika onödig värmeuppbyggnad och ström-
        förbrukning. Använd detta alternativ för att säkerställa att diskar stoppas säkert
        även när ett kommando misslyckas.

    -w, --bw-limit RATE
        Tillämpar en global bandbreddsbegränsning för alla diskar. RATE är
        antalet byte per sekund. Du kan specificera en multiplikator
        som K, M eller G (t.ex. --bw-limit 1G).

    -t, --tail STORLEK
        Begränsa fillistan till de som inte använder mer än den angivna
        slutstorleken på paritetsdiskarna.
        Du kan använda multiplikatorer som K, M, G eller T (t.ex. --tail 1G).
        Detta alternativ är endast giltigt när det används tillsammans med
        kommandot `locate`.

    -A, --stats
        Aktiverar en utökad statusvy som visar ytterligare information.
        Skärmen visar två diagram:
        Det första diagrammet visar antalet buffrade strippar för varje
        disk, tillsammans med filsökvägen för filen som för närvarande används
        på den disken. Vanligtvis kommer den långsammaste disken att ha
        ingen buffert tillgänglig, vilket bestämmer den maximalt uppnåeliga
        bandbredden.
        Det andra diagrammet visar procentandelen tid som spenderats i väntan
        under de senaste 100 sekunderna. Den långsammaste disken förväntas
        orsaka större delen av väntetiden, medan andra diskar bör ha
        liten eller ingen väntetid eftersom de kan använda sina buffrade strippar.
        Detta diagram visar också den tid som spenderats i väntan på hash-
        beräkningar och RAID-beräkningar.
        Alla beräkningar körs parallellt med diskoperationer.
        Därför, så länge det finns mätbar väntetid för minst en disk,
        indikerar det att CPU:n är snabb nog att
        hålla jämna steg med arbetsbelastningen.

    -Z, --force-zero
        Tvingar den osäkra operationen att synkronisera en fil med noll
        storlek som tidigare var icke-noll.
        Om SnapRAID upptäcker ett sådant tillstånd, stoppar det att fortsätta
        om du inte specificerar detta alternativ.
        Detta gör att du enkelt kan upptäcka när, efter en systemkrasch,
        vissa filer som användes trunkerades.
        Detta är ett möjligt tillstånd i Linux med filsystemen ext3/ext4.
        Detta alternativ kan endast användas med `sync`.

    -E, --force-empty
        Tvingar den osäkra operationen att synkronisera en disk där alla
        ursprungliga filer saknas.
        Om SnapRAID upptäcker att alla filer som ursprungligen fanns
        på disken saknas eller har skrivits om, stoppar det att fortsätta
        om du inte specificerar detta alternativ.
        Detta gör att du enkelt kan upptäcka när ett datafilsystem inte är
        monterat.
        Detta alternativ kan endast användas med `sync`.

    -U, --force-uuid
        Tvingar den osäkra operationen att synkronisera, kontrollera och fixa
        med diskar som har ändrat sin UUID.
        Om SnapRAID upptäcker att vissa diskar har ändrat UUID,
        stoppar det att fortsätta om du inte specificerar detta alternativ.
        Detta gör att du kan upptäcka när dina diskar är monterade på fel
        monteringspunkter.
        Det är dock tillåtet att ha en enda UUID-ändring med
        enkel paritet, och fler med multipel paritet, eftersom detta är
        det normala fallet när man byter ut diskar efter en återställning.
        Detta alternativ kan endast användas med `sync`, `check` eller
        `fix`.

    -D, --force-device
        Tvingar den osäkra operationen att fixa med otillgängliga diskar
        eller med diskar på samma fysiska enhet.
        Till exempel, om du förlorade två datadisker och har en reservdisk för att återställa
        endast den första, kan du ignorera den andra otillgängliga disken.
        Eller, om du vill återställa en disk i det lediga utrymme som finns kvar på en
        redan använd disk, dela samma fysiska enhet.
        Detta alternativ kan endast användas med `fix`.

    -N, --force-nocopy
        I `sync`, `check` och `fix`, inaktiverar heuristiken för kopieringsdetektering.
        Utan detta alternativ antar SnapRAID att filer med samma
        attribut, såsom namn, storlek och tidsstämpel, är kopior med
        samma data.
        Detta möjliggör identifiering av kopierade eller flyttade filer från en disk
        till en annan och återanvänder den redan beräknade hash-informationen
        för att upptäcka tysta fel eller för att återställa saknade filer.
        I vissa sällsynta fall kan detta beteende leda till falska positiva
        eller en långsam process på grund av många hash-verifieringar, och detta
        alternativ låter dig lösa sådana problem.
        Detta alternativ kan endast användas med `sync`, `check` och `fix`.

    -F, --force-full
        I `sync`, tvingar en fullständig omberäkning av pariteten.
        Detta alternativ kan användas när du lägger till en ny paritetsnivå eller om
        du återgick till en gammal content-fil med mer aktuell paritetsdata.
        Istället för att återskapa pariteten från grunden låter detta dig
        återanvända hasharna som finns i content-filen för att validera data
        och bibehålla dataskyddet under `sync`-processen med hjälp av
        den befintliga paritetsdatan.
        Detta alternativ kan endast användas med `sync`.

    -R, --force-realloc
        I `sync`, tvingar en fullständig omallokering av filer och ombyggnad av pariteten.
        Detta alternativ kan användas för att helt omallokera alla filer,
        ta bort fragmentering, samtidigt som hasharna som finns i content-
        filen återanvänds för att validera data.
        Detta alternativ kan endast användas med `sync`.
        VARNING! Detta alternativ är endast för experter, och det rekommenderas
        starkt att inte använda det.
        Du HAR INGET dataskydd under `sync`-operationen.

    -W, --force-realloc-tail STORLEK
        Fungerar som -R, --force-realloc, men begränsat till den angivna
        slutdelen (de sista STORLEK byten) av varje paritetsfil.
        Den tvingar omallokering (flytt) av alla filfragment/block som för
        närvarande lagras i den slutsektionen, vilket gör att de kan placeras
        var som helst i paritetsfilen/filerna där ledigt utrymme finns
        (inklusive befintliga hål).
        Huvudsyftet med detta alternativ är att minska paritetsfilens storlek
        på disken.
        Om omallokeringen lyckas rensa hela slutsektionen (inga block är kvar
        som använder den), trunkeras paritetsfilen och det oanvända
        slututrymmet återtas.
        Du kan använda multiplikatorer som K, M, G eller T (t.ex.
        --force-realloc-tail 1G).
        Du kan använda locate -t, --tail för att i förväg veta vilka filer
        som påverkas.
        VARNING!
        Detta alternativ är endast för experter, och det rekommenderas
        starkt att inte använda det.
        Du har INGET dataskydd under `sync`-åtgärden för de berörda filerna.

    -l, --log FILE
        Skriver en detaljerad logg till den specificerade filen.
        Om detta alternativ inte specificeras, skrivs oväntade fel ut
        på skärmen, vilket potentiellt kan leda till överdriven utdata i händelse av
        många fel. När -l, --log specificeras, skrivs endast
        fatala fel som får SnapRAID att stoppa ut
        på skärmen.
        Om sökvägen börjar med `>>`, öppnas filen
        i tilläggsläge. Förekomster av `%D` och `%T` i namnet ersätts
        med datum och tid i formatet YYYYMMDD respektive
        HHMMSS. I Windows batch-filer måste du dubblera
        `%`-tecknet, t.ex. result-%%D.log. För att använda `>>` måste du
        omsluta namnet i citattecken, t.ex. `">>result.log"`.
        För att skicka ut loggen till standardutdata eller standardfel,
        kan du använda `">&1"` respektive `">&2"`.
        Se filen snapraid_log.txt eller man-sidan för beskrivningar av logg-taggar.

    -L, --error-limit NUMBER
        Anger en ny felgräns innan körningen stoppas.
        Som standard stoppar SnapRAID om det stöter på mer än 100
        input/output-fel, vilket indikerar att en disk troligen håller på att misslyckas.
        Detta alternativ påverkar `sync` och `scrub`, som tillåts
        att fortsätta efter den första uppsättningen diskfel för att försöka
        slutföra sina operationer.
        Däremot stoppar `check` och `fix` alltid vid det första felet.

    -S, --start BLKSTART
        Börjar behandlingen från det specificerade
        blocknumret. Detta kan vara användbart för att försöka igen att kontrollera
        eller fixa specifika block i händelse av en skadad disk.
        Detta alternativ är främst för avancerad manuell återställning.

    -B, --count BLKCOUNT
        Behandlar endast det specificerade antalet block.
        Detta alternativ är främst för avancerad manuell återställning.

    -C, --gen-conf CONTENT
        Genererar en dummy-konfigurationsfil från en befintlig
        content-fil.
        Konfigurationsfilen skrivs till standardutdata
        och skriver inte över en befintlig fil.
        Denna konfigurationsfil innehåller också den information
        som behövs för att rekonstruera diskmonteringspunkterna om du
        förlorar hela systemet.

    -v, --verbose
        Skriver ut mer information på skärmen.
        Om det specificeras en gång, skrivs exkluderade filer
        och ytterligare statistik ut.
        Detta alternativ har ingen effekt på loggfilerna.

    -q, --quiet
        Skriver ut mindre information på skärmen.
        Om det specificeras en gång, tas förloppsindikatorn bort; två gånger,
        de pågående operationerna; tre gånger, informations-
        meddelandena; fyra gånger, statusmeddelandena.
        Fatala fel skrivs alltid ut på skärmen.
        Detta alternativ har ingen effekt på loggfilerna.

    -H, --help
        Skriver ut en kort hjälpskärm.

    -V, --version
        Skriver ut programversionen.


7 KONFIGURATION
===============

SnapRAID kräver en konfigurationsfil för att veta var din disk-array
finns och var paritetsinformationen ska lagras.

I Unix används filen `/usr/local/etc/snapraid.conf` om den finns,
annars `/etc/snapraid.conf`.
I Windows används filen `snapraid.conf` i samma
katalog som `snapraid.exe`.

Den måste innehålla följande alternativ (skiftlägeskänsligt):

7.1 parity FIL [,FIL] ...
-------------------------

Definierar de filer som ska användas för att lagra paritetsinformationen.
Pariteten möjliggör skydd från ett enda disk-
fel, liknande RAID5.

Du kan specificera flera filer, som måste finnas på olika diskar.
När en fil inte kan växa mer, används nästa fil.
Det totala tillgängliga utrymmet måste vara minst lika stort som den största datadisken i
arrayen.

Du kan lägga till ytterligare paritetsfiler senare, men du
kan inte ändra ordning på eller ta bort dem.

Att hålla paritetsdiskarna reserverade för paritet säkerställer att
de inte blir fragmenterade, vilket förbättrar prestandan.

I Windows lämnas 256 MB oanvänt på varje disk för att undvika
varningen om fulla diskar.

Detta alternativ är obligatoriskt och kan endast användas en gång.

7.2 (2,3,4,5,6)-parity FIL [,FIL] ...
-------------------------------------

Definierar de filer som ska användas för att lagra extra paritetsinformation.

För varje paritetsnivå som specificeras aktiveras en ytterligare skyddsnivå:

* 2-parity möjliggör RAID6 dubbel paritet.
* 3-parity möjliggör trippel paritet.
* 4-parity möjliggör fyrdubbel (fyra) paritet.
* 5-parity möjliggör penta (fem) paritet.
* 6-parity möjliggör hexa (sex) paritet.

Varje paritetsnivå kräver närvaro av alla föregående paritets-
nivåer.

Samma överväganden som för alternativet `parity` gäller.

Dessa alternativ är valfria och kan endast användas en gång.

7.3 z-parity FIL [,FIL] ...
---------------------------

Definierar en alternativ fil och ett format för att lagra trippel paritet.

Detta alternativ är ett alternativ till `3-parity`, främst avsett för
lågpresterande processorer som ARM eller AMD Phenom, Athlon och Opteron som inte
stöder SSSE3-instruktionsuppsättningen. I sådana fall ger det
bättre prestanda.

Detta format liknar, men är snabbare än, det som används av ZFS RAIDZ3.
Liksom ZFS fungerar det inte utöver trippel paritet.

När du använder `3-parity` kommer du att varnas om det rekommenderas att använda
formatet `z-parity` för prestandaförbättring.

Det är möjligt att konvertera från ett format till ett annat genom att justera
konfigurationsfilen med önskad z-parity eller 3-parity fil
och använda `fix` för att återskapa den.

7.4 content FIL
---------------

Definierar den fil som ska användas för att lagra listan och checksummorna för alla
filer som finns i din disk-array.

Den kan placeras på en disk som används för data, paritet eller
någon annan tillgänglig disk.
Om du använder en datadisk exkluderas denna fil automatiskt
från `sync`-processen.

Detta alternativ är obligatoriskt och kan användas flera gånger för att spara
flera kopior av samma fil.

Du måste lagra minst en kopia för varje paritetsdisk som används
plus en. Att använda ytterligare kopior skadar inte.

7.5 data NAMN KATALOG
---------------------

Definierar namnet och monteringspunkten för datadiskarna i
arrayen. NAMN används för att identifiera disken och måste
vara unikt. KATALOG är monteringspunkten för disken i
filsystemet.

Du kan ändra monteringspunkten vid behov, så länge
du behåller NAMN fixerat.

Du bör använda ett alternativ för varje datadisk i arrayen.

Du kan byta namn på en disk senare genom att ändra NAMN direkt
i konfigurationsfilen och sedan köra ett `sync`-kommando.
I händelse av namnbyte görs associationen med hjälp av den lagrade
UUID:n för diskarna.

7.6 extra NAME DIR
------------------

Definierar namn och monteringspunkt för ytterligare diskar som ska
övervakas med kommandona `smart` och `probe`.

Detta är användbart för att övervaka diskar som inte ingår i arrayen
men som krävs för att systemet ska fungera, till exempel
startdisken.

Observera att sådana diskar inte påverkas av kommandona `up` och
`down` eftersom de förväntas alltid snurra.

7.7 nohidden
------------

Exkluderar alla dolda filer och kataloger.
I Unix är dolda filer de som börjar med `.`.
I Windows är de de med det dolda attributet.

7.8 exclude/include MÖNSTER
---------------------------

Definierar fil- eller katalogmönstren att exkludera eller inkludera
i sync-processen.
Alla mönster behandlas i den specificerade ordningen.

Om det första mönstret som matchar är ett `exclude`-mönster,
exkluderas filen. Om det är ett `include`-mönster, inkluderas filen.
Om inget mönster matchar, exkluderas filen om det sista mönstret
som specificerats är ett `include`-mönster, eller inkluderas om det sista mönstret
som specificerats är ett `exclude`-mönster.

Se avsnittet MÖNSTER för mer information om mönster-
specifikationer.

Detta alternativ kan användas flera gånger.

7.9 blocksize STORLEK_I_KIBIBYTES
---------------------------------

Definierar den grundläggande blockstorleken i kibibytes för pariteten.
En kibibyte är 1024 byte.

Standard blockstorlek är 256, vilket bör fungera för de flesta fall.

VARNING! Detta alternativ är endast för experter, och det rekommenderas
starkt att inte ändra detta värde. För att ändra detta värde i framtiden,
kommer du att behöva återskapa hela pariteten!

En anledning att använda en annan blockstorlek är om du har många små
filer, i storleksordningen miljoner.

För varje fil, även om den bara är några byte, allokeras ett helt block paritet,
och med många filer kan detta leda till betydande oanvänt paritetsutrymme.
När du helt fyller paritetsdisken, är du inte
tillåten att lägga till fler filer på datadiskarna.
Det bortkastade paritetsutrymmet ackumuleras dock inte över datadiskar.
Bortkastat utrymme som härrör från ett högt antal filer på en datadisk begränsar endast
mängden data på den datadisken, inte andra.

Som en approximation kan du anta att hälften av blockstorleken är
bortkastad för varje fil. Till exempel, med 100 000 filer och en 256 KiB
blockstorlek, kommer du att slösa 12,8 GB paritet, vilket kan resultera
i 12,8 GB mindre utrymme tillgängligt på datadisken.

Du kan kontrollera mängden bortkastat utrymme på varje disk med hjälp av `status`.
Detta är mängden utrymme du måste lämna ledigt på data-
diskarna eller använda för filer som inte ingår i arrayen.
Om detta värde är negativt betyder det att du är nära att fylla
pariteten, och det representerar det utrymme du fortfarande kan slösa.

För att undvika detta problem kan du använda en större partition för paritet.
Om till exempel paritetspartitionen är 12,8 GB större än datadiskarna,
har du tillräckligt med extra utrymme för att hantera upp till 100 000
filer på varje datadisk utan något bortkastat utrymme.

Ett trick för att få en större paritetspartition i Linux är att formatera den
med kommandot:

    mkfs.ext4 -m 0 -T largefile4 DEVICE

Detta resulterar i cirka 1,5% extra utrymme, ungefär 60 GB för
en 4 TB-disk, vilket möjliggör cirka 460 000 filer på varje datadisk utan
något bortkastat utrymme.

7.10 hashsize STORLEK_I_BYTE
----------------------------

Definierar hash-storleken i byte för de sparade blocken.

Standard hash-storlek är 16 byte (128 bitar), vilket bör fungera
för de flesta fall.

VARNING! Detta alternativ är endast för experter, och det rekommenderas
starkt att inte ändra detta värde. För att ändra detta värde i framtiden,
kommer du att behöva återskapa hela pariteten!

En anledning att använda en annan hash-storlek är om ditt system har
begränsat minne. Som en tumregel kräver SnapRAID vanligtvis
1 GiB RAM för varje 16 TB data i arrayen.

Specifikt, för att lagra hasharna av datan, kräver SnapRAID
ungefär TS*(1+HS)/BS byte RAM,
där TS är den totala storleken i byte av din disk-array, BS är
blockstorleken i byte och HS är hash-storleken i byte.

Till exempel, med 8 diskar på 4 TB, en blockstorlek på 256 KiB
(1 KiB = 1024 byte) och en hash-storlek på 16, får du:

RAM = (8 * 4 * 10^12) * (1+16) / (256 * 2^10) = 1,93 GiB

Om du byter till en hash-storlek på 8 får du:

RAM = (8 * 4 * 10^12) * (1+8) / (256 * 2^10) = 1,02 GiB

Om du byter till en blockstorlek på 512 får du:

RAM = (8 * 4 * 10^12) * (1+16) / (512 * 2^10) = 0,96 GiB

Om du byter till både en hash-storlek på 8 och en blockstorlek på 512 får du:

RAM = (8 * 4 * 10^12) * (1+8) / (512 * 2^10) = 0,51 GiB

7.11 autosave STORLEK_I_GIGABYTES
---------------------------------

Sparar automatiskt tillståndet vid synkronisering eller skrubbning efter att den
specificerade mängden GB har behandlats.
Detta alternativ är användbart för att undvika att starta om långa `sync`-
kommandon från början om de avbryts av en maskinkrasch eller någon annan händelse.

7.12 temp_limit TEMPERATUR_CELSIUS
----------------------------------

Anger den maximalt tillåtna disk-temperaturen i Celsius. När den specificeras,
kontrollerar SnapRAID periodiskt temperaturen på alla diskar med hjälp av
verktyget smartctl. De aktuella disk-temperaturerna visas medan
SnapRAID är igång. Om någon disk överskrider denna gräns, stoppas alla operationer
och diskarna snurras ner (sätts i standby) under den tid
som definieras av alternativet `temp_sleep`. Efter viloperioden återupptas operationerna,
och kan potentiellt pausas igen om temperaturgränsen nås
ännu en gång.

Under drift analyserar SnapRAID också värmekurvan för varje
disk och uppskattar den långsiktiga stabila temperaturen de förväntas
nå om aktiviteten fortsätter. Uppskattningen utförs först efter att
disk-temperaturen har ökat fyra gånger, vilket säkerställer att tillräckligt med
datapoäng finns tillgängliga för att fastställa en pålitlig trend.
Denna förutsagda stabila temperatur visas inom parentes bredvid den
aktuella värdet och hjälper till att bedöma om systemets kylning är
tillräcklig. Denna uppskattade temperatur är endast för informationssyfte
och har ingen effekt på SnapRAIDs beteende. Programmens
åtgärder baseras enbart på de faktiska uppmätta disk-temperaturerna.

För att utföra denna analys behöver SnapRAID en referens för system-
temperaturen. Det försöker först läsa den från tillgängliga hårdvaru-
sensorer. Om ingen system-sensor kan nås, används den lägsta disk-
temperaturen som mättes vid start av körningen som en reservreferens.

Normalt visar SnapRAID endast temperaturen på den hetaste disken.
För att visa temperaturen på alla diskar, använd alternativet -A eller --stats.

7.13 temp_sleep TID_I_MINUTER
-----------------------------

Anger standby-tiden, i minuter, när temperaturgränsen har
nåtts. Under denna period förblir diskarna nedsnurrade. Standard
är 5 minuter.

7.14 pool KATALOG
-----------------

Definierar poolningskatalogen där den virtuella vyn av disk-
arrayen skapas med hjälp av kommandot `pool`.

Katalogen måste redan existera.

7.15 share UNC_KATALOG
----------------------

Definierar Windows UNC-sökvägen som krävs för att få åtkomst till diskarna på distans.

Om detta alternativ specificeras, använder de symboliska länkarna som skapats i pool-
katalogen denna UNC-sökväg för att få åtkomst till diskarna.
Utan detta alternativ använder de genererade symboliska länkarna endast lokala sökvägar,
vilket inte tillåter delning av pool-katalogen över nätverket.

De symboliska länkarna bildas med hjälp av den specificerade UNC-sökvägen, lägger till
disk-namnet som specificeras i `data`-alternativet, och lägger slutligen till filens
katalog och namn.

Detta alternativ krävs endast för Windows.

7.16 smartctl DISK/PARITY ALTERNATIV...
---------------------------------------

Definierar anpassade smartctl-alternativ för att få SMART-attributen för
varje disk. Detta kan krävas för RAID-kontroller och vissa USB-
diskar som inte kan upptäckas automatiskt. Platsinnehavaren %s ersätts av
enhetens namn, men är valfri för fixerade enheter som RAID-kontroller.

DISK är samma disk-namn som specificeras i `data`-alternativet.
PARITY är ett av paritetsnamnen: `parity`, `2-parity`, `3-parity`,
`4-parity`, `5-parity`, `6-parity` eller `z-parity`.

I de specificerade ALTERNATIVEN ersätts strängen `%s` med
enhetens namn. För RAID-kontroller är enheten
sannolikt fixerad, och du kanske inte behöver använda `%s`.

Se smartmontools dokumentation för möjliga alternativ:

    https://www.smartmontools.org/wiki/Supported_RAID-Controllers
    https://www.smartmontools.org/wiki/Supported_USB-Devices

Till exempel:

    smartctl parity -d sat %s

7.17 smartignore DISK/PARITY ATTR [ATTR...]
-------------------------------------------

Ignorerar det specificerade SMART-attributet vid beräkning av sannolikheten
för diskfel. Detta alternativ är användbart om en disk rapporterar ovanliga eller
vilseledande värden för ett visst attribut.

DISK är samma disk-namn som specificeras i `data`-alternativet.
PARITY är ett av paritetsnamnen: `parity`, `2-parity`, `3-parity`,
`4-parity`, `5-parity`, `6-parity` eller `z-parity`.
Det speciella värdet * kan användas för att ignorera attributet på alla diskar.

Till exempel, för att ignorera attributet `Current Pending Sector Count` på
alla diskar:

    smartignore * 197

För att ignorera det endast på den första paritetsdisken:

    smartignore parity 197

7.18 Exempel
------------

Ett exempel på en typisk konfiguration för Unix är:

    parity /mnt/diskp/snapraid.parity
    content /mnt/diskp/snapraid.content
    content /var/snapraid/snapraid.content
    data d1 /mnt/disk1/
    data d2 /mnt/disk2/
    data d3 /mnt/disk3/
    exclude /lost+found/
    exclude /tmp/
    smartctl d1 -d sat %s
    smartctl d2 -d usbjmicron %s
    smartctl parity -d areca,1/1 /dev/sg0
    smartctl 2-parity -d areca,2/1 /dev/sg0

Ett exempel på en typisk konfiguration för Windows är:

    parity E:\snapraid.parity
    content E:\snapraid.content
    content C:\snapraid\snapraid.content
    data d1 G:\array\
    data d2 H:\array\
    data d3 I:\array\
    exclude Thumbs.db
    exclude \$RECYCLE.BIN
    exclude \System Volume Information
    smartctl d1 -d sat %s
    smartctl d2 -d usbjmicron %s
    smartctl parity -d areca,1/1 /dev/arcmsr0
    smartctl 2-parity -d areca,2/1 /dev/arcmsr0


8 MöNSTER (PATTERN)
===================

Mönster ger ett flexibelt sätt att filtrera filer för inkludering eller
exkludering. Genom att använda jokertecken kan du definiera regler som
matchar specifika filnamn eller hela katalogstrukturer utan att
lista varje sökväg manuellt.

Frågetecknet `?` matchar valfritt enskilt tecken utom katalogavgränsaren.
Detta gör det användbart för att matcha filnamn med variabla tecken
samtidigt som mönstret hålls begränsat till en enda katalognivå.

Den enkla stjärnan `*` matchar valfri teckensekvens, men precis som
frågetecknet korsar den aldrig kataloggränser. Den stannar vid
snedstrecket, vilket gör den lämplig för matchning inom en enskild
sökvägskomponent. Detta är det standardbeteende för jokertecken som är
bekant från skal-globbing.

Den dubbla stjärnan `**` är mer kraftfull; den matchar valfri teckensekvens
inklusive katalogavgränsare. Detta gör att mönster kan matcha över
flera katalognivåer. När `**` förekommer direkt i ett mönster kan det
matcha noll eller fler tecken inklusive snedstreck mellan den
omkringliggande bokstavliga texten.

Den viktigaste användningen av `**` är i den speciella formen `/**/`. Detta matchar
noll eller flera kompletta katalognivåer, vilket gör det möjligt att matcha filer
på valfritt djup i ett katalogträd utan att känna till den exakta sökvägsstrukturen.
Till exempel matchar mönstret `src/**/main.js` filerna `src/main.js` (hoppar över
noll kataloger), `src/ui/main.js` (hoppar över en katalog) och
`src/ui/components/main.js` (hoppar över två kataloger).

Teckenklasser som använder hakparenteser `[]` matchar ett enskilt tecken från en
angiven uppsättning eller ett intervall. Precis som de andra mönstren för enskilda
tecken matchar de inte katalogavgränsare. Klasser stöder intervall och
negering med ett utropstecken.

Den grundläggande skillnaden att komma ihåg är att `*`, `?` och teckenklasser
alla respekterar kataloggränser och endast matchar inom en enskild
sökvägskomponent, medan `**` är det enda mönstret som kan matcha över
katalogavgränsare.

Det finns fyra olika typer av mönster:

    FILE
        Väljer valfri fil med namnet FILE.
        Detta mönster gäller endast filer, inte kataloger.

    DIR/
        Väljer valfri katalog med namnet DIR och allt innehåll.
        Detta mönster gäller endast kataloger, inte filer.

    /PATH/FILE
        Väljer den exakt angivna filsökvägen. Detta mönster gäller
        endast filer, inte kataloger.

    /PATH/DIR/
        Väljer den exakt angivna katalogsökvägen och allt innehåll.
        Detta mönster gäller endast kataloger, inte filer.

När du specificerar en absolut sökväg som börjar med /, tillämpas den vid
array-rotkatalogen, inte den lokala filsystemets rotkatalog.

I Windows kan du använda bakåtsnedstrecket \ istället för framåtsnedstrecket /.
Windows systemkataloger, junction points, monteringspunkter och andra Windows
speciella kataloger behandlas som filer, vilket innebär att för att exkludera
dem måste du använda en fil-regel, inte en katalog-regel.

Om filnamnet innehåller tecknet `*`, `?`, `[`,
eller `]`, måste du undvika det för att förhindra att det tolkas som ett
globbing-tecken. I Unix är undvikande-tecknet `\`; i Windows är det `^`.
När mönstret är på kommandoraden måste du dubbla undvikande-
tecknet för att förhindra att det tolkas av kommandoskalet.

I konfigurationsfilen kan du använda olika strategier för att filtrera
filerna som ska behandlas.
Det enklaste tillvägagångssättet är att endast använda `exclude`-regler för att ta bort alla
filer och kataloger du inte vill behandla. Till exempel:

    # Exkluderar alla filer som heter `*.unrecoverable`
    exclude *.unrecoverable
    # Exkluderar rotkatalogen `/lost+found`
    exclude /lost+found/
    # Exkluderar alla underkataloger som heter `tmp`
    exclude tmp/

Det motsatta tillvägagångssättet är att definiera endast de filer du vill behandla, med
endast `include`-regler. Till exempel:

    # Inkluderar endast vissa kataloger
    include /movies/
    include /musics/
    include /pictures/

Det sista tillvägagångssättet är att blanda `exclude`- och `include`-regler. I detta fall
är ordningen på reglerna viktig. Tidigare regler har
företräde framför senare.
För att förenkla kan du lista alla `exclude`-regler först och sedan
alla `include`-regler. Till exempel:

    # Exkluderar alla filer som heter `*.unrecoverable`
    exclude *.unrecoverable
    # Exkluderar alla underkataloger som heter `tmp`
    exclude tmp/
    # Inkluderar endast vissa kataloger
    include /movies/
    include /musics/
    include /pictures/

På kommandoraden, med hjälp av alternativet -f, kan du bara använda `include`-
mönster. Till exempel:

    # Kontrollerar endast .mp3-filerna.
    # I Unix, använd citattecken för att undvika globbing-expansion av skalet.
    snapraid -f "*.mp3" check

I Unix, när du använder globbing-tecken på kommandoraden, måste du
citattecken dem för att förhindra att skalet expanderar dem.


9 IGNORERA FILER (IGNORE FILE)
==============================

Utöver de globala reglerna i konfigurationsfilen kan du placera
`.snapraidignore`-filer i vilken katalog som helst i arrayen för att definiera
decentraliserade exkluderingsregler.

Regler som definieras i `.snapraidignore` tillämpas efter reglerna i
konfigurationsfilen. Detta innebär att de har högre prioritet och kan
användas för att exkludera filer som tidigare inkluderats av den globala
konfigurationen. I praktiken innebär det att om en lokal regel matchar, så
exkluderas filen oavsett de globala inkluderingsinställningarna.

Mönsterlogiken i `.snapraidignore` speglar den globala konfigurationen men
förankrar mönstren till den katalog där filen finns:

    FILE
        Väljer alla filer med namnet FILE i denna katalog eller under.
        Detta följer samma globbing-regler som det globala mönstret.

    DIR/
        Väljer alla kataloger med namnet DIR och allt innehåll, som finns
        i denna katalog eller under.

    /PATH/FILE
        Väljer den exakt angivna filen relativt platsen för
        `.snapraidignore`-filen.

    /PATH/DIR/
        Väljer den exakt angivna katalogen och allt innehåll, relativt
        platsen för `.snapraidignore`-filen.

Till skillnad från den globala konfigurationen stöder `.snapraidignore`-filer
endast exkluderingsregler; du kan inte använda `include`-mönster eller negation (!).

Till exempel, om du har en `.snapraidignore` i `/mnt/disk1/projects/`:

    # Exkluderar ENDAST /mnt/disk1/projects/output.bin
    /output.bin
    # Exkluderar alla kataloger med namnet `build` inuti projects/
    build/
    # Exkluderar alla .tmp-filer inuti projects/ eller dess undermappar
    *.tmp


10 INNEHåLL (CONTENT)
=====================

SnapRAID lagrar listan och checksummorna för dina filer i content-filen.

Det är en binär fil som listar alla filer som finns i din disk-array,
tillsammans med alla checksummor för att verifiera deras integritet.

Denna fil läses och skrivs av kommandona `sync` och `scrub` och
läses av kommandona `fix`, `check` och `status`.


11 PARITET (PARITY)
===================

SnapRAID lagrar paritetsinformationen för din array i parity-
filerna.

Dessa är binära filer som innehåller den beräknade pariteten för alla
block definierade i `content`-filen.

Dessa filer läses och skrivs av kommandona `sync` och `fix` och
läses endast av kommandona `scrub` och `check`.


12 KODNING
==========

SnapRAID i Unix ignorerar all kodning. Det läser och lagrar
filnamnen med samma kodning som används av filsystemet.

I Windows konverteras alla namn som läses från filsystemet och
behandlas i UTF-8-format.

För att få filnamn utskrivna korrekt måste du ställa in Windows-
konsolen till UTF-8-läge med kommandot `chcp 65001` och använda
ett TrueType-typsnitt som `Lucida Console` som konsoltypsnitt.
Detta påverkar endast de utskrivna filnamnen; om du
omdirigerar konsolutdata till en fil, är den resulterande filen alltid
i UTF-8-format.


13 UPPHOVSRäTT (COPYRIGHT)
==========================

Denna fil är Copyright (C) 2025 Andrea Mazzoleni


14 SE ÄVEN (SEE ALSO)
=====================

snapraid_log(1), snapraidd(1)
