Maneira correta de criar um zfs em um diretório existente?

Maneira correta de criar um zfs em um diretório existente?

Digamos que eu tenha um rpool com etc/ como um diretório regular dentro dele e agora quero criar um zfs rpool/etc separado, obviamente herdando todos os dados que eu tinha no /etc original.

Qual seria a maneira mais adequada e segura de fazer isso?

Responder1

Não há suporte para transformar /etcem seu próprio sistema de arquivos zfs.

A razão é que /etcele é necessário durante os estágios iniciais da inicialização, antes do (Open)Solaris começar a montar os sistemas de arquivos zfs, portanto ele ficaria vazio se você o alterasse.

Meu palpite é que você deseja tirar instantâneos de /etc, mas pode apenas tirar instantâneos do sistema de arquivos raiz:

zfs snapshot rpool/ROOT/opensolaris

Talvez seja necessário substituir opensolarispelo nome do ambiente de inicialização atual (execute beadm listpara descobrir qual)

Responder2

Não existe uma maneira integrada ou automatizada de criar um novo DataSet e migrar os dados existentes para ele. Para fazer isso, você precisará criar o conjunto de dados e manualmente (por exemplo, rsync) os dados para ele.

Digamos que você tenha um conjunto de dados nomeado tank\setcom um diretório chamado folder. Você deseja 'promover' a pasta como um conjunto de dados filho chamado 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

Em seguida, verifique se os dados parecem bons; tire um instantâneo do conjunto de dados pai, apenas para garantir, e exclua o folder-backupdiretório.

Responder3

Uma ideia bastante doentia, mas pode ser útil:

E se eu fizer um clone de um conjunto de dados existente tank\setcomotank\folder

será exatamente como tank\setcontém o que eu quero: tank\folder\foldere também muitas outras coisas.

E então, posso remover tudo o que não quero tank\foldere, afinal, mv tank\folder\folder\* tank\folder\, que será apenas movido no sistema de arquivos e deve terminar em segundos.

Vou testar em um ou dois dias


Receio que rm -rf demore mais do que eu pensava.

afinal, uma opção para usar.

informação relacionada