Puncte:0

Cum pot face configurațiile LVM tolerante la boot cu unitatea USB atașată

drapel gi

Configurare: DELL PowerEdge R520, oVirt Node 4.4.1 x86_64

# pvs
  PV VG Fmt Attr PSize PFree   
  /dev/sda2 onn_ovirt01 lvm2 a-- 105,26 g 20,77 g
  /dev/sda3 VG_he_nfs lvm2 a-- <100,00g <10,00g
  /dev/sda4 VG_data_nfs lvm2 a-- <1,50t <206,00g

# lsblk
...

sdb 8:16 0 1.4T 0 disc 
ââsdb1 8:17 0 1.4T 0 parte /exports/nfs/backups

Problemă: Când sistemul repornește, unitatea de rezervă 1.4T conectată cu sata-to-usb devine sda, unde lvm nu găsește partițiile necesare pentru volumele fizice. Apoi, sistemul pornește în modul de salvare, unde trebuie să mă conectez prin monitorul/tastatura atașată, să demontez și să scot unitatea sata-to-usb, să comentez intrarea acesteia din fstab, să o deconectez și să repornesc sistemul. Apoi, odată ce am pornit corect cu dispozitivul corect ca sda, trebuie să anulez tot ce am făcut în modul de salvare cu dispozitivul sata-to-usb.

Totul este că fstab este deja definit pentru a fi montat prin UUID sau /dev/mapper/.

Întrebarea: Este posibil să se schimbe configurația LVM astfel încât să obțină volumul fizic potrivit pentru sistem, indiferent de ce dispozitiv devine sda? Este posibil fără recreere și migrare (am datele de sistem pe un RAID 1 (oglindire) cu hot-spare, deci nu mai există spațiu în șasiu pentru un aranjament de unitate de schimb)? Sunt deschis oricărei soluții care nu necesită ștergerea datelor sau crearea unui nou aranjament RAID pentru înlocuire. Dacă acest lucru nu este posibil, atunci sunt deschis la orice, într-adevăr - sau pur și simplu voi continua să o rezolv în modul de salvare de fiecare dată când se repornește în mod neașteptat.

Puncte:0
drapel za
  1. LVM nu stochează căile dispozitivului. UUID-urile componentelor sunt stocate în superblocurile LVM, iar aceste UUID-uri sunt folosite exclusiv pentru identificarea componentelor (PV, VG, LV). LVM doar scanează toate dispozitivele bloc disponibile (care au permisiunea de a le scana este configurat în /etc/lvm/lvm.conf), detectează volumele fizice și adună grupuri de volume din ele. Pur și simplu nu se uită pe ce tip/calea dispozitiv are volumul fizic de data aceasta. Este foarte robust la reindexarea dispozitivelor și așa mai departe. Deci, vă va găsi datele dacă vă mutați volumele în /dev/cciss/cXdYpZ (vechiul driver de bloc HP/Compaq SmartArray creează astfel de dispozitive) sau în /dev/hdXY sau /dev/sdXY sau /dev/mapper/...(orice lucru construit pe DM plasează acolo noduri de dispozitiv â crypto, multipath, etc.), /dev/md/... (Linux MD RAID) și așa mai departe. Îngrijorarea ta este greșită și problema ta este în altă parte.

  2. Cauza problemei dvs. ar putea fi încetineala USB-ului. Are latențe mari; de asemenea, hard disk-urile externe sunt foarte lente la pornire (acest lucru se face pentru a limita creșterea consumului de energie în timpul pornirii). USB nu este despre performanță, ci despre robustețe în mâinile utilizatorilor fără experiență. Deci, inițializarea durează. Trebuie să configurați scripturile de pornire (probabil, scriptul de inițializare initramfs) pentru a permite întârzieri mari/timeout-uri, astfel încât dispozitivele USB să aibă suficient timp pentru a porni și a se instala.

  3. O altă cauză tipică este configurația proastă a bootloader-ului; de exemplu, s-ar putea aștepta să-și găsească datele pe „prima partiție a primului hard disk”, iar dacă „primul hard disk” se întâmplă să fie un dispozitiv greșit, nu are o configurație și imaginea nucleului pentru a porni și te arunca in bootloader carapace de salvare. Linia de comandă a nucleului sau ceva care este introdus în initramfs poate fi legată de o cale concretă a dispozitivului și, prin urmare, schimbarea dispozitivelor face ca acesta să nu poată găsi / și vă aruncă în initramfs carapace de salvare. Observați că acestea sunt diferit obuze de salvare și înțelegerea care vezi ca este important.

  4. RAID0 cu rezervă este un oximoron. RAID0 nu are redundanță, nicio stare degradată definită, nimic care să recupereze matricea într-o stare optimă de la o defecțiune a dispozitivului, așa că de rezervă nu ar putea ajuta. Orice problemă cu dispozitivul component are ca rezultat, în general, mutarea unui întreg array direct în starea eșuată. Orice alt nivel RAID are o redundanță, va trece mai întâi în stare degradată în cazul defecțiunii unei componente, deci va beneficia de rezervă, dar RAID0 nu are.

