-
Virtuaalikoneiden levykuvien luominen, muuntaminen, lataaminen ja jakaminen
Virtuaalikonelevykuvien luominen, muuntaminen, lataaminen palveluun ja jakaminen
Tässä artikkelissa kerrotaan, miten levykuvia hallitaan Poudassa.
Levykuvien luominen
Uusien virtuaalikonelevykuvien luomiseen on kaksi eri vaihtoehtoa: levykuvan luominen alusta alkaen sekä virtuaalikoneen käynnistäminen olemassa olevan levykuvan pohjalta, muutosten tekeminen käynnissä olevaan koneeseen ja muutosten tallentaminen uutena levykuvana luomalla tilannevedos.
Levykuvan luominen olemassa olevan levykuvan pohjalta
Käynnistä virtuaalikone käyttäen jotakin saatavilla olevista levykuvista joko Horizon-selainkäyttöliittymän tai komentorivikäyttöliittymän kautta.
Instanssin käynnistäminen komentorivillä:
openstack server create --flavor <flavor> \
--image <image uuid> \
--key-name <key name> \
--nic net-id=<name of network> \
--security-group default \
--security-group <additional security group> <name of server>
Kirjaudu sisään ja tee tarvittavat muutokset. Jotta tilannevedokset olisivat yhtenäisiä, ne tulisi luoda vain sammutetuista instansseista. Sammuta ensin instanssisi:
Luo sitten tilannevedos koneen nykyisestä tilasta:
Tilannevedoksen luominen kestää jonkin aikaa. Kun se on valmis, se näkyy uutena levykuvana. Jos tarvitset alkuperäisen instanssin, voit käynnistää sen tilannevedoksen luomisen jälkeen.
Verkkokäyttöliittymässä kohdassa Compute | Instances instanssikohtaiset Create Snapshot -valikkokohdat tekevät saman kuin yllä oleva CLI-komento. Luodut tilannevedokset näkyvät osiossa Compute | Images.

