Hjälp med tankar kring datalagring och backup

Permalänk
Medlem

Hjälp med tankar kring datalagring och backup

Ska sätta upp en hemma/media-server snart och jag skulle behöva lite hjälp med hur jag borde tänka kring datalagring och "backup". Citationstecken runt backup för jag vet inte om det blir backup i ordets fulla bemärkelse. Har läst en del om "3-2-1" för data-backup/hantering och tänker att det kanske inte är helt dumt, även om jag inte vet om jag kan/vill/kommer uppfylla det.

"Miljön" hemma ser väl ut som följer:
2x Android-mobil, där bilder ska synkroniseras med "lokalt moln" på servern. Kalendrar och mail går via Gmail och lagras där.
1x Laptop (Win 10), där vissa mappar ska synkroniseras med servern.
1x Stationär dator (Win 10), där vissa mappar ska synkroniseras med serven
(1x Android surfplatta, som i dagsläget bara används för streamingtjänster så inget ska synkroniseras eller backas upp)

Servern kommer utöver datalagring initialt att användas för Plex-server, nedladdningar, Home Assistant med tillhörande databaser för statistik/loggar samt kameraövervakning. Har i dagsläget utöver system-disk 3 "datalagrings-diskar" av samma sort (WD Red) och storlek. Planerar att köra Ubuntu som OS och sedan låta de funktioner jag behöver gå i Dockers, det är dock inte skrivet i sten om det finns bättre alternativ.

Planerar även att köra backup off-site genom att ha en NAS ståendes hos en kompis.

Det jag funderat över hittills är följande:
* Köra OwnCloud för synkronisering av mobiler och datorer till servern
* Att två av serverns diskar är speglade och låta lagring av all data ske där.
* Från de speglade diskarna tänker jag sedan att jag skulle backa upp typ bilder, videos (inte filmer/serier), dokument, home assistant-data, config-filer för dockers, och ev. något mer till den tredje disken på servern. Funderade på rsync alternativt något crontab-script för detta.
* Det som ligger på den tredje disken på servern tänkte jag sen att jag synkroniserar med NASen som står hos en kompis. Funderade på att köra Duplicity för detta, men har inte gjort så mycket research på detta och är öppen för andra förslag.

Vad tänker ni om detta?

Permalänk
Medlem
Permalänk
Medlem

ZFS är ett filsystem - en av många som kan användas för TS fundering.

Nu har jag inte kollat på länge men har för mig duplicity är en klassisk - tar-liknande backup med en huvudbackup och sedan inkrementella diffar (rdiff för minimal mängd data i inkremententen, samt lite databaser för GUI:t) och det räcker med att en enda av diffarna blir fel för att diffarna dagarna efter den trasiga diffen inte kan läsas in.

Baserat på erfarenhet på Dupicati första generationen som var byggd på samma sätt som duplicity (de är födda ur samma tanke) fast för främst windows-miljö - också med huvudbackup och sedan inkrementella backupper så är den måntaliga 'nya' huvudbackuppen en sak som blir allt mer irriterande med tiden då allt skall överföras från början typiskt 1 ggr i månaden och man har kvar den gamla backuppen orörd tills den nya backuppen är helt överförd och kontrollerad minst - vilket gör att det drar minst dubbel plats på lagringsservern. - har man som jag minst 3 månader retension-tid med 3 generationer månadsbackup så kan det bli upp till 4 fulla uppsättningar... (att ha mer än 30 inkrement per huvudbackup börja bli riskabelt och väldigt ömtåligt)

Jag skulle hellre titta på chunk-baserad deduplicerande backup som borg-backup där huvudbackuppen görs en enda gång, man kan radera gamla backuppsessioner i vilken ordnings som helst etc. - det är ingen turordning på backupsessionerna på samma sätt som i 1:a generation duplicati och duplicity vilket gör att man kan göra en utglesning som de första 2 månadens backupper är dagliga, därefter månad 3-6 är veckobackupper, därefter månads-backup och slutligen helårsbackup när det är mer än 12-24 månader gammalt.

Det fins GUI även för borg-backup men inget jag testat hur bra det fungerar (kör kommandorad)

Den andra med duplicity-liknande lösningen är Duplicati 2 som också är deduplicerande och chunk-baserad och man gör endast en enda huvudbackup och också har support för en rad olika molntjänster (vilket borgbackup saknar) - men den är inte så stabil och buggfri som jag önskar även om jag hela tiden hoppas på bättre hela tiden (kör canary-versionen), så det är inte den enda backup-lösningen.

borg-backup är stabil, men är kommandoradsorienterad och schemaläggning är något man får scripta ihop själv med cron eller hitta bra färdiga script på internet - med andra ord inget färdigt paket. borg-backup kan också köras i client-server med servermode hos lagrade servern och där också sätta skrivskydd för alla redan skrivna sessioner (dvs klienten kan inte ta bort något som redan är skrivet)

När det gäller att synka direktory/mappar så är rsync arbetshästen på linux-sidan (däremot ingen bra rsync-lösning på windowssidan) men precis som borgbackup så är det något man själv får scripta. (erfarenhetsmässigt så hamnar man där förr eller senare att själv skriva sina egna script och lägga i cron då 'färdiga' lösningar i GUI som ändå i slutet använder 'rsync' för grovjobbet, ofta inte gör det man vill eller att efter ett tag att lagringsdisken/servern plötsligt blev full för att hårda länkar helt plötsligt inte användes efter en uppdatering på gui-appen... blir så trött... )

Permalänk
Medlem

ZFS har backup inbyggd, zfs send

Skickades från m.sweclockers.com

Permalänk
Medlem

Backup är väldigt mycket mer än att bara köra en "zfs send"...

Permalänk
Medlem

Sjävklart, men baserat på vad du skrev duger det som motargument

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av Garmzon:
Skrivet av xxargs:

ZFS är ett filsystem - en av många som kan användas för TS fundering.

Nu har jag inte kollat på länge men har för mig duplicity är en klassisk - tar-liknande backup med en huvudbackup och sedan inkrementella diffar (rdiff för minimal mängd data i inkremententen, samt lite databaser för GUI:t) och det räcker med att en enda av diffarna blir fel för att diffarna dagarna efter den trasiga diffen inte kan läsas in.

Baserat på erfarenhet på Dupicati första generationen som var byggd på samma sätt som duplicity (de är födda ur samma tanke) fast för främst windows-miljö - också med huvudbackup och sedan inkrementella backupper så är den måntaliga 'nya' huvudbackuppen en sak som blir allt mer irriterande med tiden då allt skall överföras från början typiskt 1 ggr i månaden och man har kvar den gamla backuppen orörd tills den nya backuppen är helt överförd och kontrollerad minst - vilket gör att det drar minst dubbel plats på lagringsservern. - har man som jag minst 3 månader retension-tid med 3 generationer månadsbackup så kan det bli upp till 4 fulla uppsättningar... (att ha mer än 30 inkrement per huvudbackup börja bli riskabelt och väldigt ömtåligt)

Jag skulle hellre titta på chunk-baserad deduplicerande backup som borg-backup där huvudbackuppen görs en enda gång, man kan radera gamla backuppsessioner i vilken ordnings som helst etc. - det är ingen turordning på backupsessionerna på samma sätt som i 1:a generation duplicati och duplicity vilket gör att man kan göra en utglesning som de första 2 månadens backupper är dagliga, därefter månad 3-6 är veckobackupper, därefter månads-backup och slutligen helårsbackup när det är mer än 12-24 månader gammalt.

Det fins GUI även för borg-backup men inget jag testat hur bra det fungerar (kör kommandorad)

Den andra med duplicity-liknande lösningen är Duplicati 2 som också är deduplicerande och chunk-baserad och man gör endast en enda huvudbackup och också har support för en rad olika molntjänster (vilket borgbackup saknar) - men den är inte så stabil och buggfri som jag önskar även om jag hela tiden hoppas på bättre hela tiden (kör canary-versionen), så det är inte den enda backup-lösningen.

borg-backup är stabil, men är kommandoradsorienterad och schemaläggning är något man får scripta ihop själv med cron eller hitta bra färdiga script på internet - med andra ord inget färdigt paket. borg-backup kan också köras i client-server med servermode hos lagrade servern och där också sätta skrivskydd för alla redan skrivna sessioner (dvs klienten kan inte ta bort något som redan är skrivet)

När det gäller att synka direktory/mappar så är rsync arbetshästen på linux-sidan (däremot ingen bra rsync-lösning på windowssidan) men precis som borgbackup så är det något man själv får scripta. (erfarenhetsmässigt så hamnar man där förr eller senare att själv skriva sina egna script och lägga i cron då 'färdiga' lösningar i GUI som ändå i slutet använder 'rsync' för grovjobbet, ofta inte gör det man vill eller att efter ett tag att lagringsdisken/servern plötsligt blev full för att hårda länkar helt plötsligt inte användes efter en uppdatering på gui-appen... blir så trött... )

Tackar för svaren. Känner omgående att jag har en hel del att läsa på .

Filsystem
Min ursprungliga tanke var att köra ext4 som filsystem. Vilket nog mest handlar om att jag utgick att det var "standard", även om jag så klart känner till att det finns alternativ. Jag är inte på något vis låst vid tanken om ext4, utan kan byta om det kan förbättra helheten för mig. Mitt system kommer att vara installerad på en M.2-disk på 250 GB, utöver det så kommer det som sagt finnas tre lagrings-diskar. Bör/måste man ha samma filsystem på alla diskar? Eller finns det någon vinst eller fördel med att t.ex. köra ext4 på min system-disk och ZFS på lagrings-diskarna?

Vet inte hur relevant det är för valet av filsystem, men servern kommer sitta "på" en UPS och mitt ramminne är inte ECC (vet att det inte är ett krav för ZFS).

Ursäkta min lathet, men eftersom ni lyfte ämnet och verkar kunniga så passar jag på att ställa frågan; hur mycket av fördelarna med ZFS kommer "out of the box"? Mina Linux-skills är relativt begränsade, och även om det går att google sig till det mesta så känns tiden ofta knapp.

Datalagring/backup
Ingen kommenterade idén om att spegla två av mina lagringsdiskar och sedan använda den tredje disken för lokal backup av viktig data. Kan det tolkas som att det är en OK lösning givet mina förutsättningar?

"Ramlade" över Duplicity och tyckte att funktionerna som beskrevs lät bra. Men det som @xxargs skriver om det låter ju mindre lockande. Borg-backup låter ju helt klart som en bättre lösning. Men får erkänna att det i någon mån låter lite enklare och mer lockande med Duplicati 2, vilket skulle göra tröskeln mindre att komma igång. Ska inte gå in i detaljer, men min nuvarande lösning är på alla sätt och vis klart sämre än alla lösningar som diskuterats i denna tråd, så allt blir en stor förbättring

Permalänk
Medlem

Själv har jag inte haft bra erfarenheter med ZFS för root på Ubuntu. Jag skulle nog vänta tills det fanns som installtionsalternativ. På FreeBSD kör jag inget annat än ZFS. Med alla typer lagring måste man vara försiktig och veta vad man håller på med, ZFS är inget undantag. Men följer du rekommendationerna kommer det funka bra. Redundans är inget substitut för backup, se till att alltid ha minst två kopior av data (gärna tre) på minst två olika platser. Har du två maskiner med ZFS pooler så kan du som jag sa tidigare köra ’zfs send’ för att spegla den ena på den andra. Tillsammans med väldigt ”lätta” snapshots har du möjlighet att effektivt backa up och versionshantera hela filsystem (dataset). Som exempel kan du ta en snapshot på ett Jail med Plex, skicka den till backup och sen uppdatera Plex. Skulle något gå fel rullar du tillbaka hela snapshoten och ändringen du gjort blir ogjord. Du kan även montera en snapshot och hämta individuella filer som på ett eller annat sätt blivit förstörda.

Skickades från m.sweclockers.com

Permalänk
Medlem

