KVM Hogyan növelhető / csökkenthető egy virtuális gép lemez mérete?

Ebben a cikkben a KVM virtuális gép lemezeinek átméretezéséről fogunk beszélni, megvizsgáljuk a használt virtuális lemezek formátumait. Megmutatjuk, hogyan lehet a virtuális gép lemezt megfelelően növelni a Linux KVM hipervizorában adatvesztés nélkül, és megvitatjuk a lemezméret csökkentésének lehetőségeit is..

Tartalom:

  • A KVM virtuális gép meghajtójának növelése
  • Hogyan csökkenthető a virtuális lemez mérete a KVM-ben?

A KVM virtuális gép meghajtójának növelése

KVM virtuális lemez bővítése

A lemez használatához a virtuális gépet ki kell kapcsolni, különben nem tehetünk semmit. Vegyünk egy példát egy megnövelt lemezzel, amelynek mérete eredetileg 20 GB volt.

A KVM virtuális gép lemezparamétereinek megtekintéséhez használja a következő parancsot:

qemu-img info / drive_path

A parancs kimenete hasonló lesz:

Látjuk, hogy van két mezőnk, amelyek jelzik a méretet: ezek a virtual_size és disk_size:

  • virtual_size - a lemez létrehozásakor vagy kibővítésekor megadott virtuális lemezméret (ebben a példában a lemez maximális mérete 20 GB);
  • disk_size - a jelenlegi lemezfájl mérete, azaz mennyi lemezterületet foglal el jelenleg a fizikai kiszolgáló (csak a qcow formátumra vonatkozik). Példánkban a virtuális lemez mindössze 1,6 GB tárhelyet foglal el.

És azonnal a formátumokról. Javaslom a qcow2 lemez formátum használatát, nem pedig a nyers formátumot, amikor virtuális gépeket készít a KVM-en. Később elmagyarázom miért.

A következő lépés a virtuális gép lemezének 5 Gb-os kibővítése (a helyes lemezbővítés érdekében a virtuális gépnek nem kell pillanatfelvételeket készíteni!).
# qemu-img átméretezés / meghajtó útvonal + 5G

A kép átméretezett.

Ha azonnal megvizsgáljuk a lemezkép információinak kimenetét, látni fogjuk, hogy kibővült:

# qemu-img info / drive_path

kép: / drive_drive elérési út fájl formátuma: qcow2 virtuális méret: 25G (26843545600 byte) lemezméret: 1,6G cluster_size: 65536 Formátum-specifikus információk: compat: 0,10 refcount bit: 16 

A munka egy részét elvégeztük, de ehhez a vendég operációs rendszer virtuális géptől is munkát kell elvégeznie. Ezután bemutatjuk, hogyan lehet növelni a lemez méretét a CentOS 7 vendég és a Windows Server 2012 esetén..

Ha további virtuális lemezt szeretne hozzáadni a virtuális gépekhez a KVM hipervizoron, akkor a qemu-img és a virsh kerül felhasználásra.

Partíciók bővítése Linux CentOS virtuális gépen

Miután kibővítette a meghajtót a szerver oldaláról, el kell indítania a virtuális gépet, és csatlakoznia kell hozzá az ssh-n keresztül. Minden munkát a merevlemez partíciókezelő segédprogramjával kell elvégezni. fdisk.

A szerverhez való csatlakozás után ellenőrizzük a csatlakoztatott hely elérhetőségét:

df -h
fdisk -l

A képernyőképen látható, hogy a / dev / vda2 szakasz 20 GB méretű, és több rendelkezésre álló lemezterületünk van.

Javítsuk ki ezt a pillanatot, és bontsa ki a / dev / vda2 részt a maximális méretre:

# fdisk / dev / vda

Üdvözöljük az fdisk-en (util-linux 2.23.2). A változások csak a memóriában maradnak, amíg el nem döntenek azok megírásáról. Legyen óvatos, mielőtt használja az írási parancsot. Parancs (m segítségért): d Partíció száma (1,2, alapértelmezett 2): A 2. partíciót törlik Parancs (m segítségért): n Partíció típusa: p elsődleges (1 elsődleges, 0 kiterjesztett, 3 ingyenes) e kiterjesztett Kiválasztás (alapértelmezett p): p Partíciószám (2-4, alapértelmezett 2): Első szektor (1050624-52428799, alapértelmezett 1050624): Az alapértelmezett érték használata 1050624 Utolsó szektor, + szektorok vagy + méret K, M, G (1050624-52428799, alapértelmezett 52428799): Az 52428799 alapértelmezett érték használatakor a Linux típusú és a 24,5 méretű 2. partíció a parancsra van állítva (m segítségért): w A partíciós tábla megváltozott! Az ioctl () felhívása a partíciós tábla újraolvasásához. FIGYELMEZTETÉS: A partíciós tábla újraolvasása nem sikerült a 16. hibával: Az eszköz vagy az erőforrás foglalt. A kernel továbbra is a régi táblát használja. Az új táblát a következő újraindításkor vagy a partprobe (8) vagy a kpartx (8) szinkronizáló lemezek futtatása után fogjuk használni.. 

