Gibt es eine geeignete Möglichkeit, aus einem vorhandenen Verzeichnis ein ZFS zu erstellen?

Gibt es eine geeignete Möglichkeit, aus einem vorhandenen Verzeichnis ein ZFS zu erstellen?

Nehmen wir an, ich habe einen Rpool mit etc/ als regulärem Verzeichnis darin und möchte nun einen separaten ZFS-Rpool/etc erstellen, der natürlich alle Daten übernimmt, die ich im ursprünglichen /etc hatte.

Was wäre der geeignetste und sicherste Weg, dies zu tun?

Antwort1

/etcDie Umwandlung in ein eigenes ZFS-Dateisystem wird nicht unterstützt .

Der Grund dafür ist, dass /etces in den frühen Phasen des Bootvorgangs benötigt wird, bevor (Open)Solaris mit dem Mounten von ZFS-Dateisystemen beginnt. Wenn Sie es also ändern, wäre es leer.

Ich vermute, dass Sie Snapshots von erstellen möchten /etc, aber Sie können stattdessen auch einfach Snapshots des Root-Dateisystems erstellen:

zfs snapshot rpool/ROOT/opensolaris

Möglicherweise müssen Sie es opensolarisdurch den Namen der aktuellen Startumgebung ersetzen (führen Sie es aus, beadm listum herauszufinden, welche).

Antwort2

Es gibt keine integrierte oder automatisierte Möglichkeit, ein neues DataSet zu erstellen und vorhandene Daten dorthin zu migrieren. Dazu müssen Sie das DataSet erstellen und die Daten manuell (z. B. per rsync) dorthin übertragen.

Angenommen, Sie haben einen Datensatz mit dem Namen tank\setund darin ein Verzeichnis mit dem Namen folder. Sie möchten den Ordner zu einem untergeordneten Datensatz mit dem Namen „hochstufen“ tank\set\folder:

mv /mnt/tank/set/folder /mnt/tank/set/folder-backup # move this out of the way so the new dataset doesn't mount on top of it
zfs create tank/set/folder
rsync -aAX /mnt/tank/set/folder-backup/ /mnt/tank/set/folder # bring over all the old data including acls and attributes

Überprüfen Sie dann, ob die Daten gut aussehen. Machen Sie vorsichtshalber einen Snapshot des übergeordneten Datensatzes und löschen Sie das folder-backupVerzeichnis.

Antwort3

Eine ziemlich kranke, aber möglicherweise nützliche Idee:

Was passiert, wenn ich einen Klon eines vorhandenen Datensatzes erstelle tank\setalstank\folder

es wird genau so sein und tank\setdas enthalten, was ich will: tank\folder\folderund auch eine Menge anderer Dinge.

Und dann kann ich alles entfernen, was ich nicht möchte, tank\folderund schließlich mv tank\folder\folder\* tank\folder\, was nur eine Verschiebung im Dateisystem ist und in Sekunden abgeschlossen sein sollte.

Ich werde es in ein oder zwei Tagen testen


Ich fürchte, dass rm -rf länger dauert als gedacht.

eine Option, die man doch nutzen kann.

verwandte Informationen