Levykuvan luominen alusta alkaen
Levykuvien luomiseen alusta alkaen on useita työkaluja. Nämä työkalut voidaan jakaa työkaluihin, joissa käyttöjärjestelmää ajetaan virtuaalikoneessa levykuvan määrittämiseksi, ja työkaluihin, jotka ottavat pohjalevykuvan ja tekevät siihen muutoksia ilman virtuaalikoneen ajamista. Kutsumme näitä "asennuspohjaisiksi työkaluiksi" ja "pohjalevykuvatyökaluiksi".
| Asennuspohjaiset työkalut | Pohjalevykuvatyökalut | |
|---|---|---|
| Edut |
|
|
| Haitat |
|
|
| Esimerkkejä | virt-install, virt-manager, VirtualBox | diskimage-builder, virt-builder |
Yleinen työnkulku asennuspohjaisia työkaluja käytettäessä:
- Hanki asennusmedia tai verkkoasennuslinkki.
- Käynnistä virtuaalikone ja osoita se asennusmediaan tai verkkoasennuslinkkiin.
- Käy asennustyökalu läpi.
- Tämä vaihe voidaan haluttaessa automatisoida esimerkiksi Kickstart-työkalulla.
- Kun asennus on valmis, sammuta VM ja käytä lisätyökaluja levykuvan valmistelemiseksi pilvikäyttöön.
Yleinen työnkulku pohjalevykuvatyökaluja käytettäessä:
- Mukauta halutessasi asetustiedostoja, joita käytetään lopullisen levykuvan luomiseen.
- Määritä sopivat mukautusparametrit.
- Suorita komento lopullisen levykuvan luomiseksi.
Saat lisätietoja levykuvien luomisesta erittäin perusteellisesta OpenStack virtual machine image guide -oppaasta. Katso erityisesti luvut creating images manually ja tool support for creating images.
Huomioita, jotka kannattaa pitää mielessä luotaessa levykuvia alusta alkaen
Nämä huomiot tarvitsee yleensä ottaa huomioon vain käytettäessä asennuspohjaisia levykuvien luontimenetelmiä. Pohjalevykuvia käyttävät työkalut on yleensä suunniteltu nimenomaan pilviympäristöihin sopivien levykuvien luomiseen, joten ne huolehtivat näistä asioista puolestasi. Jos päätät käyttää asennuspohjaista levykuvanluontimenetelmää, kannattaa tutustua erinomaiseen virt-sysprep-työkaluun, joka hoitaa suurimman osan pilvikäyttöön tarvittavista muutoksista yhdellä komentorivikomennolla. Tässä luvussa luetellaan joitakin huomioita, jotka on käsiteltävä ennen kuin levykuva on valmis pilviympäristöihin.
cloud-init
On olemassa työkalu nimeltä cloud-init, joka on asennettava kaikkiin levykuviin, joita käytetään Pouta-pilviympäristöissä. Sitä käytetään tiettyihin tehtäviin, jotka on suoritettava, kun virtuaalikone käynnistyy ensimmäisen kerran, kuten SSH-isäntäavainten luomiseen ja käyttäjän julkisten SSH-avainten lisäämiseen.
Käyttäjätilit (voidaan tehdä virt-sysprep-työkalulla)
Pilvilevykuvissa tulisi olla vain minimaalinen joukko käyttäjätilejä. Todennäköisesti niissä tulisi olla vain yksi tavallinen yleiskäyttöinen käyttäjätili (esim. "cloud-user" CSC:n tarjoamissa oletuslevykuvissa) sekä root-käyttäjätili.
SSH-isäntäavaimet (voidaan tehdä virt-sysprep-työkalulla)
Pilvessä käytettävät levykuvat eivät saa sisältää SSH-isäntäavaimia, koska tämä tarkoittaisi, että jokaisella levykuvasta käynnistetyllä palvelimella olisi SSH:n näkökulmasta sama identiteetti. Tämä on myös tietoturvariski, sillä kuka tahansa levykuvatiedostoon pääsevä voisi esiintyä minä tahansa tästä levykuvasta käynnistetyllä palvelimella. Uudet SSH-isäntäavaimet on luotava cloud-init-työkalulla (ks. yllä), kun virtuaalikone käynnistyy ensimmäisen kerran.
Verkkoliitäntöjen järjestys (voididaan tehdä virt-sysprep-työkalulla)
Linux-ytimen udev-laitehallinnassa on toiminto, joka kiinnittää tietyn verkkoliitännän nimen tiettyyn MAC-osoitteeseen. Tämä ei ole hyvä, jos levykuvasta luodaan useita virtuaalikoneita, koska kaikilla virtuaalikoneilla on eri MAC-osoitteet. Se ei myöskään ole hyvä, jos luot virtuaalikoneesta tilannevedoksen ja yrität käyttää sitä uuden virtuaalikoneen käynnistämiseen, koska se muistaa sen vanhan virtuaalikoneen MAC-osoitteen, jota käytettiin tilannevedoksen luomiseen. Paras tapa hoitaa tämä on käyttää virt-sysprep-työkalua.
Osiointi
Kun osioit Linux-levykuvaa, varmista, että root-osio on ensimmäinen ja ainoa osio. Virtuaalikoneen käynnistysprosessin aikana OpenStack lisää SSH-avaimet ensimmäiseen osioon hakemistoon /root/.ssh, mikä tarkoittaa, että tämän osion on oltava root-osio eikä esimerkiksi /boot. Sisäänkirjautuminen ei ole mahdollista ilman root-salasanaa, ellei avaimia lisätä oikein.
ACPI-daemon
ACPI-daemonia käytetään vastaanottamaan komentoja virtuaalikoneen virrantilan hallintaan. Sinun tulisi asentaa ACPI-daemon konelevykuviin, jotta asianmukainen sammutus/uudelleenkäynnistys toimii pilvikäyttöliittymässä.
Hotplug
Jotta voit käyttää taltioita, ACPI hotplug on oltava käytössä. Tämä on oletuksena käytössä CentOS 6:ssa ja uudemmissa versioissa, mutta Ubuntussa sinun on lisättävä rivi "acpiphp" tiedostoon /etc/modules. Muiden jakeluiden osalta tarkista jakelun dokumentaatiosta, miten acpiphp ladataan käynnistyksen yhteydessä.
Levykuvien muuntaminen
Kun virtuaalikoneesta tehdään tilannevedos, OpenStack luo levykuvan raw-muodossa. Nämä levykuvat vievät tyypillisesti yhtä monta gigatavua kuin virtuaalikoneen järjestelmälevyn kapasiteetti riippumatta siitä, kuinka monta gigatavua asiakas on todellisuudessa käyttänyt. Tämän seurauksena tilannevedokset voivat nopeasti kuluttaa levykuville käytettävissä olevan tilan loppuun.
Ratkaisu tähän ongelmaan on muuntaa tilannevedoksesta saatu levykuva tiiviimpään muotoon, kuten qcow2:een, joka tallentaa vain asiakkaan datan. Tätä varten lataamme raw-levykuvan palveluun, muunnamme sen qcow2-muotoon ja lataamme uuden levykuvan palveluun OpenStackiin. Koska raw-levykuvat voivat olla useiden gigatavujen kokoisia, emme suosittele tämän toimenpiteen tekemistä henkilökohtaisella tietokoneella, vaan käyttämään sen sijaan Poudassa olevaa apuvirtuaalikonetta. Seuraavassa havainnollistamme menettelyn käyttämällä väliaikaista virtuaalikonetta.
-
Oletamme, että olemme juuri tehneet virtuaalikoneesta tilannevedoksen ja saaneet näin levykuvan myVmSnapshot. Ensimmäinen vaihe on luoda väliaikainen virtuaalikone, jota käytämme myVmSnapshot-levykuvan muuntamiseen. Virtuaalikoneessa tulee olla riittävästi tilaa sekä myVmSnapshotille että sen tiiviille versiolle samanaikaisesti. Koska tiivis versio on pienempi tai samankokoinen kuin myVmSnapshot, turvallinen valinta on valita flavor, johon mahtuu kaksi kertaa myVmSnapshotin koko. Esimerkiksi jos myVmSnapshot on kooltaan 80GB, sopiva flavor apuvirtuaalikoneelle on io.160GB, koska siinä on 160 GB ephemeral-tallennustilaa. Käyttöjärjestelmä voi olla esimerkiksi
Ainoat lisävaatimukset virtuaalikoneen käyttöönotolle ovat i) julkisen floating IP -osoitteen liittäminen ja ii) SSH:n käyttöönotto, jotta voimme todella kirjautua virtuaalikoneeseen.AlmaLinux-9. -
Kun virtuaalikone on käynnissä, kopioimme OpenStack RC File v3:n virtuaalikoneeseen cPoutan/ePoutan käyttöä varten. Jos sinulla ei vielä ole tällaista tiedostoa, katso tätä ohjetta saadaksesi kopion.
Kirjaudu virtuaalikoneeseen ja käytä tiedostoa tunnistetietojesi lataamiseen. -
Jotta voimme säilyttää tilannevedoksesta saadun levykuvan, meidän on alustettava ephemeral-tallennustila oikein. Katso tätä varten ohjettamme. Tämän vaiheen jälkeen oletamme, että ephemeral-levy on liitetty hakemistoon /mnt.
- Seuraavaksi meidän on varustettava virtuaalikone muutamilla perustyökaluilla, joita tarvitsemme. Luomme python-3-virtuaaliympäristön, jota käytämme vuorovaikutukseen cPoutan/ePoutan kanssa, ja siirrymme siihen. Nyt asennamme varsinaiset työkalut, joita tarvitsemme keskustellaksemme cPoutan/ePoutan kanssa.
- Seuraavaksi lataamme palveluun levykuvan, jonka saimme ottamalla tilannevedoksen. Siirry ephemeral-tallennustilan hakemistoon. Vaikka se ei ole pakollista, suosittelemme tässä vaiheessa avaamaan screen-istunnon, jonka avulla prosessi voi jatkua taustalla eli ilman, että sen valmistumista tarvitsee odottaa ennen päätteen sulkemista. Annamme nyt komennon tilannevedoksesta saadun levykuvan lataamiseksi palveluun. Levykuvan koon vuoksi prosessi kestää muutaman minuutin. Voimme poistua screen-istunnosta painamalla CTRL+A ja sitten CTRL+D. Voimme palata screen-istuntoon milloin tahansa kirjoittamalla:
-
Kun edellinen komento on valmistunut, on aika muuntaa levykuva.
Kuten aiemmin mainittiin, qcow2-muoto tallentaa vain varsinaisen asiakasdatan sen sijaan, että tallentaisi järjestelmälevystä 1:1-kopion. Jos asiakasdatan koko on huomattavasti pienempi kuin järjestelmälevyn kokonaiskapasiteetti, myös qcow2-levykuva on vastaavasti huomattavasti raw-levykuvaa pienempi. -
Kun muunnos on valmis, uusi levykuva voidaan ladata palveluun OpenStackiin.
Jos toimenpide onnistuu, voimme poistaa raw-muotoisen levykuvan OpenStackista. Voimme säilyttää apuvirtuaalikoneen tulevia levykuvamuunnoksia varten tai poistaa sen heti käytön jälkeen.
Levykuvien lataaminen palveluun
Voit ladata levykuvia palveluun joko selainkäyttöliittymän tai openstack-komentorivityökalun avulla.
Ennen lataamista palveluun sinun on tiedettävä, missä muodossa ladattava levykuva on. Todennäköisimmät vaihtoehdot ovat qcow2 ja raw. Voit selvittää levykuvan tyypin file-komennolla. Tältä qcow2-levykuva näyttää:
$ file images/Ubuntu-15.10-Phoronix.qcow2
images/Ubuntu-15.10-Phoronix.qcow2: Qemu Image, Format: Qcow (v3), 10737418240 bytes
Ja tältä raw-levykuva näyttää:
$ file images/Ubuntu-14.04-old.raw
images/Ubuntu-14.04-old.raw: x86 boot sector; partition 1: ID=0x83, active, starthead 0, startsector 16065, 20948760 sectors, code offset 0x63
Lataa palveluun komentorivillä:
openstack image create --disk-format <disk format> --private --file <image file to upload> <name of image to create>
Tämän pitäisi ladata levykuva palveluun. Kestää hetken, ennen kuin levykuva on käytettävissä.
Jos käytät mieluummin selainkäyttöliittymää, voit ladata levykuvia palveluun osiossa Compute | Images napsauttamalla Create Image -painiketta:

