[FreeBSD] ZFS raidz HDD austauschen

lockdoc

Well-Known Member
Hallo,

ich habe ein RaidZ1 mit 3x 1TB Platten drinne. Diese sind mit Geli verschluesselt und werden dann in den Zpool eingehangen.

Ich moechte jetzt die Verschluesselungsmethode jeder der 3 Festplatten aendern. Leider kann ich den kompletten Pool nicht Backuppen, da mein Backup Rechner nicht genug Platz hat - das wichtigste ist allerdings schonmal gesichert. Ich habe mir das in der Theorie wie folgt gedacht:

1.) HDD-1 aus dem Pool nehmen
2.) HDD-1 mit Geli und der neuen Methode initialisieren
3.) HDD-1 in den Pool einhaengen
4.) ZFS wiederherstellen (bei raidz1 kann doch immer eine Platte komplett ausfallen)

Danach jeweils das ganze mit HDD-2 und HDD-3 machen


Jetzt bin ich mir natuerlich etwas unsicher, ob das auch wirklich so klappen wird. Zumahl bin ich mir auch unsicher welche Befehle ich dafuer nutzen soll.

Hat das Jemand schonmal gemacht?
Macht es Sinn das so zu machen?
Welche Befehle brauche ich zum wiederherstellen des Raidz1 Pools?

LG
lockdoc
 
Gemacht hab ich sowas noch nicht, klingt aber solide was du da vorhast. Würde die Platte einfach ziehen, dann verhält er sich als wäre sie ausgefallen und degradet den Raid. Wieder reinpappen, sicherheitshalber formatieren, neu verschlüsseln und als neue Platte wieder an den Raid attachen - zpool replace "pool" "device" - abwarten und Tee trinken bis neu gebaut ist und dann mit der nächsten Platte weiter machen.
 
Kann ich denn die Platte irgendwie waehrend dem Betrieb aus dem Zpool entfernen?

Weil wenn ich die Platte vor dem Booten rausnehme, dann sieht er ja theoretisch, dass da eine fehlt und zum neubauen brauch er eine neue, steck ich dann die Platte wieder rein ist ja alles fein. Aber ich muss diese ja vorher auf diesem system noch neu encrypten.

Also will ich die irgendwie beim laufendem system rausnehmen neu machen und dann den Pool wiederherstellen.
 
zpool online/offine dürften deine Freunde sein.

Eine als "offline" markierte Platte wird von ZFS erstmal nicht weiter behandelt, bis man sie wieder "online" schaltet.
 
Zuletzt bearbeitet:
Ok so wie ich es verstanden habe mache ich folgendes:

Tank besteht aus den 3 Platten:
/dev/ad10p2
/dev/ad12p2
/dev/ad14p2


Code:
# 1.) Platte entfernen
zpool offline tank ad10p2.eli

# 2.) hier initialisiere ich dann ad10p2.eli neu mit geli
geli detach /dev/ad10p2.eli
geli init -b -P -K /root/keys/ad10.key 
geli attach -k /root/keys/ad10.key /dev/ad10p2


# 3.) Neue Platte wieder reinbauen
zpool replace tank ad10p2.eli

Waehre das so korrekt? Wird denn bei 3. automatisch der pool dann wieder neugebaut?

(...)Wenn du ein ZFS Raid-1 mit 3 Platten hast (wenn ich dich richtig verstanden habe), dann dürfen in deinem Fall sogar 2 Platten ausfallen. Ist ja alles 3x gespiegelt.
Also soweit ick weiss kann bei raidz-1 nur 1 Platte ausfallen, egal ob man nun 3 oder mehr Platten drin hat.
Bei RaidZ2 koennen 2 Platten ausfallen und bei RaidZ3 sind es 3.
 
Evtl. reicht auch ein

zpool online tank ad10p2.eli

als 3ter Schritt. ZFS müsste dann automatisch feststellen, das die Platte neu resilvered werden muss.

Kann man mit Geli auch auf Dateiebene arbeiten? Dann könntest du das ganze mit virtuellen Festplatten in Dateiform einfach mal durchspielen und ausprobieren. Mit ZFS kann man das machen. Mit Geli hab ich noch nicht viel gearbeitet.


Bezüglich RaidZ1...sorry...ich hatte mich verlesen. Ich dachte du sprichst von einem Raid-1 und nicht von einem RaidZ1.
Somit hast du Recht...bei einem RaidZ1 darf natürlich nur eine Platte ausfallen.
 
