On 07/03/2022 12:55, [email protected] 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
--
FreeBSD mailing list ([email protected])
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem