[SOLVED]ZFS Raid1 Platte ausgetauscht

Alles was in keine andere Systemkategorie passt
User avatar
doll1
Posts: 31
Joined: 2012-12-06 19:23
Location: Düsseldorf

[SOLVED]ZFS Raid1 Platte ausgetauscht

Post by doll1 »

Nach einem Festplattencrash und erfolgreichem Austausch auf meinem S4Y-FreeBSD9.1-Server zeigt mir zpool status

Code: Select all

root@ws:~> zpool status
  pool: tank
 state: DEGRADED
status: One or more devices has been removed by the administrator.
        Sufficient replicas exist for the pool to continue functioning in a
        degraded state.
action: Online the device using 'zpool online' or replace the device with
        'zpool replace'.
  scan: none requested
config:

        NAME                      STATE     READ WRITE CKSUM
        tank                      DEGRADED     0     0     0
          mirror-0                DEGRADED     0     0     0
            12157851983004592904  REMOVED      0     0     0  was /dev/ada0p3
            ada1p3                ONLINE       0     0     0

errors: No known data errors
Da das ZFS (und Probleme damit erst recht :-o ) für mich Neuland ist, bin ich mir unsicher, wie ich jetzt weiter vorgehen muss um die Platte ins System zu integrieren.

Bin für jeden Schubser in die richtige Richtung dankbar :-B
Last edited by doll1 on 2013-12-30 10:39, edited 2 times in total.

ddm3ve
Moderator
Moderator
Posts: 1182
Joined: 2011-07-04 10:56

Re: ZFS Raid1 Platte ausgetauscht

Post by ddm3ve »

Code: Select all

zpool replace /dev/ada0p3
?
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.

User avatar
doll1
Posts: 31
Joined: 2012-12-06 19:23
Location: Düsseldorf

Re: ZFS Raid1 Platte ausgetauscht

Post by doll1 »

ddm3ve wrote:

Code: Select all

zpool replace /dev/ada0p3
?
Sorry für die echt späte Reaktion.

Ja, das ist die triviale Antwort.

Mein Problem dabei ist, wie bereite ich das Ganze vor? ada0p3 ist ja nicht ada0. Gehe ich also vorher ins Recovery-System und mache ein

Code: Select all

dd if=/dev/sda of=/dev/sdb
???
Last edited by doll1 on 2013-12-15 19:14, edited 1 time in total.

User avatar
daemotron
Administrator
Administrator
Posts: 2636
Joined: 2004-01-21 17:44

Re: ZFS Raid1 Platte ausgetauscht

Post by daemotron »

doll1 wrote:Mein Problem dabei ist, wie bereite ich das Ganze vor? ada0p3 ist ja nicht ada0. Gehe ich also vorher ins Recovery-System und mache ein

Code: Select all

dd if=/dev/sda of=/dev/sdb
???
Nein, das solltest Du nicht tun - zumal wenn ich richtig gesehen habe die erste Platte getauscht wurde, du so herum also den noch auf ada1 (aka sdb) vorhandenen Daten den Todesstoß versetzen würdest. Den Datenabgleich zwischen vdevs sollte man immer ZFS selbst überlassen, und wenn ein Pool degraded ist, muss zwingend ein resilver stattfinden (wird automatisch durch zpool replace ... ausgelöst).

Das korrekte Vorgehen nach Tausch der defekten Platte:
  1. Partitionierungsschema auf dem nackten Datenträger anlegen. Dem Device-Namen nach gehe ich davon aus, dass es sich um ein GPT-Schema handelt - man gpart ist hier Dein Freund; konkret möchtest Du gpart create verwenden.
  2. Verloren gegangene Partitionen anlegen. bei ada0p1 handelt es sich vermutlich um eine Partition vom Typ freebsd-boot, bei ada0p2 wahrscheinlich um freebsd-swap und bei ada0p3 mit großer Wahrscheinlichkeit um freebsd-zfs. Eventuell hilft ein gpart list ada1, um zu sehen, wie die Platte aufgeteilt werden müsste. Notiz am Rande: solche Informationen legt man sich bei der Installation als Doku ab...
  3. Swap auf ada0p2 wieder aktivieren (so mein Tipp denn richtig war), ada0p3 wie von ddm3ve beschrieben wieder in den Pool aufnehmen, resilver abwarten, fertig.
“Some humans would do anything to see if it was possible to do it. If you put a large switch in some cave somewhere, with a sign on it saying 'End-of-the-World Switch. PLEASE DO NOT TOUCH', the paint wouldn't even have time to dry.” — Terry Pratchett, Thief of Time

User avatar
doll1
Posts: 31
Joined: 2012-12-06 19:23
Location: Düsseldorf

Re: ZFS Raid1 Platte ausgetauscht

Post by doll1 »

Danke!
Notiz am Rande: solche Informationen legt man sich bei der Installation als Doku ab...
](*,)

ddm3ve
Moderator
Moderator
Posts: 1182
Joined: 2011-07-04 10:56

Re: ZFS Raid1 Platte ausgetauscht

Post by ddm3ve »