Ezután újra kell indítanunk a virtuális gépet, és végre kell hajtanunk a parancsot a lemezbővítmény alkalmazásához:

# xfs_growfs / dev / vda2

meta-adatok = / dev / vda2 isize = 512 agcount = 4, agsize = 1277888 blks = sectsz = 512 attr = 2, projid32bit = 1 = crc = 1 finobt = 0 spinodes = 0 data = bsize = 4096 block = 5111552, imaxpct = 25 = sunit = 0 szélesség = 0 blks nameing = 2 verzió bsize = 4096 ascii-ci = 0 ftype = 1 log = internal bsize = 4096 block = 2560, version = 2 = sectsz = 512 sunit = 0 blks, lazy-count = 1 valósidejű = nincs extsz = 4096 blokk = 0, rtextents = 0 adatblokk 5111552-ről 6422272-re változott 

# df -h

Fájlrendszer mérete Használt Rendelkezésre állás Használat% Szerelt devtmpfs 485M 0 485M 0% / dev tmpfs 496M 0 496M 0% / dev / shm tmpfs 496M 6,6M 489M 2% / run tmpfs 496M 0 496M 0% / sys / fs / cgroup / dev / vda2 25G 1.3G 24G 6% / / dev / vda1 488M 100M 353M 23% / boot tmpfs 100M 0 100M 0% / run / user / 0 

Ennek eredményeként megkaptuk a kiterjesztett / dev / vda2 partíciót. Rendben, hogy pontosan mit tettünk:

  • fdisk / dev / vda - elindította az fdisk segédprogramot a / dev / vda szakaszhoz való kapcsolódással
  • / d - törölje a részt, alapértelmezés szerint a 2. szakaszra van szükség, tehát a következő bekezdésben csak nyomja meg az Enter billentyűt
  • / n - hozzon létre egy új részt, a következő bekezdésben csak nyomja meg az Enter billentyűt, vagy írja be p, Következő Enter, mivel a létrehozott szakasz alapértelmezés szerint 2.
  • Az első és az utolsó szektor meghatározásakor csak akkor nyomja meg az Enter billentyűt, ha maximálisan szeretnénk kibővíteni a szekciót, ha konkrét méretet akarunk megadni, az utolsó szektorban adja meg a lemez méretét a menüben látható módon + méret K, M, G A méret nem lehet kevesebb, mint korábban!
  • / w - alkalmazza a beállításokat.

Indítás után ellenőrizze a lemezt a következő paranccsal:

xfs_growfs / dev / vda2

Egyes források utalnak az eljárás végrehajtására szolgáló parancsra:

resize2fs / dev / vda2

De ez nem működik az xfs fájlrendszerrel!

A CentOS 7 virtuális gépen végzett lemezkiterjesztési munka befejeződött.

Lemezkiterjesztés egy vendég Windows Server rendszeren

Az rdp vagy a VNC-n keresztül csatlakozunk a virtuális géphez, és elvégezzük a lemez kibővítését.

  1. Open Server Manager -> Tools -> Computer Management;
  2. A megnyíló ablakban válassza a menüt Lemezkezelés, ezután látnia kell az összes meghajtót és az el nem osztott területet, amelyeket a KVM hipervizorból adtunk hozzá;
  3. Válassza ki a kívánt meghajtót, és kattintson a Bővített hangerő elemre;
  4. Alapértelmezés szerint az összes rendelkezésre álló helyet felkínálják a lemez méretének növelésére;
  5. Kattintson a "következő" gombra, és fejezze be a kiterjesztést. Ezt az eljárást követően a rendszer szakaszának kibővítenie kell;

Szeretném hozzátenni, hogy mielőtt a virtuális gép lemezkiterjesztési eljárását javasolnám, készítsen biztonsági másolatot a lemezről. Állítsa le a virtuális gépet, és másolja a lemezt a biztonsági mentési könyvtárba vagy bármely szabad könyvtárú könyvtárba. Ha a munka során valami rosszul fordul, akkor a virtuális lemez képét a biztonsági másolatból visszaadhatja.

Hogyan csökkenthető a virtuális lemez mérete a KVM-ben?

Munkám során korábban gyakran találkoztam ezzel a kérdéssel, de sajnos nem biztonságosan csökkentheti a lemezt egy virtuális gépen a KVM-ben! A KVM virtuális gép lemezméretének fizikai tároláskor történő csökkentéséhez az egyetlen elfogadható méret a tömörítés konvertálás útján.

Számos cikk található az interneten, állítólag miatt a virtuális gépen csökkentheti a lemez méretét, de ez nem működik.

Adok néhány példát, amelyekkel találkoztam, és amelyeket személyesen ellenőriztem.

A KVM lemez csökkentése a qemu segédprogrammal