evtl dürfte auch "geli detach" ausreichend sein und das ganze zfs zeugs bleibt transparent darüber ;)
 
Hallo,

ich bin gerade dabei das ganze zu machen.

Evtl. reicht auch ein zpool online tank ad10p2.eli
...
ging nicht

evtl dürfte auch "geli detach" ausreichend sein und das ganze zfs zeugs bleibt transparent darüber ;)
ging auch nicht


So mache ich das gerade fuer die erste HDD (ad10p2):
Code:
# 1.) Platte entfernen
zpool offline tank2 ad10p2.eli

# 2.) hier initialisiere ich dann ad10p2.eli neu mit geli
geli detach /dev/ad10p2.eli
geli init -P -b -K /mnt/keys/ad10.key -s 4096 -l 256 /dev/ad10p2
geli attach -p -k /mnt/keys/ad10.key /dev/ad10p2

# 3.) Neue Platte wieder reinbauen
zpool replace tank2 ad10p2.eli

Das resilvering startet automatisch nach dem zpool replace und dauert laut Anzeige ca. 3.5h (bei 3 1TB Platten im Raid-Z-1 mit ca. 600GB belegt)
Code:
zpool status
  pool: tank2
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
	continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
 scrub: resilver in progress for 0h16m, 8.05% done, 3h5m to go
config:

	NAME                  STATE     READ WRITE CKSUM
	tank2                 DEGRADED     0     0     0
	  raidz1              DEGRADED     0     0     0
	    replacing         DEGRADED     0     0     0
	      ad10p2.eli/old  REMOVED      0     0     0
	      ad10p2.eli      ONLINE       0     0     0  37.8G resilvered
	    ad12p2.eli        ONLINE       0     0     0  173M resilvered
	    ad14p2.eli        ONLINE       0     0     0  174M resilvered

errors: No known data errors



Die wichtigste Frage ist allerdings, ob ich dann nochmal ein zpool export und zpool import danach machen muss?

LG
 
Die wichtigste Frage ist allerdings, ob ich dann nochmal ein zpool export und zpool import danach machen muss?

LG


Nein das ist definitiv nicht notwendig.

Wenn Du wirklich ganz ganz sicher sein willst, kannst Du noch ein zpool scrub anstoßen wobei das eigentlich auch für den Eimer ist, weil das beim resilvern auch schon gemacht wird.

zpool replace reicht völlig aus.
 
Auch wenns ein wenig off-top ist - aber muesste es _streng_ genommen nicht ausreichen nur 2 Platten mit Geli zu verschluesseln und die 3te ohne Verschluesselung laufen zu lassen!? Die 3te Platte alleine sollten doch theoretisch auch keinen Aufschluss ueber den Inhalt geben. Oder doch?! Jetzt muesste man wissen wie genau raidz funktioniert :belehren:. Aber von der Sache her kann man sich doch so etwas crypto - Arbeit sparen?!

Nicht falsch verstehen - machen wuerde ich es so sicher auch nicht, aber den Gedanken fand ich eben interessant.
 
Auch wenns ein wenig off-top ist - aber muesste es _streng_ genommen nicht ausreichen nur 2 Platten mit Geli zu verschluesseln und die 3te ohne Verschluesselung laufen zu lassen!? Die 3te Platte alleine sollten doch theoretisch auch keinen Aufschluss ueber den Inhalt geben. Oder doch?! Jetzt muesste man wissen wie genau raidz funktioniert :belehren:. Aber von der Sache her kann man sich doch so etwas crypto - Arbeit sparen?!

Nicht falsch verstehen - machen wuerde ich es so sicher auch nicht, aber den Gedanken fand ich eben interessant.

Ehrlich gesagt kann ich dem Gedankengang nicht wirklich folgen.
Wieso sollte man sowas machen wollen?

Wie Raidz funktioniert kann man im übrigen total transparent nachlesen. Kuck Dir einfach mal das als Einstiegspunkt an.
 
Ehrlich gesagt kann ich dem Gedankengang nicht wirklich folgen.
Wieso sollte man sowas machen wollen?

Wie Raidz funktioniert kann man im übrigen total transparent nachlesen. Kuck Dir einfach mal das als Einstiegspunkt an.