Btw. üben macht den Meister. Und den "Katastrophenfall" sollte man regelmässig üben.
Sonst weiss keiner wie das mit dem Feuerwehrschlauch funktioniert, wenn es dann mal brennt.

Aus eigener Erfahrung:
Viele Unternehmen sind auf einen KFall nicht oder nur ungenügend vorbereitet.
So lerne ich immer weider Unternehmen kennen, die zwar ein theoretisch existenzens Backup haben, aber im Fall der Fälle erstmal lernen müssen, was eigentlich eine Point in time Recovery bei Datenbanken wirklich bedeutet.

Dass man also den KFall regelmässig üben sollte wird gerne vegessen und wenn es dann mal knallt ist es meist zu spät.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.

User avatar
doll1
Posts: 31
Joined: 2012-12-06 19:23
Location: Düsseldorf

Re: ZFS Raid1 Platte ausgetauscht

Post by doll1 »

daemotron wrote:
  1. Partitionierungsschema auf dem nackten Datenträger anlegen. ...
  2. Verloren gegangene Partitionen anlegen. bei ada0p1 handelt es sich vermutlich um eine Partition vom Typ freebsd-boot, bei ada0p2 wahrscheinlich um freebsd-swap und bei ada0p3 mit großer Wahrscheinlichkeit um freebsd-zfs.
Richtig vermutet.

Bevor ich da loslege, noch ein paar Vermutungen meinerseits.

Kann ich davon ausgehen, dass freebsd-swap nach Neuanlage als ada0p2 automagisch vom System korrekt eingeordnet und parallel zu ada1p2 benutzt wird?

Und wie verfahre ich mit freebsd-boot?

Code: Select all

