KVM-Hosting
Består i dag av tre system, en filserver med två blad som funkar som hypervisors.
KVM Hypervisors blade-a-server-3 blade-a-server-4 File Servers mount-kilimanjaro
Design
Systemet kör hypervisors som kör KVM på CentOS 7.1. I dag har vi två blad i Eken som är hypervisors. Själva OS disken ligger via en GlusterFS montering från filservern Mount-Kilimanjaro. I framtiden är förhoppningen att vi ska ha två filservrar för att skapa ett HA-par (mirror, och alla hypervisors klarar av att en maskin går ner).
Då alla hypervisors har samma delad disk så kan vi göra enkel out-of-the-box live migration mellan de fysiska maskinerna vilket gör det möjlighet för oss att migrera runt och uppdatera/boota om/installera om maskiner vid behov utan att ta ner något VM. Det finns dock en del begränsningar, vi har bara 16G RAM på ett blad och om vi använder för mycket så kanske alla VM:s inte får plats på de andra bladen (om vi behöver tömma ett blad för att boota om det). Något annat som är viktigt att veta är att vi kan inte migrera från HostA till HostB om HostB's CPU inte stödjer samma instruktioner. Oklart vad som händer om man försöker. Alla blade-* är identiska.
Skapa ett VM
Fråga
Enklast är att fråga maila staff och be om hjälp, jag (nsg) hjälper gärna till. Antingen hjälper jag dig att skapa det, eller så sätter jag upp det åt dig.
Gör det själv
Använd libvirt för att skapa ett VM. Jag gillar när det är enkelt så jag använder det utmärka verktyget virt-manager. Men innan vi börjar, hämta ut dina root biljetter och kolla att du kan logga in.
$ kinit nsg/root $ ssh root@blade-a-server-3.stacken.kth.se hostname
virt-manager sätter själv upp en ssh-tunnel åt dig, så funkar ssh så ska det funka i virt-manager med. Här under ser du ett exempel där jag är ansluten till båda bladen:
Exempel på hur man lägger till en maskin, svårare än så är det inte....
Hur du sedan skapar ett VM tror jag att du listar ut själv, men några saker som är bra och veta:
- Du vill lägga din disk på storage poolen "glusterfs".
- Lägg ditt nic på bridge0, det är en brygga som ligger direkt på Stackens nät (förmodligen default).
- Välj gärna virtio om ditt OS stödjer det, det går fortare.
- Slutligen, stäng av cache på disken. Vi behöver ha den av om live migration ska funka (se bild).
Bra och veta
Om du har ett VM så förutsätt följande saker:
- OS kan bootas om, det bör hända mycket sällan men se till att alla tjänster startar korrekt igen. T.ex. det här kan hända om vi får strömavbrott, eller om ett blad går sönder. Nertiden kommer troligtvis bli mycket kort då vi kan starta upp VM:et på ett annat blad.
- Jag förutsätter att du har cache avstängt på disken, kan jag inte göra live migration på grund av det så kommer jag stänga av ditt vm (utan att fråga) och slå av cache åt dig.
- Svarar inte ditt VM på ACPI och stänger av sig snyggt så kommer jag stänga av det brutalt.
- Gör inga dumheter
Några andra bra saker och veta är:
Vi har gott om disk, men RAM och CPU är en begränsad resurs så försök att vara återhållsam här. Klarar du dig på 256M RAM så välj inte 2G o.s.v. Det är trivialt att lägga till mer RAM senare om behovet finns.