Der Gedankengang ist einfach. Sagen wir, es gibt ein RAID-Z mit 3 Platten. Eine Verschluesseling via geli wuerde bedeuten das man 3 Platten verschluesseln muss. Mein Gedankengang wer der dass die Verschluesselung von 2 Platten evtl. schon ausreicht. Ganz einfach weil eine nicht verschluesselte Platte alleine wohl kaum Aufschluss ueber die Daten gibt. Aber wie gesagt, war nur ein Gedankenspiel. :ugly:

Ich lese gerade das bei raidz die stripes variabel sind. Naja in dem Fall kann es dumm laufen wenn einmal ein langer stripe mit wichtigen Informationen auf der unverschluesselten Platte landet. :apaul:
 
Kurz gesagt: Du würdest bei 3 Platten dem Angreifer ein ganzes Drittel deiner Daten unverschlüsselt frei Haus liefern.
Auch wenn viele Daten nur Bruchstückhaft sein werden...ist das definitiv nicht akzeptabel.
 
Richtig. Wie gesagt, nur ein Gedankenspiel. Machen wuerde ich das auch nicht. Nichts desto trotz wuerde es wohl schwierig sein aus 1/3 Dateisystem noch Informationen zu ziehen. Naja egal. Schoss mir vorhin durch den Kopf.
 
Richtig. Wie gesagt, nur ein Gedankenspiel. Machen wuerde ich das auch nicht. Nichts desto trotz wuerde es wohl schwierig sein aus 1/3 Dateisystem noch Informationen zu ziehen. Naja egal. Schoss mir vorhin durch den Kopf.

Mal abgesehen davon das Du nur Datenschrott erhälst... trotzdem ist mir die Idee die Du hattest nicht wirklich klar.

IMHO warte ich auf funktionierende ZFS Verschlüsselung die wird eines Tages kommen da bin ich mir ziemlich sicher.

Aber mal ganz im Ernst..

Wofuer soltlte ich im Alltag einen Storedge Pool verschlüsseln, bei einem Rechner mit dem ich unterwegs bin seh ich das ja alles ein, aber bei einem Datengrab?
 
Wofuer soltlte ich im Alltag einen Storedge Pool verschlüsseln, bei einem Rechner mit dem ich unterwegs bin seh ich das ja alles ein, aber bei einem Datengrab?

Na aus den gleichen Gründen. Damit die Daten auch bei physikalischem Zugriff sicher sind. Nur weil die Daten in deinem Keller oder nem Rechenzetrum hinter Stahltüren lagern heißt das ja nicht das man nicht dran kommt. Das Finanzamt (höhö, "SteuerCD") andere Strafverfolger oder einfach versierte Einbrecher.
Zugegebener Maßen ist das Risiko geringer als bei nem Laptop, aber mich macht diese zusätzliche Sicherheit glücklich.

Grüße!
 
Mal abgesehen davon das Du nur Datenschrott erhälst... trotzdem ist mir die Idee die Du hattest nicht wirklich klar.

IMHO warte ich auf funktionierende ZFS Verschlüsselung die wird eines Tages kommen da bin ich mir ziemlich sicher.

Aber mal ganz im Ernst..

Wofuer soltlte ich im Alltag einen Storedge Pool verschlüsseln, bei einem Rechner mit dem ich unterwegs bin seh ich das ja alles ein, aber bei einem Datengrab?

Das ist ja schwer in der Entwicklung, ich habe das mal eine Weile verfolgt aber das wurde letztlich immer und immer wieder verschoben. Zuerst weil es gegen eine ältere ZFS Version entwickelt wurde und portiert werden musste, dann weil man erst noch Dedup abwarten wollte... Ich hoffe das wird nicht zur unendlichen Geschichte.
 
Na aus den gleichen Gründen. Damit die Daten auch bei physikalischem Zugriff sicher sind. Nur weil die Daten in deinem Keller oder nem Rechenzetrum hinter Stahltüren lagern heißt das ja nicht das man nicht dran kommt. Das Finanzamt (höhö, "SteuerCD") andere Strafverfolger oder einfach versierte Einbrecher.
Zugegebener Maßen ist das Risiko geringer als bei nem Laptop, aber mich macht diese zusätzliche Sicherheit glücklich.

Grüße!

