Ur arkivet: Den sorgliga sagan som är Apple:s support – the never ending story ☍
Jag skrev detta i oktober 2004, drygt ett år efter att jag köpt en sprillans ny 12" Powerbook G4:
För en tid sen så lade batteriet i min 12" PowerBook av totalt. Jag fick kanske ut 30 minuters laddning ur ett batteri som inte ens var ett år gammalt så jag ringde Apple:s Support, fick för tredje gången förklara att jo, jag har AppleCare-paket till PowerBook:en men ni har reggat paketet på min gamla G3 PowerBook som jag inte äger längre! (de har lovat att fixa detta, för övrigt. Jag har faxat in pappret med min aktiveringskod för Apple Care till supporten tre gånger nu…).
Det är snart 18 år sedan jag skrev detta. Hade helt glömt bort det men det är kul att titta tillbaka på ett Apple som (förhoppningsvis, och samtidigt tyvärr) inte finns längre. Att jag skrev som en kratta på den tiden kan vi väl lämna därhän hoppas jag…
Proxmox-kluster på Raspberry Pi, del 3: ytterligare observationer ☍
Detta är en serie om tre artiklar. Läs även del 1 och del 2.
Efter att mina två första bloggposter om mitt lilla Pimox-kluster (Raspberry Pi + Proxmox = Pimox) så har jag gjort ytterligare observationer och även fått en del frågor.
“I’m Givin’ Her All She’s Got, Captain!”
Den första observationen jag gjorde var rätt omedelbar: att ansluta en SSD-disk via USB-3 och låta en Raspberry Pi mata ström till SSD-disken är en dum ide. Jag upptäckte detta när jag ville försöka migrera tillbaka en virtuell maskin från SSD-disken till min NAS där alla andra virtuella maskiner körs. SSD-disken försvann helt enkelt som monterad enhet, och den virtuella maskinen kunde “räddas” genom att jag anslöt SSD-disken till min laptop som kör Linux. Så när jag i del två av denna artikelserie skrev detta:
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.
… så borde jag ha lagt till detta: se till att hårddisken har en separat strömmatning. Jag har lagt till det nu.
Prestanda så det räcker
Den andra observationen jag gjort är att det faktiskt går att köra hyfsat tunga grejer på en virtuell maskin på en Raspberry Pi. Ett exempel på detta är min Mastodon-instans som sakta men säkert börjar få allt fler användare. Mastodon är inte supertungt att köra som sådant men det är rätt mycket synkande av text och bilder fram och tillbaka, vilket är en del av att köra en Mastodon-server i federerat läge. Detta kräver nätverksprestanda och gott om läsningar och skrivningar på disk.
Detta är användadegrafen på den Raspberry Pi som jag bland annat kör Mastodon-maskinen på. Som synes är lasten hyfsat konstant (som alla laster, verkar det som.. hö hö), minnesanvändningen likaså och nätverkstrafiken är ibland hög men för det mesta ganska låg.
Jag kan ärligt säga att Mastodon i en virtuell maskin på en Raspberry Pi inte känns särskilt mycket (om ens alls) långsammare jämfört att köra det hela på en virtuell maskin under VMware ESXi på en Xeon-processor som jag gjorde tidigare.
Kabeldragning och strömmatning
Min tredje observation är att kabeldragning till en bunt Raspberry Pi är en aning knepigare än man kan tro. Detta eftersom de kablar jag använder är av modell KAT-6 och de är så styva så de kan välta stativet med mina fyra Raspberry Pi. Detta är en aning suboptimalt.
Jag har därför bestämt mig för att investera i fyra PoE-hattar för mina fyra Raspberry Pi. Det kombinerat med mindre vridstyva nätverkskablar och en PoE-switch kommer sannolikt göra underverk för min installation.
Det enda jag måste tänka på då är att fläktarna som är inbyggda i stativet måste tas bort då de helt enkelt inte får plats längre. Jag kan leva med det och samtidigt hoppas på att mina Raspberry Pi i övrigt inte blir för varma. Jag har valt att inte överklocka processorerna på mina Raspberry Pi, åtminstone inte ännu. Känner inte att det behövs, faktiskt.
Temperatur
-“Hur varma blir de?” är en fråga jag fått. Jag har själv också funderat på hur varma mina Raspberry Pi-enheter egentligen blir, kylflänsar och fläktar till trots. Så här är en liten tabell:
Nod | CPU | GPU |
---|---|---|
node01 | 44,8 | 45 |
node02 | 45,7 | 49 |
node03 | 45,2 | 47 |
node04 | 47,2 | 48 |
Under 50 grader får väl anses vara okej.
Jag kommer sannolikt att fortsätta posta små och lite större observationer gällande mitt PiMox-kluster i framtiden. Se till att lägga till denna blogg i din RSS-läsare för att inte missa det… eller något annat som jag får för mig att skriva.
Jockes Trynröra ☍
Jag kallar denna skapelse för Trynröra, som en sorts ersättare till Gubbröra fast med gris istället för fisk och ägg.
En mer civiliserad röra för en mer civiliserad tid, kan man säga.
Ingredienserna är som följer:
Kapris, knaperstekt bacon, majonäs, rödlök, dill, gräslök, kräm fräääsch, salt, peppar.
Det finns inga regler för hur mycket du ska ha av varje utan ös på och smaka av vart efter. Givetvis ska det serveras på ett mörkare bröd, typ rågbröd eller kavring, eller ett hederligt knäckebröd.
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.
