Fragen zu gmirror (FreeBSD Raid-1)

tschepe

Well-Known Member
Hallo,

ich möchte mir nachträglich ein Raid-1 für meinen Server gönnen, dazu habe ich auch zwei identische Festplatten (ad0 und ad2). Wobei eine schon mit FreeBSD installiert wurde und einwandfrei läuft (ad0) (ad2 ist noch ganz frisch).
Dazu wollte ich der Anleitung "FreeBSD System Disk Mirroring - GEOM mirror Approach 2: Single Slice, Preferred, More Flexible" von Ralf S. Engelschall folgen.

Bei der Installation wurde ad0 so partitioniert:
Code:
******* Working on device /dev/ad0 *******
parameters extracted from in-core disklabel are:
cylinders=319120 heads=16 sectors/track=63 (1008 blks/cyl)

Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=319120 heads=16 sectors/track=63 (1008 blks/cyl)

Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 63, size 39070017 (19077 Meg), flag 80 (active)
        beg: cyl 0/ head 1/ sector 1;
        end: cyl 1023/ head 254/ sector 63
The data for partition 2 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 39070080, size 282599415 (137987 Meg), flag 0
        beg: cyl 1023/ head 254/ sector 63;
        end: cyl 1023/ head 254/ sector 63
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>
Auf ad0s1 ist mein FreeBSD System drauf (/, swap, /var, /tmp, /usr) und ad0s2 ist für eigene Daten.

Da man laut FreeBSD System Disk Mirroring den letzten Sektor frei lasen muss, weil dort Metadaten gespeichert werden, habe ich ad2 so partitioniert:
Code:
******* Working on device /dev/ad2 *******
parameters extracted from in-core disklabel are:
cylinders=319120 heads=16 sectors/track=63 (1008 blks/cyl)

Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=319120 heads=16 sectors/track=63 (1008 blks/cyl)

Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 63, size 39070016 (19077 Meg), flag 80 (active)
        beg: cyl 0/ head 1/ sector 1;
        end: cyl 871/ head 15/ sector 62
The data for partition 2 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 39070080, size 282599414 (137987 Meg), flag 0
        beg: cyl 872/ head 0/ sector 1;
        end: cyl 652/ head 8/ sector 62
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>
Dann meckert fdisk zwar rum das die Partitionen nicht auf einem Zylinder endet, aber ich denke mal das soll man ignorieren, oder?
Aber jetzt bin ich ein wenig von gmirror(8) verwirrt.
gmirror(8) schrieb:
Since the last sector is used for this purpose, it is possible to place a root file system on a mirror.
Muss ich jetzt den letzten Sektor frei lassen oder wird das sowieso gemacht?

Dann habe ich noch zwei Fragen:
  • Wenn ich dann ad2s1 mit bsdlabel bearbeiten muss, kann ich die Einstellungen dann einfach von ad0s1 kopieren? Aber dann fehlt ja ein Sektor?
  • Der Swap speicherplatz wir dann später in der Anleitung mit swapoff="YES" in /etc/rc.conf deaktiviert, habe ich dann überhaupt kein swap bereich mehr oder wird er dadurch nur nicht mitgespiegelt.

Gruß tschepe
 
Er meint hier, dass man von dem RAID1 auch booten kann, da die Metadaten hinter den Partitionen liegen und nicht wie sonst übrig vor ihnen. Wenn du aus zwei leeren Platten ein gmirror baust, werden am Ende etwa 5 Mb reserviert. Da man die Partitionen auf dem Mirror erstellt, sind sie für fdisk gar nicht sichtbar.
Du machst es andersrum, musst also mittels fdisk etwas Platz hinter der letzten Partition freilassen. Ein Zylinder sollte absolut ausreichend sein, aber wenn du sicher gehen willst, nimm einfach etwas mehr. Allerdings werden AFAIK die Metadaten auf BEIDE Platten geschrieben, weshalb der Platz auch auf beiden frei sein muss!

Musst du überhaupt manuell kopieren? Könnte man nicht nur eine Platte ändern und ein komplettes rebuild des Mirrors erzwingen?

Du hast keinen Swap mehr. Dies war bis -CURRENT irgendwann im Februar nötig, da ein Bug verhinderte, dass Seiten aus dem RAM korrekt auf den Mirror geschrieben wurden. Dies ist inzwischen allerdings gefixt!

Ach ja, einfacher wäre es alle Daten auszulagern, die Platten komplett zu löschen und dann mittels FreeSBIE den Mirror zu erstellen, Partitionieren und alles wieder rüber zu kopieren!
 
Danke für die Antwort. Jetzt kapier ich das ganze. Das Raid-1 wird auf der zweiten Festplatte erstellt und dann alle Daten von der ersten auf die zweite kopiert. Dann wird die erste gelöscht und die zweite Festplatte wird auf die erste gespiegelt.

Aber ich werde es der Einfachheit wohl doch so machen, dass ich alle Daten auslagere und das Raid mit FreeSBIE erstelle.

Gruß tschepe
 
Zurück
Oben