Versierte Einbrecher.
Wenn die meine HDS 9990v(en) klauen wollen, brauchen die erst mal nen Gabelstapler, oder verdammt viel Zeit. :D

Von den vier Stahltüren mal ganz absehen und der Alarmanlage.

Auch bei den Hostern wie Strato und Co. sind die physikalischen Sicherheitsvorkehrungen nicht gerade schlampig.

Mal abgesehen vom Know How das vorhanden sein muss an solche Plattendaten wieder ran zu kommen, mit einfachem Platte stecken ist es damit ja auch nicht ganz getan.

Mehr Sorgen würde mir ein schlecht konfigurierter Rechner machen, der mit der Aussenwelt spricht und auf einem Sicherheitsstand ist wie in den 70er Jahren, sowas gibts heut noch, was ich so alles gesehen hab die letzten Jahre das glaubt keiner.

So manches Rechenzentrum sollte man wegen solcher Geschichten dicht machen.
:huth:

IMHO sind die Sicherheit der Daten von physikalischer Seite her die kleinsten Probleme und die Verschlüsselung rettet da mal gar nix.
 
[...]
IMHO sind die Sicherheit der Daten von physikalischer Seite her die kleinsten Probleme und die Verschlüsselung rettet da mal gar nix.

Und was ist mit der anderen von mir aufgeführten Gruppe an Angreifern? (bitte sag jetzt nicht "ich hab nichts zu verbergen...". :) )

Ich warte zumindest sehnsüchtigst auf die ZFS-Crypto Geschichte, das wäre wirklich richtig, richtig praktisch!

Grüße!
 
Naja, die andere Gruppe zieht dir eins mit dem Schraubenschlüssel über - dann rückst du schon mit dem Schlüssel raus.
 
Und was ist mit der anderen von mir aufgeführten Gruppe an Angreifern? (bitte sag jetzt nicht "ich hab nichts zu verbergen...". :) )

Ich warte zumindest sehnsüchtigst auf die ZFS-Crypto Geschichte, das wäre wirklich richtig, richtig praktisch!

Grüße!


Natuerlich hab ich was zu verbergen. IMHO ist mir Datenschutz extrem wichtig.
Allerdings wuerde mir eine Kryptographie der Platten hier absolut nicht helfen, wenn die Kisten Applikationsbedingt offen sein muessen wie ein Scheunentor, hilft auch Kryptographie gar nix. :-(

Leider gibt es solche Grütze in der sogenannten "professionellen Softwareentwicklung"
Mir kommt jeden Tag das kalte Graussen. :confused:

Da gibt es dann die Philosophie, paaah wir haben ja ne dicke Firewall und Norton Antivirus Enterprise auf den Clients. Da passiert nix. Von einem IDS hat man mal gar nix gehört und die Unix Admins sind sowieso nur paranoid.

Wobei es wäre mal ein interessanter Versuch RAW Devices unter ZFS Kontrolle zu krypten. :D

Ob die Applikation und die DB das verkraftet wäre ein hochinteressanter Versuch. :)
 
Hallo lockdoc,

mich würde interessieren, ob dein Vorhaben geklappt hat.

Ich habe zur Zeit ein unverschlüsseltes RaidZ mit 7 x 1TB. Das würde ich nun auch gerne Verschlüsseln. Deine Idee hört sich echt gut an.

Allerdings überlege ich, ob ich vorher noch auf RaidZ2 umstelle. Bei mir dauert ein replace ca. 11 Stunden. Bis ich die 7 Platten verschlüsselt habe, wird also eine knappe Woche ins Land gehen.
Ich bin mir noch nicht sicher, ob ich riskieren soll, dass in dieser einen Woche ne Platte kaputt geht und ich alles verliere.
Andererseits, die Daten sind nicht wirklich wichtig.
 
Hallo Florian88,

Es hat wie hier beschrieben geklappt:
http://www.bsdforen.de/showpost.php?p=209077&postcount=9

zpool export/import waren auch nicht noetig.

Das verschluesseln an sich geht total schnell, bloss das resilvern dauert halt lange.

Ich hatte damit absolut gar keine Probleme. Somit kann man im Prinzip ziwschen verschluesselung, nicht verschluesselung, verschluesselungsstaerke wechseln wie man Lust und Laune hat, und dadurch ist es auch moeglich den Verschluesselungskey zu aendern.

LG
 
Zurück
Oben