Допустим, у меня есть 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 займет больше времени, чем я думал.
в конце концов, есть возможность использовать этот вариант.