Puncte:0

QEMU-KVM, drbd și corosync - VM-urile nu funcționează după repornire

drapel br

Pe Debian 9.6 am QEMU-KVM Virtualization. După probleme de electricitate, această mașină se oprește. După ce l-am pornit din nou, nu pot porni niciun VM din cauza acestei erori:

eroare: eroare internă: proces ieșit în timpul conectării la monitor: 2022-02-03T12:01:58.403986Z qemu-system-x86_64: -drive file=/dev/drbd6,format=raw,if=none,id=drive-virtio -disk0,cache=none: Nu s-a putut deschide „/dev/drbd6”: sistem de fișiere numai pentru citire

Acest lucru se întâmplă pe fiecare dintre cele 4 VM. Fdisk vede doar asta:

Disc /dev/sda: 931,5 GiB, 1000204886016 octeți, 1953525168 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: dos
Identificatorul discului: 0x00037a37

Dispozitiv Boot Start End Sectors Size ID Tip
/dev/sda1 * 2048 19531775 19529728 9.3G fd Linux raid autodetect
/dev/sda2 19531776 35155967 15624192 7.5G fd Linux raid autodetect
/dev/sda3 35155968 1939451903 1904295936 908G fd Linux raid autodetect


Disc /dev/sdb: 931,5 GiB, 1000204886016 octeți, 1953525168 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: dos
Identificatorul discului: 0x000e1911

Dispozitiv Boot Start End Sectors Size ID Tip
/dev/sdb1 * 2048 19531775 19529728 9.3G fd Linux raid autodetect
/dev/sdb2 19531776 35155967 15624192 7.5G fd Linux raid autodetect
/dev/sdb3 35155968 1939451903 1904295936 908G fd Linux raid autodetect


Disc /dev/md0: 9,3 GiB, 9998098432 octeți, 19527536 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


Disc /dev/md1: 7,5 GiB, 7998525440 octeți, 15622120 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


Disc /dev/md2: 908 GiB, 974998331392 octeți, 1904293616 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

Mi-am dat seama că este o problemă drbd (sau corosync) despre care nu știam că există acolo și așa se face. Mai jos câteva informații care sunt aceleași pe mașinile cu probleme:

    # stare de serviciu drbd
â drbd.service - LSB: Controlați resursele DRBD.
   Încărcat: încărcat (/etc/init.d/drbd; generat; prestabilit furnizor: activat)
   Activ: activ (ieșit) din Mar 2022-02-08 11:34:48 CET; acum 6 minute
     Documente: man:systemd-sysv-generator(8)
  Proces: 12711 ExecStop=/etc/init.d/drbd stop (cod=ieșit, stare=0/SUCCESS)
  Proces: 12793 ExecStart=/etc/init.d/drbd start (cod=exit, status=0/SUCCESS)

