Puncte:0

mutarea imaginii KVM de la un server la altul și apoi redimensionarea

drapel cn

host1 are o imagine de invitat de 40G în interiorul unui LV.

host2 are o partiție LV pentru invitați de 50G disponibilă.

dd pentru a transfera host1/guest(40G) --> host2/guest(50G).

gdisk pentru a corecta locația tabelului GPT -

root@ns:~# gdisk /dev/vda2
Comanda (? pentru ajutor): w
Avertizare! Antetul secundar este plasat prea devreme pe disc! Vrei să
corectati aceasta problema? (D/N): Da
Au mutat al doilea antet și tabelul de partiții în locația corectă.

guest.xml a fost reconfigurat și invitatul a pornit perfect.

oaspete are o partiție normală - fără LV

PROBLEMĂ: Nu pot redimensiona Sistemul de fișiere pe oaspete să umple întregul 50G LV. Sistemul de fișiere invitat rămâne la 40G.

Disc /dev/vda: 50 GiB, 53687091200 octeți, 104857600 sectoare
Unități: sectoare de 1 * 512 = 512 octeți
Dimensiunea sectorului (logic/fizic): 512 octeți / 512 octeți
Dimensiunea I/O (minimă/optimă): 512 octeți / 512 octeți
Tip etichetă de disc: gpt
Identificator disc: 564A38FB-02AE-4E84-B080-173963955B2E

Dispozitiv Start End Sectors Size Type
/dev/vda1 2048 4095 2048 Boot BIOS 1M
/dev/vda2 4096 85977087 85972992 Sistem de fișiere Linux 41G

încercați să redimensionați invitatul:

root@ns:~# resize2fs /dev/vda2
resize2fs 1.45.5 (07-ian-2020)
Sistemul de fișiere are deja 10746624 (4k) blocuri. Nimic de făcut!

Aceasta este rezultatul fdisk -l de la noua gazdă:

Disc /dev/mapper/vg--main-nstest: 50 GiB, 53687091200 octeți, 104857600 sectoare
Unități: sectoare de 1 * 512 = 512 octeți
Dimensiunea sectorului (logic/fizic): 512 octeți / 512 octeți
Dimensiunea I/O (minimă/optimă): 512 octeți / 512 octeți
Tip etichetă de disc: gpt
Identificator disc: 564A38FB-02AE-4E84-B080-173963955B2E

Dispozitiv Start End Sectors Size Type
/dev/mapper/vg--main-nstest-part1 2048 4095 2048 Boot BIOS 1M
/dev/mapper/vg--main-nstest-part2 4096 85977087 85972992 Sistem de fișiere Linux 41G

.. și asta se întâmplă dacă încerc să redimensionez de la gazdă:

root@virtual3:~# resize2fs /dev/mapper/vg--main-nstest-part2
resize2fs 1.45.5 (07-ian-2020)
deschide: Nu există un astfel de fișier sau director în timpul deschiderii /dev/mapper/vg--main-nstest-part2

sau....deloc surprinzător:

root@virtual3:~# resize2fs /dev/vg-main/nstest 
resize2fs 1.45.5 (07-ian-2020)
resize2fs: Număr magic rău în super-bloc în timp ce încercați să deschideți /dev/vg-main/nstest
Nu s-a putut găsi superblocul valid al sistemului de fișiere.

Am încercat să montez partiția rădăcină invitată pe gazdă astfel:

# mount -o loop, offset=2097152 /dev/vg-main/ns-test /mnt

... și apoi a încercat să redimensioneze dispozitivul buclă rezultat: /dev/loop7 Aceasta este o idee proastă - distruge superblocul și oaspetele nu pornește. Înapoi la planșa de desen.

Puncte:0
drapel cn

Răspunzând la propria întrebare. Mi-ar plăcea câteva comentarii, deși unele dintre ele par arcane.

Se dovedește a fi mult mai complicat decât credeam.. iată notele pe care le-am făcut - includ o mulțime de rezultate care ar putea fi specifice situației mele. De asemenea, orice începe cu „<<<<” este un comentariu! Nu-l copia!:

