Podivne chovani gmirror/gpart

Miroslav Lachman 000.fbsd at quip.cz
Tue Mar 8 00:55:30 CET 2022


On 07/03/2022 12:55, pm-conf at kostax.cz wrote:
> Zdravim konferenci,
> mam stroj, kde je gmirror ze dvou disku (ada0, ada1). V gmirroru nejsou 
> jednotlive partition, ale cely disk. Drive to tak slo udelat a 
> postupnymi upgrady jsem to dostal az sem. Disky jsou delene pomoci GPT, 
> mam tam bezne rozdeleni disku na /, /var, /tmp, /usr. Nize popsane 
> postupy jsem pouzil mnohokrat a narazil az ted.

Tohle mi prijde trochu podezrele, protoze GPT i gmirror se snazi zapsat 
do posledniho sektoru. Pokud si tedy dobre vpzominam, tak mirrorovat 
cely disk slo s pouzitim MBR/BSD schema, ale s pouzitim GPT se miroruji 
az jednotlive oddily.

# gmirror status
           Name    Status  Components
mirror/gm0root  COMPLETE  ada0p2 (ACTIVE)
                           ada1p2 (ACTIVE)
mirror/gm0swap  COMPLETE  ada0p3 (ACTIVE)
                           ada1p3 (ACTIVE)
  mirror/gm0var  COMPLETE  ada0p4 (ACTIVE)
                           ada1p4 (ACTIVE)
  mirror/gm0usr  COMPLETE  ada0p5 (ACTIVE)
                           ada1p5 (ACTIVE)
  mirror/gm0tmp  COMPLETE  ada0p6 (ACTIVE)
                           ada1p6 (ACTIVE)
mirror/gm0vol0  COMPLETE  ada0p7 (ACTIVE)
                           ada1p7 (ACTIVE)

> Jeden z disku (ada1) odesel, ani pri jeho vyndani to nenabihalo ani v 
> single user modu.

Co znamena, ze to nenabihalo? Napsalo to nejakou chybu? Byla to chyba z 
BIOSu (ze nevidi zadny disk), nebo chyba az ve FreeBSD bootloaderu?

Zazil jsem totiz servery, kde BIOS dokazal bootovat jen z prnviho disku, 
takze kdyz odesel prvni, byl vyjmut a nahrazen prazdnym, server 
nedokazal nabootovat. Musel se druhy disk dat na pozici prvniho a pak to 
bootovalo.
Druha vec, co me napada, kdyz je to rozdelene s GPT, tak jak jsem ukazal 
vyse, tak se na oba dva disky musi zapsat boot code pomoci gpart. Pokud 
byl zapsany z nejakeho duvodu jen na jednom a ten byl vyjmut, tak to 
zase nemuze nabootovat.

Tady by to proste chtelo vedet konkretni chybu toho "nenabihalo".

> Tam jsem samozrejme nevidel samostatne disky, protoze 
> je nahrany geom_mirror a ten to nedovi, vi totiz, ze je tam nejaky 
> mirror. Tak jsem zvolil nasledujici (a osvedceny)postup:
> v boot loaderu jsem odehral geom_mirror a zaroven ho nastavil jako 
> disabled. Pak uz je mozne primontovat samostatny disk, prepsat fstab (z 
> /dev/mirror/gm0a na /dev/ada0a) rebootnout a mam system zase funkcni.

Tohle mi tak trochu pripomina situaci, kdy odchazi jeden disk, ale 
fyzicky jsi odebral ten "zdravy" a tak ti tam zustal disk, ktery je 
gmirrorem oznaceny jako "failed". Gmirror by jinak mel uplne normalne 
nabootovat z jednoho funkcniho disku (a mel vzdycky nabootoval). 
Maximalne bych u toho vyzkousel jeste gmirror forget, aby se ani 
nesnazil hledat nejaky jiny disk.

Kdyz mas disky / oddily primountovane, tak uz asi nemuzes nacits gmirror 
a ocekavat, ze to zacne fungovat. To bys musel spis jen povolit v 
loader.conf (a zpatky v fstab) a rebootovat.

> Jenze jsem se zasekl u druhe casti meho bezneho postupu - nahrat 
> geom_mirror, znovu vytvorit gm0, upravit fstab a reboot.

A ty jsi necim ten mirror gm0 pred tim zrusil? Z toho popisu to tak 
nevypada, to bys musel jeste pouzit gmirror clear o kterem nepises. 
Pokud na tom disku porad jsou metadata gmirroru, tak se ho zkratka 
system snazi okamzite vyuzit, kdyz nactes modul geom_mirror rucne.

> Nejprve jsem myslel, ze je problem s nahranim geom_mirror, ze proste pri 
> nahrani si na ten disk sahne, zjisti, ze tam nejaky mirror byl a na tom 
> selhava. Prikaz kldload geom_mirror totiz nikdy neskonci, nejde ani ctrl+c.
> 
> Rikal jsem si, ze tedy smazu metadata rucne, jenze jsem zjistil, ze se 
> mi gpart chova stejne. I kdyz zkusim gpart /dev/ada1 (takze druhy disk), 
> tak opet se z prikazu nedostanu ven, ctrl+c taky nic.
> 
> Muzu udelat cistou instalaci a data tam presunout, ale zajimalo by me, 
> kde je problem nebo zda neni nejaka jednoducha rada, jak z toho.

Me to prijde cele nejak chaoticke.

Jestli mas moznost to nabootovat z nejakeho jineho media (USB flash 
disk) s vypnutym gmirrorem, tak to udelej.
Zkontroluj si pomoci smratmontools, ze je ten disk opravdu OK.
Pokud chces mirror udelat znovu, tak na tom puvodnim spust gmirror clear 
a pak vytvor novy mirror stejnych parametru, do ktereho pak pridas i ten 
druhy (novy) disk.

Pokud chces laborovat s tim soucasnym diskem s existujicimi metadaty o 
gmirroru, tak opet, zkus nabootovat z USB flashdisku, na tom disku 
upravit zpatky fstab, aby obsahoval zaznamy s gm0 a ne ada0, zkus 
gmirror forget a pak natahni modul geom_mirror, abys videl, jestli se ti 
spravne objevi gm0. Pokud ano, zkus to rebootovat baz USB flashdisku. 
Melo by to nabehnout z puvodniho jedineho disku.
Pokud nabehne, pridej druhy disk, gmirror insert a nech to synchronizovat.

Mirek


More information about the Users-l mailing list