dd if=/dev/ada1p1 of=/dev/ada0p1
8-[

ddm3ve
Moderator
Moderator
Posts: 1182
Joined: 2011-07-04 10:56

Re: ZFS Raid1 Platte ausgetauscht

Post by ddm3ve »

Wenn die Swap Partiton auf bsd das gleiche ist wie auf Linux, dann gibt es da nicht wie zu beachten.
Ja mit dem Mounten der Swap Partition wird diese automatisch vom System genutzt.

Bei der Boot Partition wäre es wohl wichtig zu verstehen, ob diese ebenfalls als Raid Verbund genutzt wurde.

Wenn das auch ein zpool Raid1 war, dann läuft es identisch ab.
Btw. die swap Partition war hoffentlich kein Raid Verbund. Hier macht es in der Tat keinen Sinn.

Sowit ich Deine obige Ausgabe verstehe, waren die beiden anderen Partitionen aber nicht in einem zpool zu finden.
Damit müsstest Du wohl die Daten aus der alten Partition in die neue kopieren. Meiner Meinung nach muss das aber nicht über dd erfolgen. Partition erstellen, einmounten und Daten per cp kopieren sollte ebenfalls ausreichen.

Wichtiger wäre es, dass Du den MBR auf die Neue Platt bekommst.
Das kann Dr Daemotron vermutlich besser erklären als ich, wie das auf Freebsd abläuft.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.

User avatar
daemotron
Administrator
Administrator
Posts: 2636
Joined: 2004-01-21 17:44

Re: ZFS Raid1 Platte ausgetauscht

Post by daemotron »

doll1 wrote:Kann ich davon ausgehen, dass freebsd-swap nach Neuanlage als ada0p2 automagisch vom System korrekt eingeordnet und parallel zu ada1p2 benutzt wird?
Wenn ein entsprechender Eintrag in der fstab besteht, dann ja (beim nächsten Bootvorgang). Im laufenden Betrieb helfen swapon oder swapctl.
doll1 wrote:Und wie verfahre ich mit freebsd-boot?

Code: Select all

dd if=/dev/ada1p1 of=/dev/ada0p1
8-[
Im Regelfall genügt ein

Code: Select all

gpart add -b 34 -s 64k -t freebsd-boot ad0
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ad0
siehe z. B. https://wiki.freebsd.org/RootOnZFS/GPTZFSBoot/Mirror
ddm3ve wrote:Wenn die Swap Partiton auf bsd das gleiche ist wie auf Linux, dann gibt es da nicht wie zu beachten.
Ja mit dem Mounten der Swap Partition wird diese automatisch vom System genutzt.
Ich gehe davon aus, dass ein fstab-Eintrag vorhanden ist. Ansonsten werden Swap-Partitionen nicht einfach vom System genutzt, auch wenn sie den richtigen Partitionstypen haben.
ddm3ve wrote:Bei der Boot Partition wäre es wohl wichtig zu verstehen, ob diese ebenfalls als Raid Verbund genutzt wurde.

Wenn das auch ein zpool Raid1 war, dann läuft es identisch ab.
Hier reden wir tatsächlich über unterschiedliche Dinge. Der OP nutzt GPT als Partitionierungsschema; eine GPT Bootpartition ist nicht zu verwechseln mit /boot - dieses Verzeichnis liegt bei der gewählten Konstruktion tatsächlich mit im ZFS Pool. Bei FreeBSD gibt es übrigens auch anders als bei Linux keine Tradition, /boot auf eine eigene Partition auszulagern - doch das nur am Rande... Die GPT Boot Partition ist nur 64kB groß und nur dazu gedacht, den Bootloader aufzunehmen - anders als beim MBR-Schema ist dafür nämlich kein Platz direkt hinter der Partitionstabelle vorgesehen.
ddm3ve wrote:Btw. die swap Partition war hoffentlich kein Raid Verbund. Hier macht es in der Tat keinen Sinn.
Das sollte man in der Tat dem Kernel überlassen, das ist meistens effektiver. Auf einen Zpool sollte man Swap übrigens besser nicht packen, auch wenn es theoretisch möglich wäre - ZFS selbst ist ein fieser kleiner Speicherfresser, und wenn ein System eh schon am swappen ist, würde das den Speicherverbrauch in einer Spirale hochtreiben.
ddm3ve wrote:Sowit ich Deine obige Ausgabe verstehe, waren die beiden anderen Partitionen aber nicht in einem zpool zu finden.
Damit müsstest Du wohl die Daten aus der alten Partition in die neue kopieren. Meiner Meinung nach muss das aber nicht über dd erfolgen. Partition erstellen, einmounten und Daten per cp kopieren sollte ebenfalls ausreichen.
Wie gesagt, die erste Partition enthält nur den Bootloader, und den installiert man mit o. g. Befehl, und bei Swap muss man sich eh um nix kümmern. Um den Inhalt der dritten Partition kümmert sich ZFS von selbst; insgesamt muss man also nix kopieren - weder mit dd, noch mit cp.
“Some humans would do anything to see if it was possible to do it. If you put a large switch in some cave somewhere, with a sign on it saying 'End-of-the-World Switch. PLEASE DO NOT TOUCH', the paint wouldn't even have time to dry.” — Terry Pratchett, Thief of Time

ddm3ve
Moderator
Moderator
Posts: 1182
Joined: 2011-07-04 10:56

Re: ZFS Raid1 Platte ausgetauscht

Post by ddm3ve »

Alles klar vielen dank für das Update.

Ich werd mir wohl mal eine Freebsd Umgebung aufbauen müssen und mir das mit dem zfs genauer an sehen.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.

User avatar
doll1
Posts: 31
Joined: 2012-12-06 19:23
Location: Düsseldorf

Re: ZFS Raid1 Platte ausgetauscht

Post by doll1 »

Vielen Dank für die kompetente Auskunft und alles Gute für 2014 ^:)^

Nachtrag
Zunächst habe ich

Code: Select all

/sbin/gpart backup ada1 | /sbin/gpart restore -F ada0
gemacht um ada0 identisch zu ada1 zu partitionieren, dann

Code: Select all

gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
um die boot-Partition zu versorgen. Anschließend noch die neue Swap-Partition in der fstab eingetragen und schließlich

Code: Select all

zpool replace tank /dev/ada0p3
um ada0p3 in den zpool zu integrieren und das Resilvering zu starten.
Hat überhaupt nicht weh getan :-BD
Last edited by doll1 on 2013-12-30 10:35, edited 1 time in total.

ddm3ve
Moderator
Moderator
Posts: 1182
Joined: 2011-07-04 10:56

Re: [SOLVED]ZFS Raid1 Platte ausgetauscht

Post by ddm3ve »

@ Damotron, nur zu meinem Verständnis: aus dem 1. Post entnehme ich im wesentlichen nur einen mirror-0 mit ada0p3 und ada1p3.

Woher entnimmst Du, dass noch mehr Partitionen im zpool enthalten sind?

doll1 Danke für den Nachtrag.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11137
Joined: 2003-02-27 01:00
Location: Hamburg

Re: [SOLVED]ZFS Raid1 Platte ausgetauscht

Post by Joe User »

Im zPool hat auch daemotron nur ada[01]p3 gesehen, die anderen Partitionen sind die "Standard-Partitionen" ausserhalb des zPool. Man könnte auch alle Partitionen inklusive boot/swap in einen/mehrere zPool werfen, aber das macht wie bereits geschrieben keinen Sinn. Auch kann man auf die "Standard-Partitionen" verzichten, sofern das OS auf einem anderen Datenträger liegt (bei Storage-Systemen zum Beispiel).

ZFS ist da extrem flexibel, aber dadurch eben auch sehr komplex.


BTW: Ich persönlich halte ZFS (zumindest das OpenZFS wie es FreeBSD bereitstellt) noch für zu experimentell für produktive Systeme. Das zeigen meiner Meinung nach auch die zahlreichen Commits in FreeBSD sowie die etlichen (zu oft ungelösten) Bugreports in den Mailinglisten, Bugtrackern und Foren. Auch Datenverluste sind da leider immer wieder zu beklagen, wobei es dafür ja Backups geben sollte ;)
UFS2 wird wohl noch einige Zeit mein bevorzugtes FS unter FreeBSD bleiben.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

ddm3ve
Moderator
Moderator
Posts: 1182
Joined: 2011-07-04 10:56

Re: [SOLVED]ZFS Raid1 Platte ausgetauscht

Post by ddm3ve »

Ok, dann habe ich Daemotrons letzten Satz nicht richtig verstanden.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.