web-dev-qa-db-ja.com

既存のディレクトリからzfsを作成する適切な方法は?

その中に通常のディレクトリとしてetc /を含むrpoolがあり、今度は別のzfs rpool/etcを作成して、明らかに元の/ etcにあったすべてのデータを継承するとします。

そうするための最も適切で安全な方法は何でしょうか?

8

/etcを独自のzfsファイルシステムに変換することはサポートされていません。

その理由は、(Open)Solarisがzfsファイルシステムのマウントを開始する前のブートの初期段階で/etcが必要なため、変更すると空になるためです。

私の推測では、/etcのスナップショットを撮りたいと思いますが、代わりにルートファイルシステムのスナップショットを撮ることができます。

zfs snapshot rpool/ROOT/opensolaris

opensolarisを現在のブート環境の名前に置き換える必要がある場合があります(beadm listを実行してどれを見つけるか)

3
Martin

新しいデータセットを作成し、既存のデータをそれに移行するための組み込みまたは自動化された方法はありません。それを行うには、データセットを作成し、それにデータを手動で(rsyncなど)作成する必要があります。

tank\setという名前のデータセットがあり、その中にfolderという名前のディレクトリがあるとします。フォルダーを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

次に、データが適切に見えることを確認します。念のため、親データセットのスナップショットを取り、folder-backupディレクトリを削除します。

7
STW