JayRugMan avatar
drapel gi
Am confuz RAID 0 și 1. Unitățile mele sunt oglindite, deci RAID 1 (am corectat-o ​​mai sus). În orice caz, ceea ce spui despre RAID 0 are sens. Vă mulțumesc că m-ați îndemnat să corectez acest detaliu în întrebarea mea. În ceea ce privește restul, tot ce știu este că, atunci când verific lsblk în modul de salvare, unitatea USB este sda ​​și LVM-ul nu găsește datele de sistem pe sdb, care este locul în care dispozitivul intern, RAID 1 este mapat atunci când este pornit cu Conectat prin USB la SATA. Cum învinge un USB lent dispozitivul intern pentru a deveni sda și de ce ar conta acest lucru, pe baza a tot ce ai scris?
JayRugMan avatar
drapel gi
Nu pot încerca acest lucru acum, dar se pare că dacă adaug partiții sdb la filtrul LVM, ar putea prinde datele de sistem la pornire, chiar dacă sda este mapat pe unitatea mea de rezervă USB. Momentan, numai sda este specificat în filtrul din configurațiile lvm. Când ajung acasă, o să încerc asta.
Nikita Kipriyanov avatar
drapel za
Este foarte ciudat să ai doar sda în filtru. Scanarea SCSI este asincronă, dispozitivele se reordonează, acest lucru este normal și de așteptat; este *inutil* să permiteți doar scanarea unor dispozitive sdX și să interziceți scanarea altora. LVM nu face acest lucru în mod implicit, așa că trebuie să fie setarea dvs. personalizată.
JayRugMan avatar
drapel gi
Poate că eu am făcut-o, nu știu (trebuie să fi fost, cred). Nu-mi amintesc să fi făcut asta. În orice caz, am adăugat partițiile sdb la filtru și a funcționat - acestea sunt scanate și datele de sistem sunt găsite foarte bine de LVM (vezi răspunsul pe care l-am postat).
Nikita Kipriyanov avatar
drapel za
Era deja o idee greșită să-l ating în primul rând. Doar reveniți la valorile implicite ale pachetului original.
Puncte:0
drapel gi

Am rezolvat problema. Tot ce trebuia să fac a fost să adaug partiții sdb la filtrul în /etc/lvm/lvm.conf:

A fost:

filtru = ["a|^/dev/sda2$|", "a|^/dev/sda3$|", "a|^/dev/sda4$|", "r|.*|"]

Schimbat în:

filtru = ["a|^/dev/sda2$|", "a|^/dev/sda3$|", "a|^/dev/sda4$|", "a|^/dev/sdb2$|" , „a|^/dev/sdb3$|”, „a|^/dev/sdb4$|”, „r|.*|”]

Oricine altcineva încearcă acest lucru, asigurați-vă că vă verificați modificările și regenerați memoria cache vgscan

prima mea dus (am uitat de | după $):

[root@host lvm]# vgscan
  Separator nevalid la sfârșitul expresiei regex.
  Model de filtru nevalid „a|^/dev/sdb2$”.
  Nu s-a putut crea filtrul pentru dispozitivul expresii regex

a doua mea încercare:

[root@host lvm]# vgscan
  S-a găsit grupul de volum „VG_data_nfs” folosind tipul de metadate lvm2
  S-a găsit grupul de volum „VG_he_nfs” folosind tipul de metadate lvm2
  S-a găsit grupul de volum „onn_ovirt01” folosind tipul de metadate lvm2

Unitatea sata-to-usb apare în continuare ca sda, dar nu contează - LVM trece la partițiile sdb când nu se găsește nimic pe sda. A trebuit să montez manual unitatea sata-to-usb, dar pentru că este în /etc/fstab corect, a trebuit doar sa emit monte -a. Va trebui să rezolv această problemă mai târziu și să iau această victorie pentru moment.

Nikita Kipriyanov avatar
drapel za
Aceasta este o soluție proastă. Mai bine adăugați toate dispozitivele `/dev/sd*` pentru a fi scanate. Este o idee greșită să filtrați după indexul dispozitivului, așa cum am explicat în răspunsul meu. Ce se întâmplă dacă adăugați o altă unitate USB sau o altă unitate logică RAID? Cel mai bine este să reveniți `lvm.conf` la valorile implicite ale distribuției; crede-mă, **nu ai nicio nevoie valabilă să atingi asta**.
JayRugMan avatar
drapel gi
Deci vrei să spui că dacă opresc cu totul un filtru, va funcționa? O sa incerc cand voi avea ocazia. În orice caz, de ce atât de hotărât să nu folosiți funcționalitatea oferită de lvm? Acest server este al meu și știu ce va fi conectat la el și ce nu. Nu sunt deloc îngrijorat de acest _nimic_ încurcat.
Nikita Kipriyanov avatar
drapel za
Vă sugerez să lăsați un fișier ca atunci când a fost instalat de managerul de pachete. În peste 20 de ani de lucru cu Linux, am avut un singur caz presupus valid pentru a atinge asta, în mediul cluster. Apreciez funcționalitatea oferită de LVM. De asemenea, susțin utilizarea educată a parametrilor de configurare pentru scopul lor. Ai avut vreun scop? Chiar ați vrut să restricționați scanarea pentru volume LVM doar la sda, în ciuda faptului că dispozitivele SD tind să fie redenumite? Deci ți-a cauzat „problema”. De asemenea, ține evidența modificărilor și ia în considerare mai întâi să le revii atunci când ceva nu merge 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.