zpool deaktivieren

FierceOne

Kampfmaschine
Hallo Forum,

ich bin gerade dabei mir einen neuen Root-Server aufzusetzen. FreeBSD habe ich schon erfolgreich aufgespielt (Strato, PowerServer MR v5.4 falls es jemanden interessiert).

Saemtliche Daten moechte auf ZFS speichern. Teile davon sollen aber auch verschluesselt werden. Momentan habe ich folgenden Plan:

- 2 Partitionen, mit jeweils getrennten ZFS Pools.
- 1 Partition geli verschluesselt

Meine Frage ist wie ich waehrend der Laufzeit komplette Pools aktivieren/deaktivieren kann, je nachdem ob der geli provider vorhanden ist oder nicht. Im Handbuch steht nur wie man einzelne devices aus pools entfernt und hinzufuegt, aber nicht kompletten Pools an und abschaltet (oder doch?). Dies ist fuer mich relevant weil er im seltenen Fall eines Neustarts nicht versuchen soll einen Pool zu suchen den es ohne geli nicht gibt.

Vielen Dank
 
Hallo,

um die ZFS Vorteile wirklich nutzen zu könnnen, bräuchtest Du eigentlich 4 Partitioen, besser 4 Festplatten. Dann kannst Du zwei gespiegelte zpools erstellen.

Mit export / import kannst Du dauerhaft einen Pool aushängen.

Vielleicht lohnt auch ein Blick auf die Möglichkeit mit dem ZFS Schalter -V ein Volume zu erstellen. Vielleicht kannst Du dann das neue Device verschlüsseln, dann könntest Du mit einem zpool auf zwei Partitionen / Festplatten auskommen. Bin mir aber nicht sicher, ob man ein Volume verschlüsseln kann.

Wieso denkst Du, dass Du bei einem reboot Probleme bekommen könntest. Wartet denn Bootvorgang nicht, wenn Du für den geli Provider die Passphrase eingeben must?

Grüße.
arcona
 
Warum soll der Rechner den Pool nicht suchen dürfen?

Wenn du zfs auf geli laufen lassen willst, dann deaktiviere geli_autodetach in deiner /etc/rc.conf.
Code:
geli_autodetach="NO"
Und überprüfe, dass das Attribut failmode deines Pools nicht auf panic steht (Attribut cachefile könnte auch interessant sein man zpool).

Es ist zwar nicht empfehlenswert mehrere Pools auf einer Festplatte einzurichten, aber wenn deine verschlüsselten geli-Provider nicht oft aktiv sind, dürfte es kaum Performanceeinbrüche geben.

Dein Setup soll vermutlich diesem ähnlich sehen:
Code:
  pool: zpool
 state: ONLINE
 scrub: none requested

config:

        NAME      STATE     READ WRITE CKSUM
        zpool     ONLINE       0     0     0
          ad0s1   ONLINE       0     0     0

errors: No known data errors

 pool: zpool.crypt
 state: ONLINE
 scrub: none requested

config:

        NAME          STATE     READ WRITE CKSUM
        zpool.crypt   ONLINE       0     0     0
          ad0s2.eli   ONLINE       0     0     0

errors: No known data errors
bzw, falls dein geli-Provider nicht eingehängt ist:
Code:
pool: zpool.crypt
 state: UNAVAIL
status: One or more devices could not be opened.  There are insufficient
        replicas for the pool to continue functioning.
action: Attach the missing device and online it using 'zpool online'.
   see: http://www.sun.com/msg/ZFS-8000-3C
 scrub: none requested

config:

        NAME          STATE     READ WRITE CKSUM
        zpool.crypt   UNAVAIL      0     0     0  insufficient replicas
          ad0s2.eli   UNAVAIL      0     0     0  cannot open

Einen Reboot überlebt das System, und zpool status beschwert sich über das nicht vorhandene Device.
Aber sobald der geli-Provider wieder eingehängt ist, sollte der Pool wieder verfügbar sein.

Eine umständliche Möglichkeit ist mit der Befehlskette
Code:
zpool export zpool.crypt
geli detach ad0s2.eli
reboot
geli attach ad0s2
zpool import -f zpool.crypt
zu bewerkstelligen.
Falls der geli-Provider während der Laufzeit wieder ausgehängt werden soll, ist ein Export des Pools nötig.
 
Vielen Dank! Genau das ist wonach ich gesucht habe. Ich war mir halt nicht sicher ob irgendwelche nicht offensichtlichen Probleme entstehen koennen wenn man zpools derart behandelt.

Wunderbar! So laeuft es jetzt.

Danke nochmal.
 
Zurück
Oben