Правильный способ создания zfs из существующего каталога?

Правильный способ создания zfs из существующего каталога?

Допустим, у меня есть rpool с etc/ в качестве обычного каталога внутри, и теперь я хочу создать отдельный zfs rpool/etc, очевидно, унаследовав все данные, которые были у меня в исходном /etc.

Какой способ сделать это будет наиболее правильным и безопасным?

решение1

/etcПреобразование в собственную файловую систему zfs не поддерживается .

Причина в том, что /etcон необходим на ранних этапах загрузки, до того, как (Open)Solaris начнет монтировать файловые системы zfs, поэтому, если вы его измените, он будет пустым.

Я предполагаю, что вы хотите сделать снимки /etc, но вместо этого вы можете просто сделать снимки корневой файловой системы:

zfs snapshot rpool/ROOT/opensolaris

Возможно, вам придется заменить его opensolarisна имя текущей загрузочной среды (запустите, beadm listчтобы узнать, какой именно)

решение2

Не существует встроенного или автоматизированного способа создания нового 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.

решение3

Довольно нездоровая, но, возможно, полезная идея:

Что если я создам клон существующего набора данных tank\setкакtank\folder

это будет именно то, tank\setчто я хочу, tank\folder\folderи также множество других вещей.

А затем я могу удалить все, что мне не нужно, tank\folderи в конце концов mv tank\folder\folder\* tank\folder\, это будет только перемещение внутри файловой системы, и должно завершиться за считанные секунды.

Я проверю это через день или два.


Боюсь, что rm -rf займет больше времени, чем я думал.

в конце концов, есть возможность использовать этот вариант.

Связанный контент