2015-07-20
Guide

Från VMware till KVM – konvertera servrar

I den första delen av min lilla “serie” om hur man går från VMware till KVM gick jag igenom hur man satte upp KVM och installerade lite servrar. I den här delen tänkte jag gå igenom hur man konverterar servrar från VMware till KVM.

Det låter lite konstigt va – att konvertera från en virtualiseringsplattform till en annan men det är i själva verket inte särskilt underligt numera – Microsoft och VMware har båda verktyg för att konvertera servrar från respektive konkurrents plattformar och givetvis går detta också att göra under KVM.

Du kan givetvis konvertera servrar av alla de slag från VMware till KVM men i det här exemplet tänkte jag prata lite om Windows-baserade servrar mest för att de är lite extra jobbiga att konvertera.

Förbered dina servrar

Det första du ska göra är inte att stänga av din WMware-baserade server utan istället att installera ett litet paket vid namn MergeIDE 1. Detta ska sedan packas upp och installeras på varje Windows-server som idag körs under VMware. Därefter kan du stänga av Windows-servern och sedan kopiera den från den nuvarande lagringen till den lagring du använder för KVM om dessa två inte råka vara samma lagring.

Om det är en stor server, vilket ju Windows-servrar tenderar att vara, så lär det ta en stund. Är du smart så SSH:ar du in till din VMware-server och gör det via kommandoprompten istället för att göra det via vSphere Admin eller vCenter. Detta förutsätter att du antingen har monterat upp din nya KVM-lagring via NFS eller att du kopierar filerna med SCP. Det senare lär ta längre tid än det tidigare.

När detta är klart har du nu en packe stora filer på din KVM-lagring. De kan se ut så här:

Det vill säga, exakt samma filer som VMware använder.

Det finns nu två saker du kan göra. Det ena är att konvertera filerna från det så kallade RAW-formatet som VMDK är till 2 qcow2 som KVM använder, eller så kan du köra vidare med VMDK – det fungerar faktiskt bra det med.

Det andra är att antingen skapa en XML-fil som definierar din Windows-server och som du sedan importerar med kommandot virsh define /path/till/filnamn.xml, eller så skapar du en ny sever med virt-manager och lägger till den befintliga VMDK-filen som servern bootar från. Notera att du i båda fallen måste sätta hårddisken till IDE i det här läget och inte virtio, vilket du kan ändra senare. Hur XML-filen ska se ut kan du se här 3.

Notera att det är ett antal saker du måste kopiera från .vmx-filen för din VMware-server till motsvarande server i KVM. Det handlar närmare bestämt om UUID, MAC-adressen för ditt nätverkskort, vilken mängd minne och hur många CPU:er servern ska ha. Notera också att UUID-formatet skiljer sig från VMware:s .vmx-fil och motsvarande definitionsfil för KVM.

Nu kan du testa att starta din server.

När det inte fungerar

Det är, trots att du installerat IDE-drivrutinerna i din virtuella server innan du stängde ned den och tog bort den ur VMware, högst troligt att din server kommer krascha redan under uppstarten. I det läget rekommenderar jag att du testar att medelst Virt-manager exempelvis tar bort hårddisken och sedan lägger till den igen.

Kanske vill din server inte starta upp över huvudtaget. Det är inte ovanligt att man försöker starta sin server från fel hårddisk. Ta min Windowsserver som exempel – i .vmx-filen finns följande rad:

scsi0:0.fileName = "dc01.dc.joacimmelin.se-000001.vmdk"

Då kan man ju anta att detta är hårddiskfilen servern ska starta från. Men så enkelt är det inte. En titt i dc01.dc.joacimmelin.se-000001.vmdk visar följande:

parentFileNameHint="dc01.dc.joacimmelin.se.vmdk"

Ok, men då är det väl den hårddisken KVM ska försöka starta från? Icke så – en koll i den filen visar vilken hårddisk du egentligen ska starta från:

RW 266338304 VMFS "dc01.dc.joacimmelin.se-flat.vmdk"

Således blir koden i XML-filen för din Windows-server i KVM som följer:

<source file='/path/till/dc01.dc.joacimmelin.se/dc01.dc.joacimmelin.se-flat.vmdk'/>

Har du valt rätt hårddisk och lagt till den till maskinen finns det inte mycket som ska kunna stoppa dig från att starta upp din Windows-maskin under KVM. Fortsätter det strula kan du till och med skapa om hela maskinen med Virt-manager men se till att UUID-värdena stämmer mellan VMware-konfigurationen och konfigurationen i KVM. I värsta fall får du konfigurera om nätverkskortet i Windows när servern väl är uppstartad.

När du fått igång Windows-servern är det dags att göra lite fler saker. Börja med att avinstallera VMware:s agentprogramvara och installera 4 drivrutiner för nätverk och annat som RedHat utvecklat. Lägg ISO-filen på samma lagring som din KVM-server använder och anslut sedan ISO-filen som en CD-ROM-enhet till din Windowsserver.

I Windows öppnar du därefter Device Manager i Windows och högerklicka på datorns namn och välj Add legacy hardware.

Välj att du vill installera hårdvara du väljer från en lista, välj sedan Show all devices och därefter klickar du på Have disk. Navigera till CD-ROM-enheten som nu ska synas i Windows och välj att installera Baloon-drivrutinen som finns under mappen Baloon. Välj rätt version av Windows och sedan installerar du drivrutinen.

Du måste också installera drivrutinen för nätverkskortet som sannolikt inte kommer att fungera. Högerklicka på nätverkskortet och installera den drivrutin som finns under mappen NetKVM för din version av Windows.

Slutligen kan du också installera agent-programvaran som finns under guest-agent.

Summering

Det är lite pilligt men jag har migrerat två Windows-servrar, en Windows Server 2008 R2 och en Windows 2012 R2, till KVM på det här sättet. En fördel med att kopiera servern till KVM-lagringen framför att flytta den är att du, om importen till KVM drar ut på tiden och strular, kan starta upp servern under VMware igen tills du har möjlighet att testa importen igen. En annan fördel med att kopiera framför att flytta serverns filer är att VMware:s flyttprocedur kan resultera i att filer försvinner om VMware:s vSphere Client-programvara får för sig att flytten misslyckats.



Macpro är annonsfri för att göra din läsupplevelse bättre.
Läs mer här om hur du hjälper Macpro förbli annonsfri


© 2004 - 2017 Joacim Melin