PROBLEMA: S-a copiat vechiul server qemu imaginea 40G LV pe noul 50G LV Trebuie să redimensionați sistemul de fișiere la 50G

root@virtual3:~# ssh server vechi „dd bs=1M if=/dev/oldvg/oldnstest” | \
           dd status=progress of=/dev/vg-main/nstest
root@virtual3:~# scp oldserver:/etc/libvirt/quemu/oldnstest.xml /etc/libvirt/qemu/nstest.xml
.... editați nstest.xml după cum este necesar și virsh definiți nstest.xml

Am găsit niște biți și erori lipsă, dar bazat în mare parte pe această pagină:

https://subscription.packtpub.com/book/virtualization-and-cloud/9781788294676/1/ch01lvl1sec14/resizing-an-image

  root@virtual3:~# qemu-img info /dev/vg-main/nstest 
    imagine: /dev/vg-main/nstest
    format de fișier: brut
    dimensiune virtuală: 50 GiB (53687091200 octeți)
    dimensiunea discului: 0 B
  root@virtual3:~# losetup -f
    /dev/loop0
  root@virtual3:~# losetup /dev/loop0 /dev/vg-main/nstest 
  root@virtual3:~# kpartx -av /dev/loop0
    GPT: Antetul principal crede că Alt. antetul nu se află la sfârșitul discului.
    GPT: Antetul GPT alternativ nu se află la sfârșitul discului.
    GPT: Utilizați GNU Parted pentru a corecta erorile GPT.
    adăugați harta loop0p1 (253:3): 0 2048 liniar 7:0 2048
    adăugați harta loop0p2 (253:4): 0 85972992 liniar 7:0 4096
  root@virtual3:~# parted /dev/vg-main/nstest print
    Atenție: Nu tot spațiul disponibil pentru /dev/dm-2 pare să fie folosit, puteți
    remediați GPT pentru a utiliza tot spațiul (în plus 18877064 blocuri) sau continuați cu
    setarea curenta? 
    Remediați/Ignorați? repara                                                           
    Model: Linux device-mapper (liniar) (dm)
    Disc /dev/dm-2: 53,7 GB
    Dimensiunea sectorului (logic/fizic): 512B/512B
    Tabel de partiții: gpt
    Semnale de disc: 
    
    Număr Start Sfârșit Dimensiune Sistem de fișiere Nume Steaguri
     1 1049kB 2097kB 1049kB bios_grub
     2 2097 kB 44,0 GB 44,0 GB ext4

VM-UL ÎNCĂ PORNEAZĂ - să vedem cum mergem de aici!

