Joakim Melin
Proxmox-kluster på Raspberry Pi, del 2: konfiguration och slutsatser ⚓
(You want this in English? Here you go.)
Detta är en serie om tre artiklar. Läs även del 1 och del 3.
Så var då det lilla “stativet” för mitt kluster på plats, ihopmonterat och klart för drift. Det är ganska omvälvande att se hur detta lilla paket faktiskt ger mig 16 CPU-kärnor och 32 gigabyte minne att leka med.
Den skarpsynte noterar att det går små sladdar till varje Raspberry Pi på dess vänstra sida, och det är fläktar. Det sitter en liten fläkt ovanför varje Raspberry Pi och detta, utöver kylflänsarna som är monterade på de kretsar som blir varmast under kontinuerlig drift (både fläktar och kylflänsar medföljde i paketet som stativet levererades i).
Jag ska inte hymla med att detta är en aning pilligt att få ihop, och man måste tänka igenom varje steg några gånger innan det sitter i och med att nästa “hylla” ovanför den du just monterat in din Raspberry Pi i ska ha ett antal skruvfästen monterade, och en fläkt.
“Fläktar?!”, kanske du tänker. Jo, jag tänkte samma sak. Man ska inte sticka under stol med att det förtar en del av charmen med en Raspberry Pi men samtidigt ser jag hellre att jag förlänger livslängden på varje Raspberry Pi snarare än att köra dem fläkt- och kylflänslösa för en mer estetisk framtoning. Ska man vara ärlig så spelar det estetiska mindre roll eftersom det efter att man kopplat in alla kablar blir en aning rörigt.
Jag kommer, givetvis, att jobba på kabelhanteringen under sommaren när jag har semester och mer tid. Fläktarna är för övrigt inte knäpptysta men det är heller inte så att de stör oerhört mycket. Kopplar man dem till rätt pinnar på GPIO-anslutningen så kan man också kontrollera och styra dem mer effektivt. Jag kör fläktarna på max hastighet tills vidare men här finns det utrymme för justeringar från min sida.
Installera mera
I del ett av denna bloggpost nämnde jag hur installationen av Ubuntu Server tog enormt lång tid:
Man ska ha i åtanke att Ubuntu Server inte är särskilt snabbt att installera även på en snabb maskin med snabb lagring och/eller snabbt nätverk, och det går inte i blixtens hastighet här heller. 90 minuter efter att jag påbörjat installationen pågår den fortfarande. Det är lätt att tro att installationen hängt sig men både CPU-lasten och I/O på hårddisken är aktiv varför man helt enkelt få ha tålamod. Massor med tålamod…
En sak jag hade missat var att ändra vilken typ av processor den virtuella maskinen skulle använda.
Som synes ska den ställas till “host”, annars är risken att den virtuella maskinen antingen inte startar alls eller tar extremt lång tid på sig att starta. Som exempel kom jag inte förbi den initiala bootskärmen för Rocky Linux 8 utan att ställa in processortypen korrekt. När det väl var gjort tog det inte många sekunder innan man var inne och kunde börja konfigurera saker på allvar:
Installationen av Rocky Linux tog strax under tio minuter. Under den tiden hade inte Ubuntu Server-installationen kommit förbi “sökning efter tredjeparts-drivrutiner”…
Jag tror det blir Rocky Linux för hela slanten för mig även i fortsättningen. Den startar upp snällt under Pimox och mer än så kan man inte begära.
Blir en stackars Raspberry Pi varm under all last? Jo vars, den är ju inte sval direkt. Extra kylning rekommenderas om den ska köras dygnet runt under längre tid. Intressant nog är det inte så att processorkärnorna i denna fantastiska enkortsdator jobbar ihjäl sig även när den står och installerar tre virtuella datorer samtidigt:
Det ska bli intressant att se hur lasten på systemet ter sig senare när det är igång i vardaglig drift.
Nederlag
Det finns, givetvis, saker som inte fungerar som det var tänkt. Ett exempel är den utmärkta övervakningsprogramvaran Zabbix som i kombination med Grafana är ett riktigt trevligt system att köra när man har ett nät med lite servrar och annat. Zabbix agentprogramvara finns, givetvis, för ARM64-plattformen men serverprogramvaran gör det inte. Åtminstone inte ännu.
Några tips
-
Slå av all swappning på SD-kortet med kommandot
swapoff -a
. Därefter skriver dusync
följt avapt-get purge -y dphys-swapfile
. Därefter raderar du swapfilen medrm /var/swap
och slutligen ger dusync
igen. -
Sätt upp en server som tar emot loggfiler via syslog och se till att din(a) Proxmox-pajer skickar ALLA loggar dit genom att lägga till raden
*.* @@ip-adress-till-syslogserver:port
längst ned i /etc/rsyslog.conf. Det innebär att du kommenterar ut raden$IncludeConfig /etc/rsyslog.d/*.conf
i samma fil och ser till att Rsyslog körs med kommandotsystemctl status rsyslog
. Är den inte igång, starta den och se till att den startar automatiskt när systemet bootar med kommandotsystemctl enable rsyslog
.
Dessa två manövrar kan tyckas vara en aning extrema men om det är något man alltid kan räkna med så är det att ett SD-kort, oavsett om det är det billigaste du hittade på Biltema eller det dyraste som gick att köpa på Webhallen så kommer det gå sönder hyfsat snabbt då SD-kort inte klarar särskilt många skrivningar. Detta innebär också, givetvis, att du under inga som helst omständigheter ska köra några virtuella maskiner direkt på SD-kortet. Har du inte möjlighet att sätta upp en NFS-server hemma kan du ansluta en SSD eller snurrdisk via USB-3-porten och skriva allt du behöver skriva där istället. Se bara till att hårddisken du ansluter har en separat strömmatning. Se även mina noteringar i frågan här.
Summering och framtiden
Ska man summera detta projekt så kan det göras så här: detta är inte svårt. Det är några småsaker man måste lära sig men i det stora hela är det verkligen småsaker, varken mer eller mindre.
Än så länge har jag, förutom i fallet Zabbix, inte stött på en enda programvara som inte låter sig installeras. Att man byter arkitektur från X86 till ARM64 är egentligen en ganska stor grej men i praktiken är det som att sitta med en vanlig PC med en AMD- eller Intel-processor under skalet. Fast nu är det betydligt tystare, betydligt billigare och oerhört mer strömsnålt (kör man en Raspberry Pi 4 model b i 400% belastning, det vill säga alla fyra processorkärnorna i max belastning, drar den 6,4 watt).
Framför allt är det en oerhört trevlig känsla att köra ett hyfsat snabbt virtualiseringskluster för drygt 4000 kronor som gör mitt elbolag lite mer ledsna och i det längre perspektivet min plånbok betydligt gladare. Inte är det helt dumt för miljön heller.
Vad innehåller då framtiden för mitt lilla kluster? Troligen köper jag fler Raspberry Pi och expanderar klustret med.
Möjligen får en av dem hantera lagring åt resten av “pajjerna” i klustret men om det blir snabbt nog vågar jag inte sia om ännu men det blir intressant att testa.
Det vore också trevligt att slippa SD-korten i varje Raspberry Pi och det ska, med lite handpåläggning, fungera att man bootar dem och kör hela operativsystemet över nätverket istället för från en lokal lagringsenhet via PXE-protokollet. Om det är en särskilt smart ide med tanke på all annan nätverkstrafik som redan går över samma nätverksport kan man ju fundera över.
Att mata mina “pajer” med ström via nätverkskabeln a’la PoE är minst sagt tilltalande. Detta kräver dock att man köper ett extra litet kort till varje Raspberry Pi, och en switch som stödjer PoE. Kostnaden för detta kontra att köpa en vanlig strömadapter som fungerar med USB-C är sannolikt högre men kabelröran blir garanterat mer hanterbar. En “PoE-hatt” för en Raspberry Pi 4 model b kostar drygt 300 kronor stycket, och en switch 600-1300 kronor, så drygt 2500 kronor får man räkna med för det kalaset.
En tanke som också slog mig är att jag nu använder ARM-processorer i min Apple Watch, min iPhone, min iPad, mina högtalareoch i min Mac. Framtiden anlände snabbare än vad jag hade räknat med, och det känns rätt trevligt för det är kul att hålla på med Raspberry Pi. Man överraskas ständigt med vad den här lilla datorn faktiskt klarar av och än så länge har jag inte “slagit i taket” så att säga.
Proxmox-kluster på Raspberry Pi, del 1: installation ⚓
(You want this in English? Here you go.)
Detta är en serie om tre artiklar. Läs även del 2 och del 3.
Sommaren är här och med det värmen. Jag har “förmånen” att bo i en bostadsrätt som blir varm som en masugn oavsett om elementen är avstängda eller inte (faktum är att jag inte ens behöver ha elementen på om vintern när det är -15 ute…) och att då ha ett antal om än små men ändå värmealstrande HP Microserver-maskiner igång dygnet runt gör inte saken bättre under sommarhalvåret.
Sveriges ständigt högre elpriser gör också att jag alltid är på jakt efter lösningar som gör det möjligt för mig att leka med virtuella servrar samtidigt som jag kan hålla elkostnaderna nere. Detta gjorde att jag började fundera på om jag kunde ersätta min nuvarande HP Microserver generation åtta (med en Xeon E3-processor och maximalt 16GB RAM och fyra 1TB SSD-diskar) med fyra Raspberry Pi 4 model b med 8GB RAM vardera. Fyra sådana hade gett mig dubbelt så mycket minne att leka med jämfört med en Microserver till en betydligt lägre elkostnad och dessutom kan värmealstrandet hållas till ett minimum.
Ett inköp senare (eller två, faktiskt – fyra Raspberry Pi från Webhallen och en monteringssats för fyra enheter samt fyra strömadaptrar från Amazon, de två senare var inget som Webhallen antingen sålde eller hade på lager) så kunde jag börja leka virtualiseringskluster.
Det hela är dock inte så enkelt som att installera detta på fyra x86-maskiner. Först tänkte jag köra VMware ESXi, vilket numera stöds även för ARM och Raspberry Pi, åtminstone i labbsyfte men eftersom jag helst vill kunna köra det hela i en klusterkonfiguration där jag kan migrera maskiner mellan noderna i klustret utan att behöva avregga dem, och sedan importera dem till en annan nod så fick VMware ESXi stryka på foten. Detta på grund av att vCenter, VMware:s programvara för att just hantera kluster, inte är porterat till ARM. Även om programvaran hade funnits så hade den i praktiken tagit upp allt minne på en Raspberry Pi då vCenter kräver åtta gigabyte internminne. Jag övervägde också att bygga det hela på Kubernetes, jag kom en bit med det tidigare när jag satt och labbade med det i vintras, men det känns än så länge som ett eventuellt framtida projekt för en regnig sommar… och kanske fyra Raspberry Pi till.
Jag vill ha igång denna lösning ganska snabbt så istället fick det, lite motvilligt, bli Proxmox igen. Pimox, som porteringen heter, är inte heller den egentligen gjord för produktionssyfte på något sätt men det fungerar att sätta upp det hela i en klusterkonfiguration och det räcker för mig. Givetvis ska man förstå och acceptera att detta är mjukvara som kan paja precis när som helst och inte ha några som helst illusioner om att det är något som kommer fungera 24 timmar om dygnet, 365 dagar om året.
Att installera Pimox är rätt enkelt egentligen. Man laddar ner en aningen patchad version av Raspberry Pi OS (tidigare kallat Raspian) som sedan skrivs till ett SD-kort. All kod och alla instruktioner man behöver finns här och det är rekommenderat att följa guiden på denna sida och inte från någon annan källa då utvecklingen inom detta går snabbt och guider som postats för några månader sedan kan vara inaktuella och därmed gör att installationen inte går igenom.
Efter ett par försök är den första noden i mitt kluster uppe. Eftersom man absolut inte under några som helst omständigheter vill varken skriva loggfiler, ISO-filer eller diskfiler för virtuella maskiner på SD-kortet som är monterat i en Raspberry Pi så kan man antingen köra med SSD-diskar anslutna via USB 3-gränssnittet eller mot en NFS-enhet på exempelvis en Truenas (vilket körs i min andra HP Microserver).
Jag började med att testa det senare och även om en Raspberry Pi endast har ett enda 1Gbit nätverkskort så fungerar det, men det ska i ärlighetens namn sägas att snabbt går det inte. Att köra med en USB-disk som är lokalt ansluten går givetvis betydligt snabbare men där tappar man två saker: redudans i form av en raid-funktion som finns i Truenas-maskinen, och också möjligheten att migrera maskiner mellan noder i klustret automatiskt då detta kräver att alla enheter i klustret opererar utifrån samma lagringsyta (i detta fallet alltså Truenas över NFS från samtidiga klusternoder).
Installera en virtuell maskin
Jag testar att installera Ubuntu Server 22.04 LTS för ARM i en virtuell maskin och eftersom jag tänkte att det kommer fungera precis som vanligt så skapade jag den virtuella maskinen precis som när jag gjorde det i just x86-versionen av Proxmox.
Det visar sig snart att det inte fungerar. Det enda man ser i konsolen för den virtuella maskinen är det ovanstående. Lite efterforskning ger vid handen att alla maskiner måste boota från en UEFI-partition vilken måste skapas när man konfigurerar den virtuella maskinen, och det går heller inte att använda VirtIO eller IDE för hårddisk eller virtuell CD/DVD-enhet utan det är SCSI som gäller. Du hittar instruktioner för detta här.
Efter att fadäsen med fel bootläge och gränssnitt till de virtuella enheterna är avklarad startar faktiskt servern upp och jag kan börja installera Ubuntu Server. Man ska ha i åtanke att Ubuntu Server inte är särskilt snabbt att installera även på en snabb maskin med snabb lagring och/eller snabbt nätverk, och det går inte i blixtens hastighet här heller. 90 minuter efter att jag påbörjat installationen pågår den fortfarande. Det är lätt att tro att installationen hängt sig men både CPU-lasten och I/O på hårddisken är aktiv varför man helt enkelt få ha tålamod. Massor med tålamod…
Varför inte testa andra distributioner då? Jodå – en favorit hos undertecknad är Rocky Linux 8 (tidigare CentOS 8 som numera är död och begraven). Den går faktiskt att installera utan problem i Pimox då den släppts i ARM64-version. 32- eller 64-bitarsversioner av operativsystem är en viktig faktor i det hela – 32-bitars operativsystem går inte att använda över huvudtaget i Pimox. Allt från operativsystemet som allt bygger på till de operativsystem man kör i de virtuella maskinerna måste vara 64-bitars dito, annars går de inte att installera. FreeBSD är en annan favorit och jodå – även den finns i 64-bitarsvariant för ARM (även kallat ARM64) och skall också den testas.
När den första noden nu är uppe och jag kan konstatera att jag kan installera, om än långsamt men ändå, virtuella maskiner i Pimox så kommer nästa steg i installationen: installera de tre andra noderna. För att det ska fungera måste samtliga noder i klustret vara tomma, det vill säga, inte innehålla några virtuella maskiner för då får de inte bli medlemmar i klustret. Det får jag dock be att återkomma till i del två av denna bloggpost som du kan läsa här.
Lägg gärna till denna blogg i din RSS-läsare för att inte missa nästa del… eller något annat som jag får för mig att skriva.
Linux är redo för skrivbordet ⚓
And with the release of Fedora 36, it’s now time to label the distribution for what it has become — an outstanding operating system, regardless if you’ve used Linux or not.
That’s right, I’m here to tell you that Fedora Linux is ready for prime-time and can be used by anyone, no matter if you’ve touched Linux or not.
Jag har testat Fedora 36 ett tag och kan bara hålla med. Det är en imponerande Linuxdistribution som är redo för att användas ute på “skrivborden”.
Andrew Fletcher har lämnat oss ⚓
Det kom plötsligt, och det kom oväntat. Precis som när Florian Schneider lämnade oss för (nästan på dagen) två år sedan möttes beskedet att Andrew ‘Fletch’ Fletcher har avlidit vid en ålder av 60 år med chock och bestörtning. Orsaken till Fletchers död uppges vara “naturliga orsaker”.
Fletcher var en av grundarna till Depeche Mode. Tillsammans med Vince Clarke startade han bandet Composion of Sound till vilket snart Martin Gore rekryterades. Kort där efter blev också Dave Gahan inplockad i bandet som sångare och frontman och bandet hade då bytt namn till Depeche Mode.
Resten av historien gällande Depeche Mode är vid det här laget välkänd – Clarke hoppade av efter ett år och ersattes 1982-83 av Alan Wilder som stannade kvar till 1995. Sedan dess har bandet varit trenne pojkar från förorten Basildon som i medvind och motvind lyckats fortsätta släppa musik som efter albumet Ultra från 1997 blivit allt mer plattare och ointressant för varje album som lanserats. Det sista livstecknet från bandet kom 2017 i form av Spirit som akompanjerades av en efterföljande världsturné. Efter detta har Gahan och Gore ägnat sig åt diverse sidoprojekt, men från Fletcher har det varit tyst.
Kanske har sidoprojekten varit ett sätt för de två övriga herrarna att sysselsätta sig i väntan på… något? Kanske var Fletcher sjuk, kanske kämpade han med ännu en depression som återkommande våldsgästade hans inre, eller så hade de bara inte lust att göra ett album till ihop. Efter över 40 år tillsammans är det inte helt svårt att förstå.
Sedan nyheten om Fletchers bortgång blev känd har han, som sig bör, hyllats och sörjts i både traditionella nyhetsmedier och sociala dito. Han har tackats för den fanastiska musik som Depeche Mode producerat genom åren och han har hyllats för att vara den fantastiska keybordspelaren i bandet. Någon förvirrad själ trodde till och med att han stod bakom “bandets unika och fantastiska sound”, men det visade sig snart att personen i fråga förväxlat Fletcher med Alan Wilder.
Man ska inte underdriva Fletchers betydelse för Depeche Mode. Han var bandets manager och i praktiken den person som den introverte Martin Gore kommunicerade genom när det var något jobbigt som låtskrivaren ville ta upp med resten av bandet. Han medlade i interna konflikter, som den mellan Gore och Gahan när den senare ville börja skriva låtar till Depeche Modes framtida plattor efter 2001 års Exciter, vilket Gore inte var så pigg på. Gahan hotade med att lämna bandet för gott om han inte fick sin vilja fram och genom Fletchers skickliga förhandlande kunde bandet fortsätta släppa sina plattor.
Heder där heder sig bör, dock. Fletcher hade i princip ingenting med att skriva, komponera, spela in, mixa eller producera Depeche Modes musik. Han var för det mesta frånvarande i studion under bandets storhetstid (1987-1995) och när Wilder hoppade av bandet och Gahan var på väg att knarka ihjäl sig fick han sitta i studion dagligen med resterna av Depeche Mode för att se till att något blev gjort. Detta" något" resulterade för övrigt i det fantastiska albumet Ultra från 1997.
Fletcher hade under flera år en mikrofon placerade vid sin synth under bandets livespelningar men ljudet från mikrofonen var antingen lågt eller helt avstängt, och de få tangenter han behövde trycka på under en koncert kunde enkelt ha hanterats av en sequencer. Den enda anledningen till att han skulle ha något att spela var för att han skulle ha något att göra på scen, och när Fletcher hoppade av bandets episka turné 1993-94 på grund av en djup depression så fick bandets assistent Daryl Bamonte hoppa in i Fletchers ställe. Alan Wilder fick jobbet att lära upp Bamonte, som knappt hade spelat keyboard i sitt liv:
While everyone else was sunning themselves on the beach and enjoying a well-earned rest, Daryl and I spent a week cooped up in a hotel room in Hawaii where I taught him the entire set. He subsequently played it perfectly for the rest of the tour – pretty good eh, considering he’d hardly ever played a keyboard before in his life.
Fletcher drog inte jämnt med Wilder och den tidigare var en bidragande orsak till att den senare tröttnade och lämnade bandet den första juli 1995. Med Wilder försvann också gruppens unika sound och musikaliska drivkraft och när Fletcher i en intervju sa att han “inte tänkte göra fler plattor med Wilder” så framstod det en aning löjeväckande med tanke på att Fletcher inte hade någonting att göra med musiken. Kanske trodde han att han hade det, eller så ville han inte framstå som att han inte hade det.
Andrew Fletcher var nämligen den del av Depeche Mode som inte handlade om musiken. Han hanterade gruppdynamiken och affärerna och utan Fletcher hade det inte funnits ett Depeche Mode. Så enkelt är det, och för det ska han ha heder och minnas för sin karriär.
Andrew Fletcher efterlämnar hustru och två barn, och till skillnad från övriga kvarvarande (och före-detta medlemmar i form av Wilder) gifte han sig med sin ungdomskärlek och var fortsatt gift med samma kvinna till sin död, vilket i sig är en prestation värd att nämna.
“… and the home of the brave…” ⚓
© 2000 - 2025 Joakim Melin.
