Joakim Melin
Pappa, poddare, Volvoman, chipsentusiast

Äventyr med Unraid



Unraid

Efter att ha använt Truenas i närmare ett år så kom jag till ett par slutsatser. Det första är att jag blivit galet trött på att lyssna på fyra stycken 4TB-diskar snurra och knattra. Det andra är att äldre hårddiskar, som de nyss nämnda 4TB-diskarna, inte är en bra ide att köra med Truenas och ZFS då det verkar ta livet av dem i en hyfsat hög hastighet. Låt vara att detta var gamla Seagate “Enterprise”-diskar på 4TB vardera som redan hade ett antal år på nacken, men under det dryga året jag kört denna lösning så har jag fått kasta fyra diskar som packat ihop.

Detta kombinerat med att jag var nyfiken på en annan lösning gjorde att jag grävde djupt i plånboken, köpte mig ytterligare ett antal SSD-diskar och smackade ihop en “ny” maskin med åtta 1TB SSD-diskar, 20GB RAM och en AMD Ryzen 5 2400G-processor som numera kör Unraid.

Resan var dock inte helt smärtfri för att komma dit.

När jag började bygga min Unraid-maskin hade jag nämligen bara fyra SSD-diskar. Eftersom jag gjorde som jag brukar göra så läste jag givetvis ingen dokumentation utan laddade ned verktyget för att skapa en USB-sticka för Unraid och sen satte jag igång.

Unraid skiljer sig nämligen från Truenas på många sätt, och ett av dessa är att Unraid inte går att installera på en hårddisk. Det är byggt för att boota från en USB-sticka. Det är ju inget problem om man väljer en bra USB-sticka som inte redan har raderats 511 gånger (jag kommer till det senare). Tanken med USB-stickan är inte så dum som den kan låta - eftersom man betalar för Unraid så kan man också lätt flytta systemet med USB-stickan till en annan maskin om man vill använda systemet där istället.

Jag satte igång att skapa en array baserad på filsystemet XFS. Det verkade som standardinstallationen så jag valde det och vips så hade jag en array på 4TB (4 x 1TB SSD). Detta var mitt första misstag.

Mitt andra misstag var jag inte läste på om behovet av en paritetsdisk. Eftersom XFS inte är ett RAID-system, eller på något sätt erbjuder någon form av redudans utan just en paritetsdisk, så är det sistnämnda inte ett önskemål, det är ett krav.

Mitt tredje misstag var att välja just XFS. Unraid gör en stor affär av att man kan putta i vilka hårddiskar man vill i sitt system och vips så har man en NAS. Det är förvisso sant, men om man väljer XFS kan man i efterhand inte expandera sin array. Unraid skriver själva på sin blogg att det bara är att expandera, men det är i mitt tycke en aning luddigt:

“Unraid’s native XFS or BTRFS file systems deliver good read speeds for most media server users.

The array is readily expandable (an essential consideration for you media data hoarders out there as your collections grow!)”

Detta faktum upptäckte jag efter att jag köpt ytterligare tre SSD-diskar på 1TB vardera, tre för data och en för paritet.

disksetup i Unraid

Mitt fjärde misstag var samma som mitt tredje: att välja XFS. Unraid är nämligen egentligen byggt för att använda sig av vanliga hårddiskar. Man kan, om man kör XFS, använda SSD:er för cache, men det är inte rekommenderat att man bygger en vanlig array baserad på XFS om man använder enbart SSD:er. Detta beror på att Unraid inte stödjer TRIM när man använder XFS (använder man btrfs eller zfs så är detta inte ett problem). Har man en cachedisk inlagd i sin XFS-array så kan man köra trim på den, men inte övriga diskar i array:en.

Vad är då lösningen? Jag fick tömma hela min array på data, radera den och sedan skapa en ny array baserad på btrfs eller zfs.

Mitt femte misstag var att jag valde ett äldre USB-minne att boota från. Det är nämligen så att även om Unraid inte skriver loggar och annat till USB-minnet så lagrar den en hel del väldigt viktig information om systemet, i synnerhet information om dina diskar, din licens, din array, konfiguration, och så vidare. I mitt fall så visade sig problemet med USB-minnet inte förrän jag startade om systemet och det inte gick att starta från det längre.

Jag försökte läsa ut information från USB-minnet men partitionstabellen var rökt och de filer som jag faktiskte behövde var korrupta. Så jag fick börja om med ett nytt, i alla bemärkelser, USB-minne och koppla ur mina tre nya diskar. Efter det var det inte svårare än att lägga till de fyra diskar jag redan hade och vips så var min array tillbaka. Till och mina Docker-containrar bara fungerade utan vidare. Hade jag däremot haft en paritetsdisk och inte vetat vilken disk det var så hade jag haft betydligt större problem.

Lösningen på detta är att ta regelbunden backup på konfigurationen - det finns en funktion för detta i det för övrigt riktigt trevliga webbgränssnittet. Varför USB-minnet avled? Vem vet - det kanske inte var byggt för att vara inkopplat dygnet runt.

Detta är en första bloggpost av mina intryck av Unraid. I del två reder jag ut hur en fungerande konfiguration, med sina fördelar och nackdelar, ser ut.


• • •

Datormagazin Retro #7: boka ditt nummer idag!



Nog för att en Mac eller iPad är rolig. Eller kanske till och med en PC. Men ibland är det senaste inte riktigt vad själen behöver. Ibland behöver man få frossa i forntiden, i det som var (för allt var ju bättre förr, som alla vet). Det är för såna som dig som vi gör tidningen Datormagazin Retro och nu är det dags för vårt sjunde nummer!

Som vanligt kommer tidningen vara fullpackad med intressant och rolig läsning, och här är några artikelideér vi surrat om under planeringen:

  • Historien om Dune 2
  • Vi besöker Embracer Games Archive
  • Programmera mera på C128
  • Världens mest sällsynta Amiga
  • Giana Sisters vs. Super Mario Bros
  • Demodags
  • Backchat med Brad S
  • Expertens bästa tips
  • … och mycket mer

Glid över till Datormagazin Retros kampanjsajt omedelbums och spana in de fina paketen som erbjuds. Ju snabbare vi har 1000 förbeställningar, desto snabbare kommer tidningen levereras.


• • •

Cloudflare-tunnel och Wordpress



Då jag kör alla mina webbsajter, och även poddens dito, via tunnlar hos Cloudflare så är det givetvis så att saker och ting är en aning annorlunda jämfört med att köra sajten “naket” direkt mot Internet. Cloudflares tunnel fungerar som en proxy som routar trafiken via Cloudflare och i Cloudflares proxy termineras även SSL-certifikaten för webbsajterna, med mera.

Detta fungerar utan några som helst problem för sajter som denna, men för Wordpress är det annorlunda. Wordpress är, och har alltid varit, ganska uselt på att hantera SSL. En värre blir det när man ställer en webbsajt baserad på Wordpress bakom en proxy, i det här fallet tunneln via Cloudflare. Jag lyckades till slut få det att fungera när jag gjorde hela flytten till egen server hos Hetzner i somras men då jag var tvungen att rota runt lite i konfigurationen idag, och givetvis hade sönder allt eftersom jag inte mindes hur jag löst det, så bestämde jag mig för att dokumentera det för mig själv och för andra som funderar på att göra samma lösning.

Varför ska man titta på en tunnel hos Cloudflare, kanske du undrar? Om du kör en server hemma och inkommande trafik är spärrad, eller om din internetleverantör använder sig av det som kallas för Carrier-grade NAT, eller CGNAT (för att ta två exempel), så kan en gratis tunnel hos Cloudflare göra att du faktiskt kan köra din webbsajt hemma ändå.

Wordpress och Cloudflare-tunnel

När man sätter upp sin tunnel mellan Cloudflare och sin egna server så finns det ingen anledning att skicka trafiken över https (kryptering medelst SSL)-protokollet då trafiken mellan Cloudflare och din server går i en krypterad tunnel. Alltså gör man det enkelt för sig och låter webbservern hemma prata http, utan något SSL-certifikat. När man installerat sin Wordpress-sajt och fått igång tunneln mellan servern och Cloudflare kommer man upptäcka att sajten fungerar fin-fint när man besöker den, men när man går in i inställningarna och vill ändra sajtens adress till https://www.dinsajt.tldså brakar det. Du kan inte logga in administrationsgränssnittet och ställa tillbaka webbsajtens adress till http://www.dinsajt.tld och om du inte vill sätta igång och rota i databasen för att där ändra webbsajtens adress (den lagras i databasen, nämligen) så är läget en aning knepigt.

Sajten kommer kunna fortsätta att ta emot besök men när man vill logga in i det administrativa gränssnittet så får man det ökända felmeddelandet om “too many re-directs”. Detta beror på att Cloudflare-tunneln försöker leda om all trafik till https medan webbservern hemma är konfigurerad för att endast prata http. Detta gör att Wordpress vill prata https medan webbservern vill prata http, och sen går detta i en loop några gånger tills webbläsaren ger upp.

Lösningen är relativt enkel, och den matas in i wp-config.php-filen där din Wordpress-konfiguration ligger.

Dessa två rader är din räddning:

define('WP_HOME','http://www.dinsajt.tld'); define('WP_SITEURL','http://www.dinsajt.tld');