Näkyviin tulee tämä valintaikkuna:

Tässä valintaikkunassa luomme esimerkiksi levykuvan nimeltä Alpine-linux. Voit halutessasi lisätä levykuvalle Image Description -kuvauksen, jos tarvitset sitä omaa viitettäsi varten. Tietoturvasyistä tuemme levykuvien lataamista palveluun vain paikalliselta koneeltasi, ja levykuvien lataaminen palveluun julkisista URL-osoitteista on poistettu käytöstä. Tässä esimerkissä olemme siis valinneet paikalliselta koneeltamme levykuvan, jonka haluamme ladata palveluun, Browse-painikkeella. Tässä esimerkissä levykuvamme on ISO-levykuva, joten olemme valinneet sen Format-pudotusvalikosta. Kaikki muut kentät paitsi Image Sharing | Visibility voivat jäädä oletusarvoihinsa. Image Sharing | Visibility -valintaruudussa varmista, että olet asettanut levykuvan näkyvyydeksi Private. Tavalliset käyttäjät eivät voi tietoturvasyistä luoda julkisia levykuvia. Jos yrität ladata levykuvan palveluun ja asetat sen näkyvyydeksi Public, saat virheilmoituksen. Asettamalla levykuvan näkyvyydeksi Private tekemäsi lataus palveluun tekee levykuvasta yksityisen kyseiselle OpenStack-projektille, ja vain projektisi jäsenet voivat käyttää sitä.
Levykuvien jakaminen Pouta-projektien välillä
Voit jakaa levykuvia eri Pouta-projektien välillä käyttämällä komentorivityökaluja. Levykuvien jakamista projektien välillä ei tällä hetkellä tueta Poudan selainkäyttöliittymässä. Jakamisen jälkeen levykuva näkyy molemmissa projekteissa eli luovuttaja- ja vastaanottajaprojektissa.
Huomaa, että levykuvien jakaminen toimii saman pilviympäristön sisällä eli voit jakaa levykuvia yhdestä cPouta-projektista toiseen, mutta et cPouta-projektin ja ePouta-projektin välillä tai päinvastoin.
-
Ensin sinun on haettava jaettavan levykuvan UUID (
<your-image-UUID>). Luettele nykyisen projektin kaikki levykuvat komennolla: -
Seuraavaksi sinun on haettava kohdeprojektin UUID (
<destination-project-UUID>). Voit luetella kaikki käytettävissä olevat projektisi komennolla: -
Kun sinulla on nämä kaksi UUID:tä, sinun on ensin varmistettava, että levykuva on shared-tyyppiä, jos se ei jo ole:
-
Käynnistä sitten jakaminen suorittamalla seuraava openstack-komento alkuperäprojektissa:
-
Lopuksi kohdeprojektin on hyväksyttävä tämä jäsenyys. Tätä varten sinun tai kollegasi on suoritettava seuraava glance-komento vastaanottajaprojektissa: