gmirorr + zfs mirror

Enrico M. enricom a teppisti.it
Mer 7 Gen 2009 09:33:39 CET


Il Tuesday 06 January 2009 19:00:59 Guido Falsi ha scritto:
> Enrico M. wrote:
> > Il Monday 05 January 2009 18:30:43 Guido Falsi ha scritto:
> >> On Mon, Jan 05, 2009 at 05:20:52PM +0100, Enrico M. wrote:
> >>> Ho un sistema con zfs per tutti i filesystes, tranne che per /
> >>> Ho comprato un secondo hard disk identico a quello che già è in
> >>> esercizio, per una configurazione raid 1
> >>> Posso combinare gmirror per la / con il mirror di zfs per tutto il
> >>> resto? Ossia, posso dare in pasto a gmirror l'intero disco e
> >>> specificare in /etc/fstab solo la partizione di /, in modo che gmirror
> >>> mi
> >>> ricostruisca pure il partizionamento del disco, senza avere problemi?
> >>
> >> Da quello che leggo enlla documentazione dovresti fare diversamente.
> >>
> >> sul disco che gia' hai avrai gia' ad0a per la / e ad0d per zfs.
> >>
> >> dovresti partizionare in maniera identica il nuovo disco, confiigurare
> >> gmirror tra ad0a e ad1a, e poi aggiungere ad1d alla zpool come mirror di
> >> ad0a. Almeno dalla documentazione perche' er ora non ho ancora applicato
> >> tale config.
> >>
> >> Far girare zfs sopra un gmirror mi sembra solo maoschistico visto che si
> >> gestisce egregiamente da solo il mirror.
> >
> > E' stata un'esperienza tragica nella quale ho perso circa 150 Gb di
> > dati!!!! Per fortuna che le cose importanti le avevo salvate pure su
> > un'altra macchina E vuoi sapere perché?
> > Perché (almeno credo io) l'algoritmo round-robin di geom non funziona
> > bene Tutte le volte che lo usavo mi scombinava le label dei dischi,
> > andando a piazzare sulla c un offset di 63!!!!!!
>
> Credo che quell'offset serva. Meglio usarlo, credo ci vada il loader o
> altre cose. Non averlo e' un cercarsi guai.
L'offset serve per nel creare le slices.
Infatti, con fdisk, i primi 63 blocchi non vengono mai assegnati alle slices e 
dovrebbero costituire l'MBR
Ma se vai a vadere le labels, e tra queste la c: che indica l'intero disco, 
partono sempre da 0. Se gli attribuisci un valore diverso, il sistema non 
parte.
>
> > Pensa che creando un label di gmirror con round-robin con un solo disco
> > iniziale, tutto ok
> > Aggiungevo il secondo e spappinava la label del secondo.
> > Alla fine ho utilizzato split e viaggia senza problemi
> > Mamma mia che roba.
>
leggendo qui 
http://unix.derkeiler.com/Mailing-Lists/FreeBSD/stable/2008-09/msg00070.html
sembrerebbe che la label a: debba avere un offset di 16
Cmq, impostando label a: con offset a 16 ed usando come algoritmo split invece 
che round robin il sistema parte regolarmente e le label non vengono 
modificate.
Unica stranezza sta nel fatto che al boot gmirror, dopo aver lanciato gm0, 
manda un avvertimento: WARNING: Expected rawoffeset 0, found 63.
E' identico a quando modificava le label, ma la macchina fa regolarmente il 
boot e le label non sono poi modificate.
Preciso di non aver usato la stessa identica soluzione di 
http://unix.derkeiler.com/Mailing-Lists/FreeBSD/stable/2008-09/msg00070.html
Li è stato creato un mirror per ogni label, io ho creato due slices, una per 
il filesystem ufs, la swap da crittografare con geli e la dumpdir, ed una per 
zfs
Quindi ho fatto il mirror della prima slice, non di ogni label
La cosa strana ora è un'altra.
Creato il pool ed i filesystem con zfs, montati, al riavvio il pool esiste 
ancora, ma i suoi filesystem risultano non montati.
In parole povere, bisogna rimontarli con zfs set mountpoint ad ogni riavvio.

> Credo tu stia facendo qualcosa di sbagliato. Puoi descrivere meglio la
> struttura dei dischi? Si possono vedere le label?
Ecco qua:
bsdlabel ad4s1
# /dev/ad4s1:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a:  2097136       16    4.2BSD     2048 16384 28552
  b:  4194304  2097152      swap
  c:  8385867        0    unused        0     0         # "raw" part, don't 
edit
  d:  2094411  6291456      swap

bsdlabel ad6s1
# /dev/ad6s1:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a:  2097136       16    4.2BSD     2048 16384 28552
  b:  4194304  2097152      swap
  c:  8385867        0    unused        0     0         # "raw" part, don't 
edit
  d:  2094411  6291456      swap

bsdlabel ad4s2
# /dev/ad4s2:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  c: 968382135        0    unused        0     0         # "raw" part, don't 
edit
  d: 968382119       16    4.2BSD        0     0     0


bsdlabel ad6s2
# /dev/ad6s2:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  c: 968382135        0    unused        0     0         # "raw" part, don't 
edit
  d: 968382119       16    4.2BSD        0     0     0


>
> > Un aiutino.
> > Ho installato su ogni disco il bootmanager
> > Come si fa a metterci le mani?
>
> Non so aiutarti su quello. L'handbook non dice nulla?
Pare di no


Maggiori informazioni sulla lista Aiuto