Omat levykuvat
Lataa oma VM-levykuvasi — kovennettu peruskoonnos, golden image CI-putkestasi, valmisohjelmisto — ja käynnistä siitä instansseja. Oma levykuva kuuluu sille tenantille, joka sen latasi: vain kyseinen tenant näkee sen, ja vain kyseinen tenant voi käynnistää siitä. Se näkyy alustan luettelon rinnalla kaikkialla, missä levykuva valitaan.
Pilotti — käyttöoikeus myönnetään tenanttikohtaisesti
Omat levykuvat otetaan käyttöön pilottina, ja ne ovat saatavilla vain tenanteille, joille ominaisuus on otettu käyttöön. Epääminen tapahtuu palvelinpuolella: ilman käyttöoikeutta jokainen levykuvan lataus vastaa 403 FEATURE_NOT_ENABLED riippumatta siitä, tuleeko se portaalista, CLI:stä vai Terraformista. Portaalissa Levykuvat-osiota ei näy lainkaan. Pyydä käyttöoikeutta ottamalla yhteyttä tukeen. Alustan luettelon selaaminen ja siitä käynnistäminen eivät muutu.
Mitä voit ladata
- Muodot:
qcow2jaraw(säiliömuotobare). Ei muuta —vmdk,vhdtaivdion muunnettava ensin paikallisesti, esim.qemu-img convert -O qcow2 disk.vmdk disk.qcow2. - Enintään 35 GiB ladattuna — itse tiedosto. Suurempi tiedosto hylätään tallennuksen reunalla ennen levykuvan tuontia.
- Enintään 35 GiB purettuna — levykuvan virtuaalinen koko (ks. alla). Suurempi hylätään tuonnissa.
Koska raw-tiedosto on oma virtuaalinen kokonsa, raw-levykuvaa rajoittaa käytännössä 35 GiB:n latausraja. Käytä qcow2-muotoa kaikkeen sitä suurempaan.
qcow2 hylätään myös, jos se ilmoittaa backing-tiedoston, on salattu tai on muuta versiota kuin 2 tai 3 — samoin jokainen tiedosto, jonka todellinen muoto ei vastaa ilmoittamaasi disk-format-arvoa. Backing-tiedosto on näistä yleisin: qemu-img create -b -komennolla rakennettu tai tilannevedosketjusta otettu levykuva viittaa toiseen tiedostoon, jota alustalla ei koskaan ole. qemu-img convert -O qcow2 src.qcow2 flat.qcow2 litistää ketjun itsenäiseksi levykuvaksi.
Merkitsevä koko on purettu koko
qcow2 on pakattu ja ohuesti varattu, ja Frostmoln muuntaa sen raw-muotoon tuonnin aikana. Tallennettavaksi tulee siis levykuvan virtuaalinen koko — ja juuri virtuaalinen koko lasketaan kiintiötäsi vastaan, siitä laskutetaan, ja sen on mahduttava flavorin juurilevylle.
Tämä yllättää monet: 800 Mt:n qcow2, joka kuvaa 10 Gt:n levyä, muuttuu 10 Gt:n levykuvaksi. Tarkista ennen latausta:
qemu-img info debian-13.qcow2
# virtual size: 10 GiB (10737418240 bytes) <- tämä on se, mikä merkitsee
# disk size: 794 MiB <- tämä on vain latausJos virtuaalinen koko on suurempi kuin tarvitset, koosta levykuva pienemmällä virtuaalilevyllä. (qemu-img resize --shrink voi kutistaa sen jälkikäteen, mutta vasta kun levykuvan sisällä oleva tiedostojärjestelmä on kutistettu — muuten katkaiset sen.)
Levykuvasi näkyy muodossa raw
Muunnos on syy siihen, että koko muuttuu — ja se muuttaa myös muodon. Kun lataat qcow2-tiedoston, alusta raportoi levykuvan muodossa raw heti kun tuonti on valmis: sekä portaalin Muoto-sarakkeessa että komennossa fm compute image get. Se ei ole virhe eikä mitään ole menetetty: raw kuvaa sitä, mitä alusta nyt säilyttää, eli muunnoksen tuottamaa purettua levykuvaa. Niin kauan kuin levykuva on tilassa Odottaa latausta tai Tuodaan, näkyy ilmoittamasi muoto.
Terraform on poikkeus, ja tarkoituksella: frostmoln_image-resurssin disk_format on arvo, jonka itse määrität, eikä refresh koskaan ylikirjoita sitä — tilatiedostosi siis kertoo edelleen qcow2. (Ylikirjoitus saisi jokaisen applyn epäonnistumaan virheeseen "provider produced inconsistent result after apply".) Levykuvien tietolähteet eivät raportoi levymuotoa lainkaan.
Frostmoln ei säilytä tietoa lataamastasi muodosta, joten levykuvaa ei voi myöhemmin verrata mihinkään. Pidä itse kirjaa siitä, mistä koosteesta levykuva on peräisin — kuvaus-kenttä on siihen hyvä paikka.
Valmistele levykuva ennen lataamista
Levykuva on kokonainen tiedostojärjestelmä, ja kuka tahansa tenantissasi voi käynnistää siitä instanssin ja lukea sen root-oikeuksin. Kaikki, mitä koonti jätti jälkeensä, kulkee mukana.
- Poista tunnistetiedot. Yksityiset SSH-avaimet,
authorized_keys, cloud-initin tila (/var/lib/cloud), API-tokenit, rekisterikirjautumiset,.env-tiedostot, komentotulkin historia, paketinhallinnan tunnukset. - Poista SSH-isäntäavaimet (
/etc/ssh/ssh_host_*) ja tyhjennä/etc/machine-id. Jos jätät ne, jokaisella levykuvasta käynnistetyllä instanssilla on sama isäntäidentiteetti, eikä isäntäavaimen varmennus enää erota instanssejasi toisistaan. - Jätä cloud-init asennetuksi ja käyttöön — Linux-levykuvassa. Juuri cloud-init asentaa rekisteröimäsi SSH-avaimet, ajaa user datan ja asettaa konsolisalasanan ensimmäisellä käynnistyksellä. Ilman sitä Linux-levykuva käynnistyy ilman mitään sisäänpääsyä — älä kierrä sitä leipomalla levykuvaan salasanaa tai kiinteää
authorized_keys-tiedostoa. Tällaiselle levykuvalle pyydetty konsolisalasana hyväksytään ja ohitetaan sitten hiljaisesti, koska levykuvassa ei ole mitään, joka asettaisi sen — paitsi jos levykuva ei myöskään ilmoita jakelua, jonka alusta tunnistaa, jolloin käynnistys epäonnistuu sen sijaan. Windows on poikkeus tähän kohtaan — katso Windows-levykuvat. - Päivittäminen on sinun vastuullasi. Oma levykuva on jäädytetty siihen hetkeen, jona latasit sen. Toisin kuin alustan luetteloa, sitä ei päivitä kukaan puolestasi: koosta ja lataa uusi, kun paketit tarvitsevat korjauksia.
Windows-levykuvat
Frostmoln ei aseta Windows-vieraan sisälle mitään kirjautumistietoja. SSH-avainten injektointi, konsolisalasana ja hallittu agentti ovat kaikki cloud-init-mekanismeja, eikä salasanan noutamiseen ole rajapintaa — konsolisalasana hylätään suoralta kädeltä, jos levykuva ilmoittaa käyttöjärjestelmäkseen Windowsin. Windowsissa yllä oleva cloud-init-kohta siis kääntyy päinvastaiseksi: tunnusten on tultava sinulta. Windows ei ole testattu alustan levykuva; kaikki alla oleva on sitä, mitä hypervisor vaatii rakentamaltasi levykuvalta.
Rakenna se BIOS/MBR-muotoon, ei UEFI:ksi. Instanssit käynnistyvät i440fx-konetyypillä ja vanhalla BIOSilla; alustalla ei ole UEFI-laiteohjelmistoa, eivätkä portaali, CLI ja Terraform tarjoa mitään tapaa pyytää UEFI:a tai Secure Bootia. Nykyaikainen oletusrakennus — Hyper-V Generation 2 tai mikä tahansa UEFI/GPT-levy — ei tarjoa käynnistyskelpoista MBR:ää ja jää jumiin virheeseen "no bootable device". Käytä Hyper-V Generation 1:tä tai vastaavaa BIOS/MBR-asettelua omassa työkalussasi. Hyper-V antaa lisäksi vhdx-tiedoston, joka ei ole hyväksytty latausmuoto: muunna se ensin komennolla qemu-img convert -O qcow2 disk.vhdx disk.qcow2.
Ota virtio-ajurit mukaan. Juurilevy liitetään virtio-väylään ja verkkokortti on virtio-malli — niin on oletus jokaisella instanssilla, eivätkä portaali, CLI ja Terraform tarjoa mitään tapaa muuttaa kumpaakaan. Lisää virtio-win-ajurit ennen sysprepiä: viostor on käynnistyksen kannalta kriittinen, NetKVM on verkkokortti. Ilman niitä Windows kaatuu virheeseen 0x7B INACCESSIBLE_BOOT_DEVICE ensimmäisellä käynnistyksellä tai nousee ylös ilman verkkoa. Pelastustietä ei ole eikä yksikään levykuvan ominaisuus korjaa sitä jälkikäteen: rakennat uudelleen ja lataat uudelleen.
Päätä virtuaalilevyn koko itse. New-VHD luo oletuksena 127 Gt:n dynaamisesti kasvavan levyn, ja 35 GiB:n katto mittaa nimenomaan virtuaalista kokoa, olipa tiedosto kuinka tyhjä tahansa — joten oletusarvoilla tehty Hyper-V-rakennus hylätään tuonnissa, vaikka lataamasi tiedosto oli pieni. Luo levy enintään 32 GiB:n kokoisena.
Varaudu UTC-kelloon. Hypervisorille ei koskaan kerrota, että vieras on Windows — os_distro on Frostmoln-tason signaali, eikä sitä erillistä ominaisuutta, jonka Nova tähän lukee, voi asettaa portaalista, CLI:stä tai Terraformista — joten virtuaalinen reaaliaikakello käy UTC:ssä ja Windows tulkitsee sen paikallisena aikana. Aseta levykuvaan RealTimeIsUniversal (DWORD 1) polkuun HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation, tai tyydy kellon heittoon.
Sisäänpääsy
Jos levykuvassasi on cloudbase-init, se on parempi tie. User data toimitetaan instanssille edelleen, joten cloudbase-init voi käyttää sitä, ja voit asettaa Administrator-salasanan omasta instanssikohtaisesta user datastasi ja antaa jokaiselle instanssille oman. Frostmoln ei aseta tuota salasanaa puolestasi eikä testaa tätä tietä — mutta mikään ei estä sitä, ja se välttää alla kuvatun jaetun salaisuuden. Älä liitä SSH-avainta Windows-instanssiin: yksikään avain ei silti päädy vieraaseen, ja se vain kirjoittaa uusiksi sen user datan, jonka cloudbase-init lukee — yhdistettynä omaan #cloud-config-tiedostoosi tai käärittynä moniosaiseksi dokumentiksi — turhaan.
Salasana user datassa ei kuitenkaan ole piilossa. User data tarjoillaan todentamattomana kaikelle, mikä instanssissa ajaa, osoitteessa 169.254.169.254, koko instanssin eliniän ajan, joten mikä tahansa sen paikallinen tili voi lukea salasanan — ja cloudbase-init jättää sen lisäksi omiin lokeihinsa. Sekin on käynnistystunnus: vaihda se ensimmäisellä kirjautumisella ja pidä se poissa käynnistysmallista, jonka user datan kuka tahansa tenantissasi voi lukea.
Muussa tapauksessa leivo tunnukset levykuvaan — aseta Administrator-salasana tai luo tili sysprepin tai valvomattoman asennuksen aikana — ja käytä niitä konsolin kautta. Se on tuettu tapa, ei kiertotie. Ole silti selvillä siitä, mikä tuo salaisuus on: käynnistystunnus, joka on sama jokaisessa levykuvasta koskaan käynnistetyssä instanssissa, luettavissa kaikille tenantissasi, jotka voivat käynnistää sen (katso yllä), eikä levykuvan poistaminen peruuta sitä jo käynnissä olevilta instansseilta. Vaihda se ensimmäisellä kirjautumisella.
- Poista tunnus sieltä, mihin asennus sen jätti. Sysprep ja valvomaton asennus jättävät sen tiedostoihin
C:\Windows\Panther\unattend.xml,C:\Windows\System32\Sysprep\unattend.xml,C:\unattend.xmljaC:\Windows\Panther\setupact.log;PlainText="false"on base64, ei salausta. Älä koskaan käytäAutoAdminLogonia — se kirjoittaa salasanan selväkielisenä rekisteriin. Myös yllä olevan tunnusten siivouskohdan Windows-vastineet pätevät: Credential Manager, tallennetut RDP-tunnukset,ConsoleHost_history.txt, tuoteavain.
Kumman tien valitsetkin:
- Valitse salasana, jonka voit kirjoittaa amerikkalaisella näppäimistöllä. Konsoli on VNC-istunto en-US-näppäinasettelulla, joten
å,ä,ö— ja kaikki muu, mikä vaatii pohjoismaisen asettelun — eivät ole kirjoitettavissa siellä. Toisin kuin Linuxissa, varalla ei ole SSH-avainta, joten kirjoituskelvoton salasana tarkoittaa tavoittamatonta instanssia. Käytä tulostettavaa ASCII:ta amerikkalaisen näppäimistön merkkipaikoista, jätä levykuvan näppäinasettelu amerikkalaiseksi kunnes sinulla on toinen tie sisään, ja muista että Windows voi lukita tilin toistuvien epäonnistumisten jälkeen. - Kaappaa levykuva komennolla
sysprep /generalize /oobe /shutdown. Se on SSH-isäntäavainten poiston Windows-vastine: ilman sitä jokaisella levykuvasta luodulla instanssilla on sama SID, sama RDP-varmenne ja samat DPAPI-koneavaimet. - Ilmoita
os_distro-arvoksiwindows, kun luot levykuvan:--os-distro windowsCLI:ssä, Käyttöjärjestelmäjakelu portaalissa,os_distro-kenttäfrostmoln_image-resurssissa Terraformissa. Sitä ei voi muuttaa jälkikäteen — väärän arvon saanut levykuva on ladattava uudelleen — ja se on ainoa kenttä, jonka portaali, CLI ja Terraform tarjoavat kertomaan alustalle, että levykuva on Windows. Sillä on merkitystä, kun joku pyytää konsolisalasanaa: käynnistys epäonnistuu silloin viestillä console password is not supported for Windows images sen epämääräisemmän cannot determine the default user for this image; omit the console password or use an SSH key -viestin sijaan, joka ei mainitse jakelua lainkaan. Älä koskaan merkitse Windows-levykuvaa Linux-jakeluksi päästäksesi tuon viestin ohi — alusta hyväksyy silloin konsolisalasanan eikä tee sillä hiljaisesti mitään. - Älä pyydä hallittua agenttia (
--instance-access,instance_access = true). Se vaatiisystemd:n jacloud-initinja on siis vain Linuxille. Pyyntöä ei hylätä: instanssi luodaan normaalisti, agentti ei asennu koskaan, jafm sshepäonnistuu sen jälkeen kehottaen luomaan instanssin uudelleen sillä valitsimella, jota jo käytit. - Pääse sisään konsolin kautta. Instanssin Konsoli portaalissa tai
fm compute instance console <instanssi>, joka tulostaa konsolin URL-osoitteen. Se on noVNC-istunto ja ainoa konsoli, jota alusta tarjoaa. Se ei ole tie RDP:hen. - Avaa sitten oma etäyhteytesi, kapeasti. Kirjaudu konsolissa, pystytä RDP tai WinRM itse ja avaa se suojausryhmässä — ei koskaan osoitteeseen
0.0.0.0/0. Mitään ei ole auki oletuksena. Tavoita instanssi mieluummin sen yksityisessä osoitteessa VPN:n tai bastionin kautta, pidä NLA päällä, ja aja WinRM HTTPS:n yli (5986), ei koskaan salaamattomassa portissa 5985.
Windows-lisenssi on sinun tuotavasi, ja sen noudattaminen on sinun vastuullasi. Frostmoln ei toimita Windows-lisenssiä, avainta eikä aktivointipalvelua, joten KMS-aktivoitu levykuva menettää aktivointinsa täällä — käytä MAK:ia tai KMS:ää, jonka instanssisi tavoittavat.
Älä asenna vierasagenttia
Frostmoln ei käytä qemu-guest-agent-ohjelmaa mihinkään, eikä Frostmolnin omaa agenttia pidä myöskään paistaa levykuvaan.
Frostmoln asentaa agenttinsa instanssia luotaessa, ja vain jos pyydät sitä — fm compute instance create --instance-access tai instance_access = true Terraformin frostmoln_instance-resurssissa. Sitä ei voi lisätä jo olemassa olevaan instanssiin: luo instanssi uudelleen. Käyttöoikeuden hyödyntäminen jälkikäteen — fm ssh, fm forward — vaatii lisäksi instance-access-oikeuden tenantillesi; ota yhteyttä tukeen, jos fm ssh estetään.
Se ei voi olla osa levykuvaa: agentin identiteetti on instanssin oma tunnus, jota ei ole olemassa levykuvaa koostettaessa, joten valmiiksi asennetulla kopiolla ei olisi identiteettiä eikä mitään keinoa hankkia sellaista.
Levykuvan on tarjottava se, mitä asennus tarvitsee ensimmäisellä käynnistyksellä:
| Vaatimus | Miksi |
|---|---|
x86_64 | Ainoa arkkitehtuuri, jolle agentti koostetaan. |
systemd init-prosessina, systemctl polussa PATH | Agentti asennetaan systemd-palveluna. |
cloud-init, joka osaa kertoa instanssin tunnuksen | Cloud-init ajaa asennuksen, ja asennus kysyy siltä instanssin omaa tunnusta — joka on agentin identiteetti. Varalla on konfiguraatioaseman lukeminen, mikä vaatii mount- ja sed-komennot. |
sha256sum | Ladattu agentti tarkistetaan kiinnitettyä tiivistettä vasten. |
curl tai wget | Agentin noutamiseen. |
| Lähtevä HTTPS Frostmolnin agent-gatewaylle, pysyvästi | Ei vain latausta varten — asennettu agentti pitää yllä lähtevää yhteyttä gatewaylle, ja juuri se välittää istuntosi. Katso huomautus alla. |
Olemassa oleva /usr/local/bin sekä kirjoitettavat /etc + /etc/systemd/system | Näihin binääri, sen asetukset ja sen unit kirjoitetaan. Asennus ei luo hakemistoa /usr/local/bin. |
Puuttuva työkalu epäonnistuu hiljaa
Tämä koskee erityisesti riisuttuja ja minimaalisia levykuvia. Jos jokin edellä mainituista puuttuu, instanssi käynnistyy normaalisti eikä yksinkertaisesti koskaan saa agenttia — luonnin yhteydessä ei näy virhettä, eikä fm ssh siihen toimi.
Mistä katsoa: instanssin tiedosto /var/log/frostmoln-managed-agent-install.log kertoo syyn, samoin sarjakonsoli. Myös cloud-init status --long raportoi virheen, koska epäonnistunut asennus päättyy nollasta poikkeavaan paluuarvoon — muuten terveellä instanssilla juuri epäonnistunut agentin asennus siis muuttaa cloud-initin lopputilan punaiseksi.
Lähtevä liikenne on se, joka pettää onnistuneen asennuksen jälkeen
Kaikki muut vaatimukset epäonnistuvat äänekkäästi tuossa lokissa. Lähtevä liikenne ei: agentti asentuu moitteetta, jos gateway on tavoitettavissa ensimmäisellä käynnistyksellä, ja hiljenee sitten, jos suljet lähtevän liikenteen jälkikäteen. fm ssh lakkaa toimimasta ilman että asennuslokissa on mitään selitystä, koska asennus onnistui.
Kiintiösi
Oletuksena kukin tenant voi omistaa 10 omaa levykuvaa, yhteensä 376 Gt tallennettua levykuvadataa (desimaalisia gigatavuja, laskettuna puretusta koosta). Tilannevedokset ja alustan luettelo eivät sisälly siihen.
Nykyinen käyttösi näkyy portaalissa kohdassa Kiintiöt, luokassa Omat levykuvat. Pyydä kiintiön korotusta ottamalla yhteyttä tukeen.
Latauksen aikana voi tulla kolme eri hylkäystä, eikä niillä ole sama ratkaisu:
| Status | Merkitys | Mitä tehdä |
|---|---|---|
409 quota_exceeded | Kiintiösi on täynnä. | Poista jokin oma levykuva vapauttaaksesi paikan. Uudelleenyritys ei koskaan auta. |
403 quota_exceeded | Kesken on jo liikaa — liian moni levykuva odottaa latausta tai välitallennuksessa on liikaa tavuja. | Viimeistele tai poista levykuvat, jotka ovat tilassa Odottaa latausta, ja yritä uudelleen. |
429 | Olet aloittanut liian monta latausta viimeisen tunnin aikana. | Odota, että aikaikkuna umpeutuu. Jo luomasi levykuva on yhä tallessa. |
Epäonnistunut tuonti varaa paikan edelleen
Epäonnistunut tuonti jättää levykuvan tilaan Odottaa latausta, joten se lasketaan yhä kesken olevien latausten rajaa vastaan. Siksi 403 ei aina poistu odottamalla — poista ne levykuvat, joita et aio viimeistellä.
Levykuvan poistaminen vapauttaa sen paikan heti — mutta vasta kun mikään ei rakennu sen päälle.
Levykuvaa, johon tallennustaustajärjestelmä yhä viittaa, ei voi poistaa
Jokainen instanssilevy on copy-on-write-klooni siitä levykuvasta, josta se käynnistettiin, joten alusta epää poiston 409-virheellä niin kauan kuin yksikin noista klooneista on olemassa. Poista levykuvasta käynnistetyt instanssit ja yritä uudelleen.
Epääminen ei muuta mitään: levykuva on yhä tallessa ja yhä Aktiivinen, ja sama poisto onnistuu, kun viimeinen klooni on poissa.
Lataaminen portaalista
Laskenta → Levykuvat → Lataa levykuva. Annat nimen, levytiedoston, levymuodon ja halutessasi kuvauksen, käyttöjärjestelmäjakelun, käyttöjärjestelmän version ja arkkitehtuurin (käyttöjärjestelmäkentät ovat metatietoja — ne auttavat sinua ja kollegoitasi tunnistamaan levykuvan myöhemmin).
Painikkeen takana portaali suorittaa neljä vaihetta: se luo levykuvan, lähettää tiedoston suoraan objektitallennukseen (levykuvan tavut eivät koskaan kulje API:n kautta), pyytää alustaa tuomaan sen ja kyselee sitten tilaa, kunnes se on valmis. Muunnos tehdään palvelinpuolella ja se on suhteessa levykuvan kokoon, joten suuressa levykuvassa voi kestää useita minuutteja; voit poistua sivulta — tuonti jatkuu ilman selainta.
Levykuvan tila kertoo, missä vaiheessa se on:
| Tila | Merkitys |
|---|---|
| Odottaa latausta | Levykuva on olemassa, mutta siinä ei ole vielä tavuja. |
| Tuodaan | Tavuja muunnetaan ja tallennetaan. |
| Aktiivinen | Valmis käynnistettäväksi. |
| Tuonti epäonnistui | Tavut hylättiin — ks. Kun tuonti epäonnistuu. |
Puolivälissä keskeytynyt lataus jättää levykuvan tilaan Odottaa latausta. Älä luo toista: käytä olemassa olevan rivin Lataa uudelleen -toimintoa sen täyttämiseen.
Lataaminen fm CLI:llä
fm compute image create \
--name my-debian \
--file debian-13.qcow2 \
--disk-format qcow2 \
--os-distro debian \
--os-version 13 \
--arch x86_64 \
--waitcreate suorittaa koko kulun — luonti, lataus, tuonti — ja tulostaa levykuvan id:n heti kun levykuva on olemassa, ennen latauksen alkua, jottei myöhempi virhe hukkaa sitä. (Valinnoilla -o json / -o yaml dokumentti — ja sen mukana id — tulee sen sijaan lopuksi.) --wait odottaa, kunnes levykuva on aktiivinen (enintään --timeout, oletuksena 30 minuuttia); ilman sitä tuonti jatkuu palvelinpuolella ja fm compute image get näyttää tuloksen.
Jos lataus epäonnistuu tai keskeytyy, levykuva on yhä olemassa — täytä se sen sijaan että loisit uuden:
fm compute image upload <image-id> --file debian-13.qcow2Loput komennoista:
fm compute image list --visibility private # omat levykuvasi
fm compute image list --visibility public # alustan luettelo
fm compute image get <image-id>
fm compute image update <image-id> --name my-debian-13 --min-disk 20
fm compute image delete <image-id>Vain --name, --description, --min-disk ja --min-ram ovat muutettavissa levykuvan luonnin jälkeen. Kaikki liput: fm CLI -referenssi (englanniksi).
list tulostaa raa'an tilan, jossa epäonnistunutta tuontia ei erota levykuvasta, jota ei ole koskaan ladattu — molemmat näkyvät tilassa queued. Käytä get- komentoa, joka kertoo sen suoraan.
Terraformilla
resource "frostmoln_image" "golden" {
name = "golden-ubuntu-24.04"
source_file = "${path.module}/build/golden-ubuntu-24.04.qcow2"
source_file_hash = filesha256("${path.module}/build/golden-ubuntu-24.04.qcow2")
disk_format = "qcow2"
os_distro = "ubuntu"
os_version = "24.04"
architecture = "x86_64"
min_disk_gb = 20
}
resource "frostmoln_instance" "app" {
name = "app-01"
image_id = frostmoln_image.golden.id
flavor_id = "gp1.small"
subnet_id = frostmoln_subnet.main.id
}source_file on paikallinen polku, jonka Terraformia ajava kone lukee — ei ämpärin avain eikä URL. Terraform ei näe tiedoston sisällön muutosta polun pysyessä samana, joten yhdistä se source_file_hash-arvoon, kun koostat levykuvan uudelleen samaan polkuun: muuttunut tiiviste korvaa levykuvan, jolloin se ladataan ja tuodaan uudelleen. terraform import ei ole tuettu tarkoituksella — määrittele levykuva konfiguraatiossa ja aja apply. Huomaa, että alusta asettaa min_disk-arvon levykuvan todellisen puretun koon mukaan tuonnin aikana ja korvaa määrittämäsi arvon; määritetty min_disk_gb säilyy tilassa sellaisena kuin sen kirjoitit, joten myöhempi refresh voi näyttää alustan arvon erona.
Täysi skeema sekä tietolähteet olemassa olevan levykuvan hakemiseen (englanniksi):
Instanssin käynnistäminen levykuvasta
Levykuvasi näkyvät kaikkialla, missä levykuva valitaan — portaalin instanssin luontilomakkeella, komennossa fm compute instance create --image <image-id> ja Terraformin image_id-kentässä.
Vain aktiivisesta levykuvasta voi käynnistää. Valitsin listaa levykuvasi tilasta riippumatta, joten odottava tai epäonnistunut tarjotaan kuten mikä tahansa muu, ja instanssin luonti epäonnistuu. Tarkista tila ensin.
Tuonnin aikana alusta kirjaa levykuvan vähimmäislevykoon sen todellisen puretun koon mukaan ja korvaa asettamasi arvon. Flavor, jonka juurilevy on tätä pienempi, ei voi käynnistää levykuvaa.
Kun tuonti epäonnistuu
Epäonnistunut tuonti ei jätä levykuvaa virhetilaan. Se palauttaa levykuvan tilaan queued — samaan tilaan, jossa on levykuva, jota ei ole koskaan ladattu — ja kirjaa erillisen importFailed-lipun. Tällä erolla on väliä, jos kirjoitat oman kyselysilmukan: kysele tilaa active TAI importFailed, älä koskaan pelkkää active-tilaa, tai skriptisi jää odottamaan epäonnistunutta tuontia ikuisesti.
Sekä portaali että fm compute image get näyttävät sen (Tuonti epäonnistui / varoitusrivi) sekä syyn, kun alusta pystyy sen selvittämään:
- Tiedosto sisältää toisen levykuvan — toisen
qcow2-tiedoston sisältä vietyqcow2. Saman tiedoston lataaminen uudelleen epäonnistuu samalla tavalla. Vie vieraskäyttöjärjestelmän levy hypervisorista tavallisenaqcow2- tairaw-levykuvana ja lataa se. - Tiedosto käyttää ominaisuutta, jota ei voi muuntaa — taustatiedostoa tai salausta. Yhdistä se yhdeksi salaamattomaksi levykuvaksi (
qemu-img convert) ja lataa se. - Tiedosto ei ole ilmoittamasi muoto — tarkista, mikä se todella on (
qemu-img infokertoo sen), aseta levykuvalle oikea levymuoto ja lataa se uudelleen. - Muunnos epäonnistui — yleensä vaillinainen lataus tai vioittunut levykuva. Tarkista, että tiedosto aukeaa paikallisesti, ja lataa se uudelleen.
- Alusta ei pystynyt selvittämään syytä — ota yhteyttä tukeen ja mainitse levykuvan tunnus. Saman tiedoston lataaminen uudelleen tuskin auttaa.
Jos kyselet API:a itse, syy on levykuvan importFailureReason, ja sen arvo on jokin seuraavista: nestedFormat, unsupportedFeature, declaredFormat, conversionFailed tai unknown. Uusia koodeja voi tulla milloin tahansa — käsittele tuntematonta koodia täsmälleen kuten unknown.
Syy jää levykuvaan, joten se on näkyvissä myös sivun uudelleenlatauksen jälkeen tai seuraavana päivänä.
Virheen ilmestyminen kestää muutaman sekunnin, ja se on tarkoituksellista. Alusta saa tietää tuonnin epäonnistuneen hieman ennen kuin se saa tietää syyn, eikä se julkaise kumpaakaan ennen kuin molemmat ovat valmiina — jottei sinulle koskaan näytettäisi "tuonti epäonnistui" ilman selitystä ja hyödyttömän kehotuksen kanssa ladata tiedosto uudelleen. Enintään minuutin ajan levykuva näyttää siksi täsmälleen samalta kuin sellainen, johon kukaan ei ole ladannut mitään: queued, ei importFailed-lippua. Jatka kyselyä. Harvinaisessa tapauksessa, jossa alusta ei pystynyt selvittämään syytä lainkaan, saat virheen ilman syytä.
Kaikki hylkäykset eivät päädy tänne. Tiedosto, joka ei ole kelvollinen qcow2- tai raw-levykuva, sellainen joka ilmoittaa backing-tiedoston tai on salattu, sekä sellainen jonka purettu koko ylittää 35 GiB:n katon, hylätään kaikki heti, 400-vastauksella ja syyn kertovalla viestillä — tuonti ei käynnisty lainkaan eikä importFailed-lippua kirjata. importFailed tarkoittaa, että tiedosto läpäisi nuo tarkistukset ja epäonnistui vasta muunnoksessa tai tallennuksessa.
Kummassakin tapauksessa levykuva jää tilaan Odottaa latausta, ja voit ladata korjatun tiedoston samaan tietueeseen.
Laskutus
Omista levykuvista laskutetaan gigatavukuukausittain levykuvan loogisen (puretun) koon mukaan, desimaalisina gigatavuina, niin kauan kuin levykuva on olemassa — hinnoiteltuna kuten taltion tilannevedos. Portaalissa näkyvä koko on se koko, josta maksat. Levykuvan poistaminen lopettaa veloituksen.
Hinnat tulevat alustan hinnastosta ja näkyvät portaalissa; tässä oppaassa ei mainita summia. Ks. Laskutus.
Rajoitukset
- Vain
qcow2jaraw, säiliömuotobare. - 35 GiB ladattuna / 35 GiB purettuna levykuvaa kohden; oletuksena 10 levykuvaa / 376 Gt tenanttia kohden. Myös yhtäaikaisten latausten määrä on rajattu.
- Levykuvat ovat yksityisiä tenantillesi — levykuvan jakaminen toiselle tenantille ei ole mahdollista. Tenantin sisällä ne eivät ole luottamuksellisia: kuka tahansa, joka voi käynnistää instanssin, voi lukea koko tiedostojärjestelmän.
- Ei latausta ulos eikä vientiä — ladattua levykuvaa ei voi hakea takaisin tiedostona. Säilytä oma kopio kaikesta, mitä saatat tarvita uudelleen.
- Oman levykuvan luominen käynnissä olevan instanssin tilannevedoksesta ei ole mahdollista; lataa levykuva sen sijaan.