Richtige Möglichkeit, ein zfs aus einem vorhandenen Verzeichnis zu erstellen?

9

Nehmen wir an, ich habe einen Rpool mit etc / als reguläres Verzeichnis und möchte jetzt einen separaten zfs-Rpool / etc erstellen, der offensichtlich alle Daten erbt, die ich im Original / etc. Hatte.

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

Yurii Rashkovskii
quelle

Antworten:

3

Es wird nicht unterstützt, sich /etcin ein eigenes zfs-Dateisystem zu verwandeln .

Der Grund dafür ist, dass dies /etcin den frühen Phasen des Startvorgangs erforderlich ist, bevor (Open) Solaris mit dem Mounten von zfs-Dateisystemen beginnt. Wenn Sie es ändern, ist es leer.

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

zfs snapshot rpool/ROOT/opensolaris

Möglicherweise müssen Sie durch opensolarisden Namen der aktuellen Startumgebung ersetzen (ausführen beadm list, um herauszufinden, welche)

Martin
quelle
2
ok, was ist dann mit einem anderen Verzeichnis? sagen wir, rpool / zonen / myzone / export / home / git? :)
Yurii Rashkovskii
1
Wenn Sie Ihr Git-Verzeichnis in ein zfs-Dateisystem verwandeln möchten, müssen Sie nur das Tar-Archiv des aktuellen Inhalts erstellen und dann das Git-Verzeichnis "rm -rf" erstellen. Führen Sie anschließend "zfs create -o mountpoint = / path / to /" aus git rpool / path / to / Whatever / git "und entpacke schließlich die gespeicherten Dateien.
Martin
2
oh, ok, das habe ich mir gedacht ... aber insgeheim gehofft, dass es einen transparenten Weg gibt, zfs zu teilen :)
Yurii Rashkovskii
7

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

Angenommen, Sie haben einen Datensatz mit dem Namen " tank\setVerzeichnis" folder. Sie möchten den Ordner als 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 für alle Fälle einen Schnappschuss des übergeordneten Datasets und löschen Sie das folder-backupVerzeichnis.

STW
quelle