Har på en server (ubuntu server headless) exprimenterat med btrfs RAID5 på 7st 300 GB SAS-diskar - är mycket väl medveten att BTRFS RAID inte är klassad 'produktionsredo' och i raiden satt en disk som det börjat gnällas om reallokerade sektorer - det för typ 1.5 år sedan...

För några veckor sedan började dmesg gnöla om SMART-error efter att ha varit helt tyst i 1.5 år typ och kontrollern hade kickat disken - med andra ord ingen redundans.

Problemet med HP:s P400-kontroller är att varje disk är en egen logisk volym då denna inte tillåter IT-mode - och att bara byta disken och hoppas på det bästa fungerar inte.

Satt i valet och kvalet hur jag skulle hantera detta och beslutade att innan jag tog bort någon disk, efter att syncat backupen så skulle jag reducera RAID:en med en disk - den trasiga - vilket görs med 'btrfs dev del /dev/sdx /sökväg_till_volym' - då byggs hela diskinnehållet om genom att ha två RAID5 aktiva parallellt - en med 7 diskar (och en av diskarna saknas) och en med 6 diskar. Först börja den att packa alla extension och sedan flytta över extension från 7-disk RAID5 till 6-disk RAID5 och likadan procedur med all system metadata (som också var RAID5) då volymen är relativt liten och tillsammans knappt 2 TB så var det ganska snabbt gjort då flödet var kring 550 MB/s om man räknade ihop läs och skrivtakt-takt.

Stängde ned maskinen, mökade i p400:s bios för att få den dåliga disken utbytt med en ny.

Startade upp - jaha då var det en disk till som blev utkickad - dvs. P400 ville inte ha att göra med den längre, skumt såg inget om i dmesg att en disk till var på G... - en 6-disk RAID5 utan redundans - så jag gjorde om proceduren ovan (efter att kontrollera att ha plats att krympa en disk till) - ut med den utkickade disken - mök i P400-bios för att få den nya i systemet igen.

Starta upp och med 'btrfs dev add /dev/sdx /sökväg_till_volym' 2 gånger för båda bytta diskarna och sedan körde jag 'balance' - eftersom systemet var redan i RAID 5 så förstod BTRFS att de två tomma diskarna skulle användas och på samma sätt som tidigare så är det i konverteringen 2 RAID5-system parallellt (och därmed tål en strömavbrott mitt i proceduren då det också är transaktionshantering - dvs inget finns 'giltigt' förrän en transaktion är gjort ) - en med 5 diskar och en med 7 diskar där extensions bytte plats med varandra och när det var klart så körde jag sedan rsync med -c flaggan och jämförde med backuppen - inte en fil fel någonstans.

I det avseendet så klarade det sig riktigt bra och trots 2 diskhaverier omedelbart efter varandra - visst det är inte automatiskt som en HW-raid där man bara trycket ut den gamla disken och trycker in den nya och så börja det synka - men inte ohanterligt heller om man gör det enligt en viss procedur, sedan är frågan om HW-RAID hade lyckats med diskbytena om den andre disken hade havererat under proceduren när den synkade för den första disken - nu när jag gjorde reduceringen i två steg så fick man en medföljade redundans nedåt med diskantal, men hade det också varit ett läsfel på den disken som sedan föll bort i andra steget redan i första steget så...

Då är det värre med den jag stångar med nu - en annan 4 diskars RAID5 på en NAS med mdadm där jag fick 'write' error och 'read-error' (dvs mdadm rapporterade det i dmesg - dvs. nivån under använda filsystem) utan att något om det syntes i diskarnas SMART - jag provläste var disk i RAID separat med 'dd' eftersom jag hade läsfel - och på 8TB diskar så tar det en stund - inga fel på någon av dem - provade läste på md3 som var själva RAID som logisk volym exklusive filsystem - läsfel ca 6 TB in på volymen, och det var inte få sektorer som den vägrar att läsa med IO-fel - vad i helv...

Problemet med mdadm när det börja vara fel är att den är tyst som en mussla - man får reda på att något var fel och vilken LBA - men inte hur eller varför...

