¿Forma correcta de crear un zfs a partir de un directorio existente?

¿Forma correcta de crear un zfs a partir de un directorio existente?

Digamos que tengo un rpool con etc/ como directorio normal dentro de él y ahora quiero crear un rpool/etc de zfs separado, obviamente heredando todos los datos que tenía en el /etc original.

¿Cuál sería la forma más adecuada y segura de hacerlo?

Respuesta1

No se admite la conversión /etca su propio sistema de archivos zfs.

La razón es que /etces necesario durante las primeras etapas del arranque, antes de que (Open)Solaris comience a montar los sistemas de archivos zfs, por lo que estaría vacío si lo cambia.

Supongo que desea tomar instantáneas de /etc, pero en su lugar puede tomar instantáneas del sistema de archivos raíz:

zfs snapshot rpool/ROOT/opensolaris

Es posible que deba reemplazarlo opensolariscon el nombre del entorno de inicio actual (ejecute beadm listpara descubrir cuál)

Respuesta2

No existe una forma integrada o automatizada de crear un nuevo conjunto de datos y migrarle los datos existentes. Para hacerlo, deberá crear el conjunto de datos y enviarle manualmente (por ejemplo, rsync) los datos.

Digamos que tiene un conjunto de datos llamado tank\setcon un directorio llamado folder. Quiere 'promocionar' la carpeta para que sea un conjunto de datos secundario llamado 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

Luego revisa que los datos se vean bien; tome una instantánea del conjunto de datos principal por si acaso y elimine el folder-backupdirectorio.

Respuesta3

Una idea bastante enfermiza pero puede ser útil:

¿Qué pasa si hago un clon de un conjunto de datos existente tank\setcomotank\folder

Será exactamente como tank\setcontiene lo que quiero: tank\folder\foldery también otras cosas masivas.

Y luego, puedo eliminar todo lo que no quiero tank\foldery, después de todo, mv tank\folder\folder\* tank\folder\se moverá únicamente dentro del sistema de archivos y debería finalizar en segundos.

Lo probaré en uno o dos días.


Me temo que rm -rf lleva más tiempo de lo que pensaba.

una opción para usar después de todo.

información relacionada