Rețineți, jurnalizarea aparent trebuie să fie dezactivată pentru ca aceasta să funcționeze, dar e2fsck o va reporni. Vezi mai jos.

  root@virtual3:~# kpartx -av /dev/loop0
    adăugați harta loop0p1 (253:3): 0 2048 liniar 7:0 2048
    adăugați harta loop0p2 (253:4): 0 85972992 liniar 7:0 4096
  root@virtual3:~# ls -la /dev/mapper/loop0*
    lrwxrwxrwx 1 rădăcină rădăcină 7 13 ian 23:47 /dev/mapper/loop0p1 -> ../dm-3
    lrwxrwxrwx 1 rădăcină rădăcină 7 13 ian 23:47 /dev/mapper/loop0p2 -> ../dm-4
    root@virtual3:~# tune2fs -l /dev/mapper/loop0p2
      .... o mulțime de lucruri, tăiate pentru concizie
    Caracteristici ale sistemului de fișiere: has_journal ext_attr resize_inode dir_index .... etc etc
     .... multe alte chestii.... dar notează „has_journal” mai sus
  root@virtual3:~# e2fsck /dev/mapper/loop0p2 >>>>>>>>remediază probleme minore?
    e2fsck 1.45.5 (07-ian-2020)
    /dev/mapper/loop0p2: jurnal de recuperare
    Se șterge inodul orfan 788499 (uid=0, gid=0, mode=0100644, dimensiune=113)
    Se șterge inodul orfan 531614 (uid=0, gid=0, mode=0100666, dimensiune=0)
    Se șterge inodul orfan 531613 (uid=112, gid=117, mode=0100600, dimensiune=0)
    Se șterge inodul orfan 531610 (uid=112, gid=117, mode=0100600, dimensiune=0)
    Se șterge inodul orfan 531609 (uid=112, gid=117, mode=0100600, dimensiune=0)
    Se șterge inodul orfan 531606 (uid=112, gid=117, mode=0100600, dimensiune=0)
    Setarea numărului de inoduri libere la 2511295 (a fost 2511334)
    Setarea numărului de blocuri gratuite la 6187161 (a fost 6192365)
    /dev/mapper/loop0p2: curat, 175681/2686976 fișiere, 4559463/10746624 blocuri
  root@virtual3:~# tune2fs -O ^has_journal /dev/mapper/loop0p2 >>>> NB: cap O
   tune2fs 1.45.5 (07-ian-2020)
  root@virtual3:~# tune2fs -l /dev/mapper/loop0p2 | „caracteristici” grep
   Caracteristici ale sistemului de fișiere: ext_attr resize_inode dir_index .... etc etc
  root@virtual3:~# kpartx -dv /dev/loop0
   del devmap: loop0p2
   del devmap: loop0p1
  root@virtual3:~# losetup -d /dev/loop0
  root@virtual3:~# modprobe nbd max_parts=8 <<<<< necesare pentru a crea /dev/nbd*
    (editați /etc/modprobe ... adăugați nbd pentru a face permanent)
  root@virtual3:~# qemu-nbd --format=raw --connect=/dev/nbd0 /dev/vg-main/nstest 
  root@virtual3:~# fdisk /dev/nbd0
    
    Bun venit la fdisk (util-linux 2.34).
    Modificările vor rămâne doar în memorie, până când decideți să le scrieți.
    Aveți grijă înainte de a utiliza comanda de scriere.
    
    
    Comanda (m pentru ajutor): p
    Disc /dev/nbd0: 50 GiB, 53687091200 octeți, 104857600 sectoare
    Unități: sectoare de 1 * 512 = 512 octeți
    Dimensiunea sectorului (logic/fizic): 512 octeți / 512 octeți
    Dimensiunea I/O (minimă/optimă): 512 octeți / 512 octeți
    Tip etichetă de disc: gpt
    Identificator disc: 564A38FB-02AE-4E84-B080-173963955B2E
    
    Dispozitiv Start End Sectors Size Type
    /dev/nbd0p1 2048 4095 2048 Boot BIOS 1M
    /dev/nbd0p2 4096 85977087 85972992 Sistem de fișiere Linux 41G
    
    Comanda (m pentru ajutor): d
    Numărul partiției (1,2, implicit 2): 2
    
    Partiția 2 a fost ștearsă.
    
    Comanda (m pentru ajutor): n
    Numărul partiției (2-128, implicit 2): 2
    Primul sector (4096-104857566, implicit 4096): 
    Ultimul sector, +/-sectoare sau +/-dimensiune{K,M,G,T,P} (4096-104857566, implicit 104857566): 
    
    Am creat o nouă partiție 2 de tip „Linux filesystem” și de dimensiunea 50 GiB.
    Partiția #2 conține o semnătură ext4.
    
    Doriți să eliminați semnătura? [Da]/[Nu] nu: n <<<< NB!
    
    Comanda (m pentru ajutor): w
    
    Tabelul de partiții a fost modificat.
    Apelarea ioctl() pentru a reciti tabelul de partiții.
    Sincronizarea discurilor.
    
  root@virtual3:~# qemu-nbd --disconnect /dev/nbd0 <<< acest pas nu este pe pagina web
    /dev/nbd0 deconectat
  root@virtual3:~# e2fsck -f /dev/mapper/loop0p2
    e2fsck 1.45.5 (07-ian-2020)
    Superblock are un jurnal nevalid (inodul 8).
    Șterge<y>? da
    *** jurnalul a fost șters ***
    
    Se șterge inodul orfan 788499 (uid=0, gid=0, mode=0100644, dimensiune=113)
    Inodul ilegal 1642119663 în lista de inoduri orfane.
    Pasul 1: Verificarea inodurilor, blocurilor și dimensiunilor
    Inodul șters 531606 are zero dtime. Remediați<y>? da
    S-au găsit inode care făceau parte dintr-o listă conexă orfană coruptă. Remediați<y>? da
    Inodul 531609 a făcut parte din lista de inoduri orfane. FIX.
    Inodul 531610 a făcut parte din lista de inoduri orfane. FIX.
    Inodul 531613 a făcut parte din lista de inoduri orfane. FIX.
    Inodul 531614 a făcut parte din lista de inoduri orfane. FIX.
    Pasul 2: Verificarea structurii directoarelor
    Pasul 3: Verificarea conectivității directorului
    Pasul 4: Verificarea numărului de referințe
    Pasul 5: Verificarea informațiilor rezumate ale grupului
    Blocurile gratuite sunt greșite pentru grupul #97 (21582, numărate=21583).
    Remediați<y>? da
    Blocurile gratuite sunt greșite (6192364, numărate=6252696).
    Remediați<y>? da
    Diferențele bitmap inod: -531606 -(531609--531610) -(531613--531614) -788499
    Remediați<y>? da
    Numărarea inodurilor libere este greșită pentru grupul #64 (869, numărat=874).
    Remediați<y>? da
    Numărarea inodurilor libere este greșită pentru grupul #96 (2772, numărat=2773).
    Remediați<y>? da
    Numărarea inodurilor libere este greșită (2511328, numărate=2511295).
    Remediați<y>? da
    Diferențele de bitmap de blocare: Harta de biți de bloc din grupul 97 nu se potrivește cu suma de control.
    FIX.
    Recreați jurnalul („a” activează „da” tuturor) <y>? da la toate
    Crearea jurnalului (65536 blocuri): gata.
    
    *** jurnalul a fost regenerat ***
    
    /dev/mapper/loop0p2: ***** SISTEMUL DE FIȘIERE A FOST MODIFICAT *****
    /dev/mapper/loop0p2: 175681/2686976 fișiere (0,6% necontigue), 4559464/10746624 blocuri
  root@virtual3:~# resize2fs /dev/mapper/loop0p2 <<<< NB pagina web se referă la /dev/nbd0
    resize2fs 1.45.5 (07-ian-2020)
    Redimensionarea sistemului de fișiere pe /dev/mapper/loop0p2 la 13106683 (4k) blocuri.
    Sistemul de fișiere de pe /dev/mapper/loop0p2 are acum 13106683 (4k) blocuri.
    
  root@virtual3:~# tune2fs -j /dev/mapper/loop0p2
    tune2fs 1.45.5 (07-ian-2020)
    Sistemul de fișiere are deja un jurnal.
  root@virtual3:~# kpartx -dv /dev/loop0
    del devmap: loop0p2
    del devmap: loop0p1
  root@virtual3:~# losetup -d /dev/loop0
  root@virtual3:~# virsh start nstest

 Invitatul nu a pornit corect!!! 

Oaspetele s-a lăsat pe un obuz de salvare, din care am făcut:

fsck /dev/vda2 

(conectat prin vizualizatorul desktop la distanță.) Au fost remediate mai multe neconcordanțe. Aceasta ar fi putut fi propria mea problemă - sper că nu a ta! Oaspeții vor porni acum, dar totuși doar 41G ........ acum sa incerc din nou!

root@virtual3:~# virsh start nstest

APOI te-ai conectat la guest prin ssh:

  root@ns:~# resize2fs /dev/vda2
    resize2fs 1.45.5 (07-ian-2020)
    Sistemul de fișiere de la /dev/vda2 este montat pe /; este necesară redimensionarea online
    old_desc_blocks = 6, new_desc_blocks = 7
    Sistemul de fișiere de pe /dev/vda2 are acum 13106683 (4k) blocuri.
    
  root@ns:~# df -h
    Filesystem Size Used Avail Use% Montat pe
     ...... snip .......
    /dev/vda2 49G 17G 31G 36% /

SUCCES!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.