Nästa steg var att med rmlint jämföra filerna på den rsync:ade backupdisken med filerna på RAID och helt enkelt ta bort filerna som är lika från RAID då det började lukta logisk fel i själva RAID och att det eventuellt hade något att göra med 8TB gräns (det snurrar på en 32-bitas ARM-NAS, normalt skall det inte ge problem förrän vid 16 TB och volymen i fråga var satt till 15 TB av just den orsaken) - det tog ju förstås ett tag då det var ca 8 TB och ca 4 miljoner filer och det som var kvar var den senaste skrivna borg-backupen med runt 40000 småfiler och efter jämförelse så var det ca 12 kvar av dem och försökte man kopiera eller på något sätt läsa dem så blev det IO-error

Tog bort filerna och sedan började jag provskriva hela partitionen genom filsystemet med zero-filer mha. dd för att se om jag får IO-error när jag skrev filer - och det fick jag efter 6-7 TB och problemet är att dmesg börja spotta felmeddelande från MDADM att den inte kan skriva men det ger inte IO-error till filsystemet och applikationen ovan och stoppar denna (var i gränsen mellan MDAM och BTRFS det skiter sig vet jag inte) - med andra ord skriver det silent error till diskarna, medans försökte man läsa filen via filsystemet efter så blev det IO-fel...

Det är i filsystemvärlden en katastrofproblem!!! och det verka sitta i mdadm - en RAID-system som anses vara väldigt stabil!!

så, jag avbröt det hela - tog bort hela partitionen då jag nu antar att hela mdadm RAID är kaputt ända ned till grunden när det hittar på fel som inte finns (eller för att det viker runt vid 8TB-gränsen) - skapade en ny partition, ny mdadm RAID5 och ovanpå denna BTRFS med checksumma aktivt och nu kör jag tillbaka en jäkla massa filer och nu tänker jag köra filsystemet stumfull och sedan ta bort allt med rmlint igen och se om något blir kvar - dmesg -T -w är också igång under processen och vi får se om det händer något när man går över 8TB igen...

Om det fortfarande är ett problem så är det bara att inse att den här nasen är att skrota och aldrig mer köpa något som är mindre än 64-bits OS på i fortsättningen (förvisso är förtroendet redan brutet när det gäller NAS och 32-bitars system och framförallt på ARM-plattform - och saken är att det hjälper inte att byta 'märken' - fel som finns på en plattform finns också på annan tillverkares plattform eftersom de använder samma linux-kärna och generation samt klustret med hjälpprogram och alla dessa tillverkare gör väldigt lite för att fixa felen själva, sitter och trycker och hoppas att någon annan gör det åt dem - kommer ihåg ext3-ext4 debacklet och journal-hanteringen där och disken blev oehört seg till helt tvärstopp om man försökte fylla disken över 75-80%... och var samma fel hos alla NAS-tillverkare på den tiden, och mirakulöst så löste alla problemet på närmast dagen samtidigt - efter 2 års gnäll och spyende på respektive tillverkares forum där många rage-quitade och hoppade till annat märke för att upptäcka att problemet var samma även hos dem... och de mer luttrade inkl. jag körde på ext3 utan journal... och tittade på spetaklet)

Permalänk
Medlem

Blanda aldrig HW RAID och LVM..

Skickades från m.sweclockers.com

Permalänk
Medlem

Tycker det låter bra. Själv kör jag rsnapshot som är ett backup program för Linux servers.
Har du tänkt köra krypterad backup till din kompis? Om inte så måste du ha i åtanke att alla filer KAN läcka ut.

Permalänk
Medlem
Skrivet av Meto:

Tycker det låter bra. Själv kör jag rsnapshot som är ett backup program för Linux servers.
Har du tänkt köra krypterad backup till din kompis? Om inte så måste du ha i åtanke att alla filer KAN läcka ut.

Ja, planen var att köra någon form av kryptering på det som backas upp externt. Duplicati 2 , som det tipsades om tidigare i tråden, är väl en av kandidaterna för detta.

Men får erkänna att tiden inte räckt till att ens börja göra mer research om hur jag ska sätta upp servern. Än mindre att börja installera saker