Puncte:0

DRBD cu meta disc extern

drapel ru

Încerc să creez un failover cu DRBD și am două partiții.

Partiția 1) /dev/sda4 este configurată pentru KVM-urile pe care le voi crea. Partiția 2) /dev/sda5 este pentru metadatele DRBD

Fișierul meu de configurare este mai jos

resursa r0 {
    protocolul C;
    lansare {
            wfc-timeout 15;
            degr-wfc-timeout 60;
    }
    net {
            cram-hmac-alg sha1;
            secret partajat „SECRET_KEY”;
    }
    pe Server1{
            dispozitiv /dev/drbd0;
            disc /dev/sda4;
            adresa IP:7788;
            meta-disc /dev/sda5;
    }
    pe Server2{
            dispozitiv /dev/drbd0;
            disc /dev/sda4;
            adresa IP:7788;
            meta-disc /dev/sda5;
    }

}

Când rulez drbdadm create-md r0, rulează cu succes, dar creează /dev/drbd0 pe ambele partiții.

    ââsda4 8:4 0 7.2T 0 parte
    â ââdrbd0 147:0 0 7.2T 1 disc
    ââsda5 8:5 0 399M 0 parte
      ââdrbd0 147:0 0 7.2T 1 disc

Înțeleg că ar trebui să-l creeze doar pe meta disc, care este /dev/sda5. Motivul pentru care am configurat meta discul este pentru a evita orice scriere pe sda4. Am dreptate în acel raționament sau îmi lipsește ceva.

Puncte:2
drapel nr

Am confirmat că așa se face lsblk ieșirea arată pe AlmaLinux 8.5 când se utilizează metadate externe cu DRBD. Dispozitivul DRBD este doar un singur dispozitiv virtual bloc stratificat peste ambele partiții din configurația dvs.

Funcționează conform așteptărilor. Dacă inspectați dispozitivele bloc folosind alte metode/utilități, veți vedea că aveți doar unul singur /dev/drbd0, iar partiția de metadate pe care ați creat-o are dimensiunea la care v-ați aștepta.

De exemplu, configurația mea folosind două volume LVM:

resursa r0 {
    protocolul C;
    lansare {
            wfc-timeout 15;
            degr-wfc-timeout 60;
    }
    net {
            cram-hmac-alg sha1;
            secret partajat „SECRET_KEY”;
    }
    pe Server1{
            dispozitiv /dev/drbd0;
            disc /dev/drbdpool/data; # 1GiB lvm pe /dev/sdb
            meta-disc /dev/drbdpool/meta; # 4MiB lvm pe /dev/sdb
            192.168.1.11:7788;
    }
    pe Server2{
            dispozitiv /dev/drbd0;
            disc /dev/drbdpool/data; # 1GiB lvm pe /dev/sdb
            meta-disc /dev/drbdpool/meta; # 4MiB lvm pe /dev/sdb
            192.168.1.12:7788;
    }

Arată exact la ce mă aștept /proc/partiții:

# cat /proc/partitions 
nume major minor #blocuri

   8 0 20480000 sda
   8 1 2048000 sda1
   8 2 18430976 sda2
   8 16 8388608 sdb
 253 0 4096 dm-0
 253 1 1048576 dm-1
 147 0 1048576 drbd0

blockdev --raport arata si bine:

# blockdev --report /dev/drbd0
RO RA SSZ BSZ StartSec Size Device
rw 256 512 4096 0 1073741824 /dev/drbd0
# blockdev --report /dev/drbdpool/meta 
RO RA SSZ BSZ StartSec Size Device
rw 8192 512 4096 0 4194304 /dev/drbdpool/meta
# blockdev --report /dev/drbdpool/data
RO RA SSZ BSZ StartSec Size Device
rw 8192 512 4096 0 1073741824 /dev/drbdpool/data

Acesta este probabil unde lsblk devine confuz:

# cat /sys/block/drbd0/size 
2097152
# cat /sys/block/dm-0/size 
8192
# cat /sys/block/dm-1/size 
2097152
# cat /sys/block/dm-0/holders/drbd0/size 
2097152
# cat /sys/block/dm-1/holders/drbd0/size 
2097152
drapel ru
OK... atunci sunt confuz de ce DRB0 ocupă întregul disc al SDA4. Din anumite motive i se alocă 7,2T. De ce dacă metadatele ar trebui să fie pe SDA5?
Matt Kereczman avatar
drapel nr
Ați configurat DRBD să facă asta setând „disk /dev/sda4;”. Acesta este modul în care funcționează DRBD: dați un întreg disc/partiție lui DRBD și apoi utilizați dispozitivul DRBD rezultat la fel ca orice alt disc/partiție. Presupun că veți dori să formatați `/dev/drbd0` cu orice sistem de fișiere pe care doriți să-l utilizați și `mount /dev/drbd0 /var/lib/libvirt/images`, sau oriunde ați configurat libvirt pentru a vă stoca imaginile VM . Deoarece ați montat dispozitivul DRBD, tot ceea ce scrieți în acel punct de montare va fi replicat peer-ului prin intermediul dispozitivului DRBD. Metadatele DRBD sunt pe `/dev/sda5`...
drapel ru
OK... Asta are sens. Am presupus că DRB0 și VM-urile vor locui una lângă alta pe SDA4, dar ceea ce spui este că toate datele pe care le folosesc trebuie să fie pe deasupra DRBD0 corecte?
Puncte:-1
drapel ru

În sfârșit mi-am dat seama de asta. Punând grupul de volum deasupra DRBD0, totul funcționează acum.

Am întâmpinat o problemă când am creat un grup de volum pe dispozitiv și a trebuit să adaug un filtru la lvm.conf

Am primit o eroare care spunea

Nu se poate folosi dispozitivul /dev/drbd/ cu duplicate

Tocmai am adăugat asta la secțiunea de dispozitive

filtru = [ "r|/dev/sda4|", "r|/dev/disk/|", "r|/dev/block/|", "a/.*/" ]

Totul funcționează grozav acum

Matt Kereczman avatar
drapel nr
Stratificarea LVM peste DRBD nu a schimbat nimic semnificativ. L-ai fi putut folosi așa cum a fost, deoarece nu au existat probleme așa cum ai avut-o. Este mai obișnuit să puneți LVM sub DRBD, astfel încât să fie mai ușor să creșteți dispozitivul mai târziu. De asemenea, va trebui să activați/dezactivați VG-urile la failover cu această configurare.
drapel ru
A fost o problemă în modul în care am avut-o. Nu a mers. Nu am putut crea un LVM în modul în care a fost configurat
Matt Kereczman avatar
drapel nr
Este prima dată când menționezi LVM ca cerință. Vei deruta oamenii care dau peste postările tale în viitor dacă omiți detalii ca acesta.

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.