Feb 08 11:34:47 brain systemd[1]: Pornește LSB: Controlează resursele DRBD....
Feb 08 11:34:47 brain drbd[12793]: Pornirea resurselor DRBD:[
Feb 08 11:34:47 brain drbd[12793]: create res: r0 r1 r10 r2 r3 r4 r5 r6 r7 r8 r9
Feb 08 11:34:47 brain drbd[12793]: pregateste disc: r0 r1 r10 r2 r3 r4 r5 r6 r7 r8 r9
Feb 08 11:34:47 brain drbd[12793]: ajustare disc: r0:failed(apply-al:20) r1:failed(apply-al:20) r10:failed(apply-al:20) r2:failed( apply-al:20) r3:failed(aplicare-al:20) r4:failed(aplicare-al:20) r5:failed(aplicare
Feb 08 11:34:47 brain drbd[12793]: ajusta net: r0 r1 r10 r2 r3 r4 r5 r6 r7 r8 r9
08 februarie 11:34:47 brain drbd[12793]: ]
Feb 08 11:34:48 brain drbd[12793]: AVERTISMENT: stdin/stdout nu este un TTY; folosind /dev/console.
Feb 08 11:34:48 brain systemd[1]: LSB pornit: Controlați resursele DRBD..



# cat /proc/drbd
versiune: 8.4.7 (api:1/proto:86-101)
versiunea src: F7D2F0C9036CD0E796D5958
 0: cs: Conectat ro:Secundar/Secundar ds:Fără disc/Fără disc C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 1: cs: Conectat ro:Secundar/Secundar ds:Fără disc/Fără disc C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 2: cs: Conectat ro:Secundar/Secundar ds:Fără disc/Fără disc C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 3: cs: Conectat ro:Secundar/Secundar ds:Fără disc/Fără disc C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 4: cs: Conectat ro:Secundar/Secundar ds:Fără disc/Fără disc C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 5: cs: Conectat ro:Secundar/Secundar ds:Fără disc/Fără disc C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 6: cs: Conectat ro:Secundar/Secundar ds:Fără disc/Fără disc C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 7: cs: Conectat ro:Secundar/Secundar ds:Fără disc/Fără disc C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 8: cs: Conectat ro:Secundar/Secundar ds:Fără disc/Fără disc C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 9: cs: Conectat ro:Secundar/Secundar ds:Fără disc/Fără disc C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
10: cs: Conectat ro:Secundar/Secundar ds:Fără disc/Fără disc C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

Când vreau să fac unul dintre discurile principale pe VE1, îmi dă eroare:

# drbdadm primar r0
0: Schimbarea stării a eșuat: (-2) Este nevoie de acces la datele UpToDate
Comanda „drbdsetup-84 primary 0” sa încheiat cu codul de ieșire 17

Pe VE2 (secundar) drbdadm secundar r0 funcționează.

# drbdadm up r0
open(/dev/vg0/lv-sheep) a eșuat: nu există un astfel de fișier sau director
Comanda „drbdmeta 0 v08 /dev/vg0/lv-sheep internal apply-al” s-a încheiat cu codul de ieșire 20

Și nu pot găsi /dev/vg0 nicăieri. Totul este în /dev/drbd/vg0/by-disk/lv-sheep.

Nu știu dacă aceste VM au existat, ar trebui să merg la secvența de comandă așa:

# drbdadm create-md r0
# drbdadm up r0
# drbdadm primar r0 --force
# mkfs.ext4 /dev/drbd0

Are cineva vreun gând?

EDITARE: Date suplimentare

    # vgdisplay
  --- Grup de volum ---
  Nume VG vg0
  ID sistem
  Format lvm2
  Zone de metadate 1
  Secvența de metadate nr. 26
  VG Access citire/scriere
  Stare VG redimensionabilă
  LV MAX 0
  Cur LV 11
  Deschideți LV 0
  PV maxim 0
  Cur PV 1
  Actul PV 1
  Dimensiune VG 908,04 GiB
  Dimensiune PE 4,00 MiB
  Total PE 232457
  Alloc PE / Dimensiune 177664 / 694,00 GiB
  Gratuit PE / Dimensiune 54793 / 214,04 GiB
  VG UUID cHjzTE-lZxc-J6Qs-35jD-3kRn-csJx-g5MgNy

# cat /etc/drbd.conf
# Puteți găsi un exemplu în /usr/share/doc/drbd.../drbd.conf.example

includ „drbd.d/global_common.conf”;
includ „drbd.d/*.res”;


# cat /etc/drbd.d/r1.res
resursa r1 {
        dispozitiv /dev/drbd1;
        disc /dev/vg0/lv-viewcenter;
        meta-disc intern;

        lansare {
# deveni-primar-pe ambele;
        }

        net {
                permite-două-primare;
                după-sb-0pri aruncare-zero-modificări;
                dupa-sb-1pri arunca-secundar;
                after-sb-2pri deconectare;
                cram-hmac-alg sha1;
                secret partajat „T/L0zE/i9eiPI”;
        }

        sincronizator {
                rata 200M;
        }

        pe creier {
                adresa 10.0.0.1:7789;
        }

        pe pinky {
                adresa 10.0.0.2:7789;
        }
}
Matt Kereczman avatar
drapel nr
Ați putea adăuga configurația(ele) DRBD la întrebarea dvs.? De obicei, acestea sunt fie în `/etc/drbd.d/*.res`, fie în `/etc/drbd.conf`. De asemenea, ce iese un `vgdisplay`?
drapel br
@MattKereczman a adăugat informațiile pe care le-ați cerut.
Puncte:1
drapel br

Totul funcționează chiar acum datorită comentariului lui Matt Kereczman. După comanda „vgdisplay” am văzut grupul de volum vg0. Următoarea comandă pe care am folosit-o a fost „lvdisplay” care mi-a imprimat toate VM-urile mele.

Următorii pași au fost să faci secvențe de comenzi:

# vgscan --mknodes
Descriptorul de fișier 8 (pipe:[270576]) s-a scurs la invocarea vgscan. PID părinte 15357: bash
Citirea grupurilor de volume din cache.
S-a găsit grupul de volum „vg0” folosind tipul de metadate lvm2

# vgchange -a y
Descriptorul de fișier 8 (pipe:[270576]) s-a scurs la invocarea vgchange. PID părinte 15357: bash
11 volum(e) logic(e) în grupul de volume „vg0” acum activ

Și au apărut toate volumele logice.Următorii pași au fost să faceți VM-ul principal, să îl ridicați și să porniți VM-ul:

# drbdadm primar r6
# drbdadm up r6
# virsh start VM

Și totul a început să funcționeze bine.

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.