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.
- Open Server Manager -> Tools -> Computer Management;
- 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á;
- Válassza ki a kívánt meghajtót, és kattintson a Bővített hangerő elemre;
- Alapértelmezés szerint az összes rendelkezésre álló helyet felkínálják a lemez méretének növelésére;
- 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.