Számos forrás írja le a qemu segédprogrammal végrehajtott műveleteket. Javasolják, hogy a virtuális gép lemezméretét csökkentsék a következő paranccsal:

qemu-img resize / drive_path -5G - csökkentse a lemezt 5G-rel

Vagy ezt a beállítást egy adott mérettel:

qemu-img resize / 25G meghajtóút - jelölje meg a lemez méretét 25G-ben

Mi történik a parancs végrehajtása után? Elindítjuk a szervert, és természetesen a rendszer nem indul:

Először megpróbáltam csökkenteni a partíciót a rendszer aljáról az fdisk segédprogrammal, de ebben az esetben a rendszer is leállítja a betöltést, még akkor is, ha kihagyja a lemezt a fizikai kiszolgálóról történő csökkentésének lépését, és ez logikus. Az a szakasz, amelyet redukálunk, a rendszer és ennek megfelelően az operációs rendszer leáll, de a lemez lecsökkentésekor az információ nyilvánvalóan megsemmisül.

Virtuális lemez csökkentése képhelyettesítéssel

Még nem olyan általános lehetőség az utasításokban - ez csökkenti a lemezt, a régi cseréjével. Vagyis létrehoz egy új virtuális gépet a szükséges lemezmérettel. Ezt követően cserélje ki a régi lemezképet egy új képre, és a különböző forrásokból származó cikkek leírása alapján ez működik. Ellenőriztem, és ez megtörte a fájlrendszert, mint az első verziónál. Példaként adok parancsot:

virt-resize / old_drive_ image / new_drive_image

A lehetőségeket szintén megadták, a lemezt nyers formátumról qcow2 formátumra konvertálva, de kezdetben gépeket készítek ebben a formátumban, és elmagyarázom.

KVM lemez formátumok és a lemez tömörítése qcow2 formátumban

A cikk elején megemlítettem ezt a két formátumot.

nyers - lefordítva "nyers". A formátum előnye, maximális teljesítmény, a formátum sokoldalúsága. Hátrányok tömege, a főbbek a következők:

  • A lemez elfoglalja a hozzárendelt fizikai kiszolgálón lévő összes lemezterületet;
  • Nem lehet pillanatképeket létrehozni.

Qcow2 - Ez a natív QEMU hipervizor formátum, valamint a QEMU-KVM. Ez a KVM által támogatott legkényelmesebb virtuális lemez formátum. A lemezkép növekszik, amikor az adatok felhalmozódnak a virtuális gépen, a pillanatképek támogatottak.

Mire jó a qcow2 formátum? Alapvetően nem kell csökkentenie a virtuális lemez méretét, mivel a lemez a szerveren vesz fel, pontosan annyi helyet foglal el ott. Ha a szerver adatait folyamatosan felülírják, és néha előfordul, hogy a lemez "duzzadt", akkor könnyen tömörítheti. Fontolja meg ezt a lehetőséget. Nullázom a lemezterületet, majd törölöm a fájlt:

dd, ha = / dev / nulla = / mytempfile
rm -rf / mytempfile

A kiszolgálóról történő ellenőrzéskor a lemezkép először 2.4G-ot sújtott, majd 5.9G-re bővítette:

# du -sh / image_path

2,4 G *****

# du -sh / image_path

5.9G *****

Vagyis miután törölte az információkat a virtuális gépről, a lemez nem tömörítette vissza. Annak érdekében, hogy a lemezfájl megkapja a tényleges méretet, a következő módszert használom:

Biztonsági másolatot készítünk a lemezfájlról, leállítjuk a virtuális gépet, majd tesszük a következőket:

qemu-img convert -O qcow2 / old_image / new_image

Ezután ellenőrizheti a két lemez méretét:

# du -sh / new_drive

1,6 G / ****

# du -sh / old_disk

5.8G / ****

Mint láthatja, a tömörített lemez mérete 1,6 G. Nevezze át az új lemezképet a szükségeshez, és futtassa a virtuális gépet:

# df -h

Fájlrendszer mérete Használt Rendelkezésre állás Használat% Szerelt devtmpfs 485M 0 485M 0% / dev tmpfs 496M 0 496M 0% / dev / shm tmpfs 496M 6,6M 489M 2% / run tmpfs 496M 0 496M 0% / sys / fs / cgroup / dev / vda2 25G 1.3G 24G 6% / / dev / vda1 488M 100M 353M 23% / boot tmpfs 100M 0 100M 0% / run / user / 0 

Ellenőrzés a szerverről:

# du -sh / disk kép

1,6 G / ****

A módszer működik. Használata során a virtuális gép fájlrendszere soha nem halt meg. Erősen ajánlom, hogy ilyen munka előtt készítsen másolatot a lemezről, ha nem akarja elveszíteni az adatait.

Ez minden, amit a cikkben akartam mondani. Ha az egyik webhely látogatója működőképes módon csökkenti a lemezt a KVM-en, nevezetesen a csökkentést (nem a tömörítést), és egy működőképes, akkor felajánlja lehetőségeit, és határozottan megvizsgálom őket.