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


9

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

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

回答:


4

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

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

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

zfs snapshot rpool/ROOT/opensolaris

opensolaris現在のブート環境の名前に置き換える必要がある場合があります(実行beadm listするために実行します)。


2
では、他のディレクトリについてはどうでしょうか。たとえば、rpool / zones / myzone / export / home / git?:)
ユーリ・ラシュコフスキー

1
gitディレクトリをzfsファイルシステムにしたい場合は、現在のコンテンツのtarアーカイブを作成し、次にgit dirを「rm -rf」し、その後「zfs create -o mountpoint = / path / to /」を実行します。 git rpool / path / to / whatever / git "そして最後に保存されたファイルを解凍します。
マーティン

2
ああ、そうか、それは私が考えたことだ...でも、zfsを分割する透過的な方法があることを密かに望んでいた:)
Yurii Rashkovskii

8

新しいDataSetを作成して既存のデータをそれに移行する組み込みの方法や自動化された方法はありません。これを実行するには、データセットを作成し、それにデータを手動(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ディレクトリを削除します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.