Genom att ange http i dessa två rader så kommer du kunna logga in i administrationsgränssnittet igen och kunna fortsätta arbeta med din webbsajt.

Snart kommer dock ett annat problem att uppstå, och det beror på att Wordpress tror att den kommunicerar via http och inte https vilket gör att innehållet i Wordpress inte skickas enbart över https, så-kallat mixed content. Detta löser du genom att ange följande rad i wp-config.php:

$_SERVER['HTTPS']='on';

Nu talar du om för Wordpress att den skickar ut all data via https.

Ett tredje problem kan uppstå om du installerar en plugin för exempelvis trafikanalys till din webbsajt. Du kan se felmeddelanden som detta:

Error connecting to WordPress REST API. Disable ad-blocker for this page or unblock /wp-json/wp-statistics/v2/metabox in the ad-blocker configuration.

Detta har dels med problemet ovan, mixed content, och dels med att Cloudflare har en egen brandvägg som nyper ihop så fort den misstänker att det går lite väl mycket trafik till en viss del av din webbsajt. Jättebra i normala fall men inte i detta läge.

För att komma runt detta så skapar du en regel hos Cloudflare för att slå av säkerheten för www.dinwebbsajt.tld/wp-json/*. Mina två regler för poddens webbsajt ser ut så här:

Efter att du skapat denna regel och också lagt in ändringarna i wp-config.phpså ska din sajt fungera normalt.


• • •

ftp.melin.org är tillbaka



När jag skrotade mitt Raspberry Pi-kluster så hade jag inte längre något att köra min “ftp”-server på hemma. Jag säger “ftp” men egentligen så serveras filerna över https då jag inte kan köra ftp hem av olika anledningar.

Hur som haver, nu är tjänsten tillbaka igen. Jag har hört att flera personer har frågat efter den så jag satte upp en virtuell server på min Truenas-maskin och tack vare en tunnel via Cloudflare så går det nu att komma åt filerna igen. Yay!

Du hittar hela grannlåten på ftp.melin.org. Mycket nöje.


• • •

Katastrofen som är Fedora 38



Då och då brukar jag installera min favorit-Linuxdistribution, Fedora, på en hyfsat modern PC och se vad denna version av Linux går för.

Jag insåg idag att det var ett bra tag sedan jag skrev om det senast så här kommer en liten uppdatering på läget. Bilden ovan kan anses vara hyfsat indikativ på hur mitt lilla test gick…

De senaste åren har för Fedora inneburit en gradvid utfasning av X.org till förmån för Wayland som fönsterhanterare, och små men stadiga förbättringar på en rad olika områden. Andra områden har förändrats till, i mitt tycke, det sämre. Överlag måste man dock säga att gänget bakom det grafiska gränssnittet Gnome tar steg för steg mot en del av det jag pekade på redan 2018 vilket är väldigt glädjande. Små, enkla, verktyg som exempelvis det för att ta skärmbilder har blivit betydligt bättre. Integrationen i Gnome mot Microsofts onlinetjänster fortsätter att vara omöjligt dåliga. Mycket saknas dock fortfarande och det är säkerligen lika frustrerande för utvecklarna av Gnome som det är för oss som använder det.

Här följer några exempel på hur Gnome, och Fedora, innehåller både framsteg men också stampande på ett och samma ställe år efter år:

När jag försöker ansluta med mitt “Microsoft-konto” som jag har för mailkontot som Microsoft hanterar åt mig via Exchange Online, så får jag ett meddelande att kontot inte finns. Om detta beror på att implementationen i Gnome för detta gentemot Microsoft är gammal vet jag inte. Jag testade istället att ansluta via Gnomes Exchange-implementation och den är ungefär lika usel den. Den förstår inte att slå upp var autodiscover.melin.org pekar, utan istället står den och snurrar i all evighet utan att varken ge upp eller lyckas. Jag anger då korrekt serveradress, outlook.office.com men det hjälper inte heller för då går det inte att logga in, trots att inloggningsnamn och lösenord är verifierade och korrekta.

Jag testar med e-postklienten Thunderbird istället och till min glädje ser jag att när jag matar in mina kontouppgifter kan den slå upp vilken server den ska ansluta till, känna av att kontot ligger hos Exchange Online, erbjuda sig att installera den plugin som krävs för full integration, och sedan göra klart allt. Det tog ett par minuter. Mycket bra. Att Thunderbird numera i praktiken framstår som en webbläsare snarare än en e-postklient kan vi lämna därhän, det fungerar och det fungerar väldigt bra.

Integrationen mot Nextcloud är sedan ett bra tag inbyggt i Gnome men det förvånar mig till denna dag hur långsam den är. Att man dessutom inte får någon lokal katalog i filsystemet (exempelvis ~/NextCloud) av filerna utan att Gnomes Nextcloud-implementation tycks logga in varje gång jag vill komma åt mina filer och listar (efter ett antal sekunders väntan) innehållet i Nextcloud-kontot, är rätt irriterande.

Installera drivrutiner

Jag ville installera drivrutiner för mitt grafikkort från Nvidia för att förbereda mig för punkten som kommer efter denna. Jag surfade till Nvidia och laddade ned drivrutinen och försöker installera den. “Jag måste vara root”, meddelar installationsprogrammet. Det kan jag förstå. Så jag blir root. Då meddelar installationsprogrammet att de känner av att jag kör X.org (vilket jag inte gjorde, eller kunde. Jag kommer till det strax) och jag skulle istället logga in utan att ha X.org igång.

Jag loggar ut från Fedora och trycker alt-f2för att få upp en textsession, vilket gick efter en stund. Efter lyckad inloggning försöker jag köra installationsprogrammet för Nvidias drivrutin igen, men med samma resultat.

När jag var på väg att ge upp hela denna övning så ser jag i “mjukvarubutiken” att någon vänlig själ packat ihop drivrutinerna så jag laddar hem dem den vägen.

Frid och fröjd? Nja…

Spela spel

Jag tänkte att jag skulle testa hur det är att spela spel i Fedora 38. Jag har aldrig riktigt gjort det i Linux och jag såg att de hade en demoversion av Quake 3 i sin egna mjukvarukatalog så varför inte?

Spelet laddades ned och jag ska därefter starta det. Gnome kraschar. Jag startar om datorn, tänkandes att drivrutinen kanske måste läsas in, men resultatet blir det samma. “Wayland måste vara problemet”, tänker jag.

Jag testar att logga ut från Gnome och väljer att logga in med X.org som fönsterhanterare istället. Inget av de alternativ som finns som ger mig X.org fungerar dock - jag möts av en grå skärm där varken muspekare eller skrivbord syns eller fungerar. Jag väntar 7-8 minuter innan jag trycker på stora knappen och stänger av datorn.

Jag loggar in med Wayland igen och försöker starta Quake 3 en gång till. Krasch. Den här gången tänker jag att jag åtminstone ska rapportera in felet. Jag kanske sitter på något ultraovanligt edgecase som är jätteviktigt att de får reda på (troligen inte…).

Efter att ha fyllt i felorsak och tillåtit åtkomst till diverse information så möts jag av dialogrutan ovan. Jag har inget konto i Bugzilla och jag tänker inte skaffa ett heller. Jag ignorerar dialogrutan och kör vidare men möts snart av följande vy:

Det är nu jag ger upp.

Summering

Jag älskar Linux. Jag gillar verkligen Fedora. Jag gillar tanken på en modern Linuxdistribution som fungerar med tjänster som faktiskt finns i omvärlden. Jag gillar att Fedora äntligen integrerat Flatpaks i sin egna “mjukvarubutik” för det finns massor med kul saker att ladda ned och testa bredvid applikationer som Slack, Discord, Thunderbird och en hel del annat intressant.

Huruvida de som utvecklar Fedora faktiskt testar saker är en annan pilsner. Från början var Fedora en distribution där Red Hat testade saker, där man kunde förvänta sig att saker var trasiga, eller gick sönder, och det fick man vackert leva med. Men det är inte så Fedora Linux marknadsförs längre - nu är det “ditt operativsystem” som är “innovativt” och är byggd med “kärlek”.

Jag ville bara installera Linux och testa att spela lite för att se om det faktiskt gick. Men det gick inte, och Fedora framstår som trasigare än på många år. Missförstå mig rätt - det finns miljontals användare av Fedora, och de finns av en anledning för det finns väldigt mycket bra som faktiskt fungerar väl.

Kanske är jag ett edgecase ändå: jag ville använda min PC utan att ta hänsyn till om den hade Windows 10 eller Fedora Linux 38 installerat. Det kanske är en utopi? Kanske är det så att Linux aldrig riktigt kommer ikapp resten av marknaden (det vill säga: Windows och macOS) ? Kanske är det så att kör man Linux på skrivbordet så får man leva med att det fungerar hyfsat mycket men inte till 100 procent?

Det finns säkert lösningar på allt det jag upplevde under några timmars testande, men inte alla har tid, lust eller tålamod att börja gräva ner sig i det träsket. Jag tillhör tyvärr den kategorin just nu.

Vilken Linuxdistribution ska jag testa nu? Debian, kanske?

Jag återkommer när jag gjort den resan. Det borde inte ta tre år till nästa rapport men jag lovar ingenting.


• • •

© 2000 - 2025 Joakim Melin.

Prenumerera på bloggen via Mastodon.