• Multikernel Linux låter flera Linux-kärnor dela på samma dator

    Med Multikernel Linux kan flera fristående Linux-kärnor köras samtidigt på samma fysiska dator – utan virtuella maskiner eller en hypervisor. Den första offentliga versionen bygger på Linux 7.0 och visar lovande resultat, men tekniken befinner sig fortfarande på experimentstadiet.

    En vanlig Linux-dator kör en enda kärna som ansvarar för allt från processorer och minne till nätverk, lagring och anslutna enheter. Det spelar ingen roll om datorn har fyra eller hundra processorkärnor – alla resurser styrs normalt av samma Linux-kärna.

    Multikernel Linux tar ett helt annat grepp. I stället för att låta en enda kärna sköta hela datorn delas hårdvaran upp mellan flera självständiga Linux-kärnor. Varje kärna får sina egna processorkärnor, sitt eget minne och vid behov egna PCI-enheter.

    Den första offentliga versionen har fått beteckningen v7.0-mk2 och bygger på Linux 7.0. För närvarande stöds endast datorer med arkitekturen x86_64. Utvecklarnas lanseringsmeddelande finns i Linux-kärnans e-postarkiv.

    Som flera datorer inuti samma dator

    Det enklaste sättet att förstå tekniken är att tänka sig en stor fysisk server som delas upp i flera mindre datorer.

    En Linux-kärna fungerar som värd och förfogar över en pool med processorer, minne och enheter. Värdkärnan kan exempelvis ge fyra processorkärnor och två gigabyte minne till en andra Linux-kärna. En tredje kärna kan samtidigt få åtta processorkärnor, mer minne och direkt tillgång till ett nätverkskort eller en grafikprocessor.

    Varje Linux-kärna arbetar sedan självständigt med sin egen schemaläggare, nätverksstack och uppsättning processer.

    Det kan påminna om vanliga virtuella maskiner, men det finns en viktig skillnad: de extra Linux-kärnorna körs inte ovanpå en hypervisor som KVM, VMware eller Hyper-V. De arbetar direkt mot den tilldelade hårdvaran.

    Nya kärnor startas med en utökad variant av Linux befintliga kexec-funktion. Normalt används kexec för att starta en ny kärna utan att först gå genom datorns BIOS eller UEFI. I Multikernel har mekanismen byggts ut så att den nya kärnan kan startas bredvid värdkärnan i stället för att ersätta den.

    Resurserna kan flyttas

    Uppdelningen behöver inte vara permanent. En instans kan stängas av och lämna tillbaka sina processorkärnor, sitt minne och sina enheter till värdkärnan. Resurserna kan därefter användas för att starta en ny instans, möjligen med en annan version eller konfiguration av Linux-kärnan.

    Det öppnar för servrar där olika arbetsuppgifter får specialanpassade kärnor. En webbserver kan exempelvis använda en kärna optimerad för nätverkstrafik, medan en databas får en annan kärna med inställningar anpassade för lagring och minneshantering.

    Projektets verktyg Kerf används för att skapa instanser, tilldela resurser och starta kärnorna. Den som vill prova behöver själv kompilera kärnan med Multikernel-stödet aktiverat. Projektet har publicerat en komma igång-guide med bygg- och installationsanvisningar.

    Snabbare än KVM i vissa tester

    Utvecklarna har även jämfört Multikernel med en välkonfigurerad virtuell KVM-maskin. Testerna genomfördes på en server med två Intel Xeon Gold 5418Y-processorer. Båda miljöerna fick två processorkärnor, en gigabyte minne och samma kärnversion.

    Minneslatens och minnesbandbredd var i stort sett identiska. Det visar hur effektiv modern hårdvaruvirtualisering har blivit när processorn och minnet får arbeta utan många avbrott.

    Större skillnader syntes vid täta processbyten och kommunikation mellan processer:

    • Ett kontextbyte mellan två processer tog 1,37 mikrosekunder med Multikernel och 3,42 mikrosekunder i KVM.
    • Kommunikation genom en pipe tog 3,24 mikrosekunder med Multikernel och 7,06 mikrosekunder i KVM.
    • Kommunikation genom en lokal Unix-socket tog 4,81 mikrosekunder med Multikernel och 7,48 mikrosekunder i KVM.

    En mikrosekund är en miljondels sekund. Skillnaden är alltså omöjlig att märka vid en enstaka operation, men i servrar där miljontals processbyten och meddelanden sker varje sekund kan den sammanlagda effekten bli betydande.

    Varför blir den virtuella maskinen långsammare?

    En stor del av skillnaden beror på hur vilande virtuella processorer väcks.

    När en virtuell KVM-processor inte har något att göra lämnar den normalt den virtuella maskinen och överlämnar kontrollen till värdsystemet. När processorn behövs igen måste hypervisorn väcka den och återgå till den virtuella miljön. Denna övergång kostar lite tid.

    Multikernel-instansen styr sina fysiska processorkärnor direkt och behöver inte göra samma resa genom en hypervisor.

    KVM kan ställas in för att låta de virtuella processorerna vänta aktivt i stället för att somna. Då minskar en stor del av skillnaden, men processorkärnorna ser samtidigt fullt belastade ut och förbrukar mer energi. I projektets test ökade effektförbrukningen med upp till 19 watt.

    Resultaten betyder därför inte att Multikernel alltid är flera gånger snabbare än KVM. Skillnaden beror på arbetsbelastningen och hur den virtuella maskinen är konfigurerad. Testerna är dessutom genomförda och publicerade av Multikernel-projektet självt och bör betraktas som projektets egna resultat tills de har bekräftats genom fler oberoende tester. Den fullständiga jämförelsen mellan Multikernel och KVM beskriver både resultaten och kompromisserna kring strömförbrukning.

    Inte samma sak som containrar

    Containrar som Docker delar värdsystemets Linux-kärna. Det gör dem små och snabba, men innebär också att alla containrar är beroende av samma kärna.

    Virtuella maskiner kan köra var sin kärna och ger starkare avskiljning, men lägger till en hypervisor mellan operativsystemet och hårdvaran.

    Multikernel försöker kombinera delar av båda modellerna. Varje instans får en egen Linux-kärna, samtidigt som den körs direkt på tilldelad hårdvara. Om en kärna kraschar eller drabbas av ett problem är tanken att övriga kärnor ska kunna fortsätta arbeta.

    Det gör tekniken intressant för stora servrar, molntjänster, databaser, AI-system och andra miljöer där många processorkärnor ska utnyttjas med låg latens.

    Fortfarande ett experimentellt projekt

    Multikernel Linux är ännu inte en del av den officiella Linux-kärnan från kernel.org. Den första offentliga versionen ligger i projektets separata källkodsträd på GitHub.

    Stödet är än så länge begränsat till x86_64, även om gränssnitten har delats upp för att underlätta framtida stöd för andra processorarkitekturer. Det återstår också omfattande arbete med drivrutiner, säkerhet, stabilitet och verktyg innan tekniken kan betraktas som ett moget alternativ till etablerad virtualisering.

    Den första offentliga versionen är ändå ett viktigt steg. Multikernel visar att en kraftfull server inte nödvändigtvis måste välja mellan en enda stor Linux-kärna och traditionella virtuella maskiner. Det kan finnas en tredje väg: flera riktiga Linux-kärnor som arbetar sida vid sida direkt på samma hårdvara.

    > Teknisk fakta: Multikernel Linux

    Version:
    v7.0-mk2
    Bygger på:
    Linux 7.0
    Arkitektur:
    x86_64
    Princip:
    Flera självständiga Linux-kärnor körs samtidigt på samma dator.
    Virtualisering:
    Ingen hypervisor krävs.
    Resurser:
    Varje kärna kan tilldelas egna processorkärnor, eget minne och egna PCI-enheter.
    Startmetod:
    Utökad Linux kexec-funktion.
    Hantering:
    Kommandoradsverktyget Kerf.
    Fördel:
    Direkt tillgång till hårdvaran och låg latens utan traditionell virtualisering.
    Status:
    Experimentellt projekt och ännu inte en del av den officiella Linux-kärnan.

    [SYSTEM] Flera kärnor. En fysisk dator. Ingen hypervisor.

  • Microsoft bygger om Azure Linux – version 4 tar steget mot Fedora

    Microsoft tar nästa steg i sin Linuxsatsning. Den kommande Azure Linux 4 får en tydligare Fedora-baserad grund, med standardiserade RPM-verktyg och paketkällor hämtade från Fedora-ekosystemet. För Microsoft innebär det en mer etablerad byggmodell för molnplattformen Azure – samtidigt som distributionen fortsatt anpassas för säkerhet, drift och storskaliga arbetslaster i Microsofts egen infrastruktur.

    Microsofts egen Linuxdistribution Azure Linux är på väg in i en ny fas. I utvecklingsgrenen för Azure Linux 4 bekräftas nu att distributionen får en tydligare koppling till Fedora. Det innebär inte att Azure Linux blir en vanlig Fedora-installation, men grunden för pakethantering, byggsystem och källkod hämtas nu i större utsträckning från Fedora-ekosystemet.

    Azure Linux, som tidigare hette CBL-Mariner, används av Microsoft för molnrelaterade arbetslaster i Azure. Det handlar bland annat om virtuella maskiner, containrar och system som körs direkt på fysisk hårdvara. Distributionen är alltså inte i första hand tänkt som ett vanligt skrivbords-Linux för hemmabruk, utan som ett specialiserat operativsystem för Microsofts molninfrastruktur.

    Den stora nyheten i Azure Linux 4 är att Microsoft beskriver systemet som en öppen Linuxdistribution byggd och optimerad för Azure, med källor hämtade från Fedora Linux. Det är ett tydligt teknikskifte jämfört med tidigare versioner.

    Vad betyder Fedora-baserad?

    När man säger att Azure Linux 4 blir Fedora-baserad betyder det inte nödvändigtvis att den blir identisk med Fedora. Fedora är en välkänd Linuxdistribution som fungerar som teknisk föregångare till Red Hat Enterprise Linux. Den använder RPM-paket och verktyg som rpmbuild, mock och Koji för att bygga och hantera programvara.

    Microsoft verkar nu vilja använda samma typ av paketeringsmodell och byggkedja. Det gör att Azure Linux 4 får en mer standardiserad grund, samtidigt som Microsoft kan lägga till egna anpassningar för Azure.

    Man kan se det som att Microsoft bygger ett specialfordon på en redan etablerad teknisk plattform. Motorn och många grundkomponenter kommer från Fedora-världen, men fordonet trimmas och anpassas för Microsofts egna molnvägar.

    RPM fortsätter vara grunden

    Azure Linux 4 fortsätter att vara en RPM-baserad distribution. RPM är ett paketformat som används av bland annat Fedora, Red Hat Enterprise Linux, AlmaLinux, Rocky Linux och openSUSE.

    Det betyder att Azure Linux ligger närmare Red Hat/Fedora-världen än Debian/Ubuntu-världen. Där Ubuntu använder DEB-paket och verktyg som apt, använder Fedora- och RHEL-familjen RPM-paket och verktyg som dnf, rpm och olika byggsystem för RPM-paket.

    För Microsoft innebär det här sannolikt en enklare väg till ett moget ekosystem för paketering, säkerhetsuppdateringar och automatiserade byggen.

    TOML-filer och överlagringar

    I utvecklingsmodellen för Azure Linux 4 används TOML-filer för att beskriva systemets konfiguration. TOML är ett textbaserat format som ofta används för inställningsfiler eftersom det är relativt lättläst både för människor och program.

    Microsoft använder också så kallade overlays, eller överlagringar, ovanpå Fedoras paketeringskällor. Det betyder att man utgår från Fedoras befintliga paketbeskrivningar och sedan lägger till Azure-specifika ändringar där det behövs.

    En viktig poäng är att Microsoft säger sig vilja hålla dessa ändringar begränsade. Det minskar risken för att Azure Linux glider för långt bort från Fedora och blir svår att underhålla.

    Mer öppenhet i byggprocessen

    En annan intressant detalj är att RPM-specfiler genereras automatiskt genom att Azure Linux överlagringar appliceras på Fedoras paketeringskällor. Dessa filer checkas sedan in i arkivet för transparens och granskning.

    Det är viktigt ur ett säkerhets- och revisionsperspektiv. När en distribution används i molninfrastruktur måste det gå att förstå exakt hur paket har byggts, vilka ändringar som gjorts och var koden kommer ifrån.

    Genom att använda etablerade verktyg som mock, rpmbuild och Koji får Microsoft också en byggmiljö som många Linuxutvecklare redan känner igen.

    Varför gör Microsoft detta?

    Det finns flera tänkbara skäl. Ett är att Fedora redan har ett stort och aktivt paketeringsekosystem. Genom att bygga närmare Fedora kan Microsoft dra nytta av befintligt arbete i stället för att underhålla allt själv.

    Ett annat skäl är standardisering. Om Azure Linux använder mer välkända RPM-verktyg blir det lättare för utvecklare, säkerhetsgranskare och drifttekniker att förstå hur systemet fungerar.

    Samtidigt vill Microsoft behålla kontroll över sådant som är särskilt viktigt för Azure: säkerhet, efterlevnad av regler, molnintegration, kärnutveckling, livscykelhantering och drift i stor skala.

    Inte färdig för nedladdning ännu

    Azure Linux 4 är fortfarande under utveckling och är ännu inte tillgänglig som färdig nedladdning. Microsoft rekommenderar därför användare att fortsätta använda Azure Linux 3 tills vidare.

    Det innebär att Azure Linux 4 just nu främst är intressant för utvecklare, systemadministratörer och andra som följer Microsofts Linuxarbete på nära håll.

    Microsoft och Linux – från motståndare till storanvändare

    Att Microsoft utvecklar en egen Linuxdistribution är i sig ett tydligt tecken på hur mycket teknikvärlden har förändrats. För många år sedan sågs Microsoft och Linux ofta som motpoler. I dag använder Microsoft Linux i stor skala i sin molnplattform, bidrar till öppen källkod och utvecklar egna Linuxbaserade system.

    Azure Linux 4 visar att Microsoft inte bara använder Linux, utan också arbetar allt mer systematiskt med Linux som en central del av sin infrastruktur.

    Sammanfattning

    Azure Linux 4 markerar ett viktigt steg för Microsofts Linuxstrategi. Genom att bygga närmare Fedora får distributionen en mer etablerad RPM-baserad grund, samtidigt som Microsoft behåller möjligheten att göra egna Azure-anpassningar.

    För vanliga användare märks förändringen kanske inte direkt. Men för utvecklare, molnarkitekter och Linuxadministratörer är det en tydlig signal: Microsoft fortsätter att satsa tungt på Linux, men vill göra det med mer standardiserade verktyg och närmare koppling till ett stort öppet ekosystem.

    https://pagure.io/fesco/issue/3409

    Teknisk faktaruta: Azure Linux 4

    Namn: Azure Linux 4

    Utvecklare: Microsoft

    Tidigare namn: CBL-Mariner

    Typ: Linuxdistribution optimerad för Microsoft Azure

    Ny grund: Källor hämtade från Fedora Linux

    Paketformat: RPM

    Byggverktyg: mock, rpmbuild och Koji

    Konfiguration: TOML-filer och Azure-specifika overlays

    Målområde: Virtuella maskiner, containrar, bare-metal och molndrift

    Status: Under utveckling, inte färdig för vanlig nedladdning

    Rekommenderad version tills vidare: Azure Linux 3

Etikett: bare-metal

  • Multikernel Linux låter flera Linux-kärnor dela på samma dator

    Med Multikernel Linux kan flera fristående Linux-kärnor köras samtidigt på samma fysiska dator – utan virtuella maskiner eller en hypervisor. Den första offentliga versionen bygger på Linux 7.0 och visar lovande resultat, men tekniken befinner sig fortfarande på experimentstadiet. En vanlig Linux-dator kör en enda kärna som ansvarar för allt från processorer och minne till…

  • Microsoft bygger om Azure Linux – version 4 tar steget mot Fedora

    Microsoft tar nästa steg i sin Linuxsatsning. Den kommande Azure Linux 4 får en tydligare Fedora-baserad grund, med standardiserade RPM-verktyg och paketkällor hämtade från Fedora-ekosystemet. För Microsoft innebär det en mer etablerad byggmodell för molnplattformen Azure – samtidigt som distributionen fortsatt anpassas för säkerhet, drift och storskaliga arbetslaster i Microsofts egen infrastruktur. Microsofts egen Linuxdistribution…