![Usando el grupo ZFS con dos sistemas operativos turnándose](https://rvso.com/image/154469/Usando%20el%20grupo%20ZFS%20con%20dos%20sistemas%20operativos%20turn%C3%A1ndose.png)
Estoy haciendo la transición de una instalación antigua de Ubuntu a una nueva. Durante la transición, quiero poder usar el mismo grupo del sistema operativo antiguo y del nuevo.
El nuevo sistema operativo estará en un disco diferente. Selecciono el sistema operativo durante el arranque. Sólo un sistema operativo utilizará el grupo en un momento determinado.
¿Es esto posible en absoluto? ¿Corro el riesgo de dañar los datos o perder todo el grupo?
Respuesta1
Siempre que el grupo se exporte durante el apagado y solo se utilice desde un sistema a la vez,lo que usted discute no debería ser problemático.
ZFS realmente, realmente,en realidadNo le gusta que se utilice el mismo grupo desde varios sistemas a la vez, incluso en modo de solo lectura ( -o readonly=on
dado a zpool import
), pero esto no parece aplicarse a su situación.
Para mantener la compatibilidad entre las dos versiones, debes asegurartenopara ejecutar zpool upgrade
o zfs upgrade
especialmente desde la instalación más nueva. Cualquiera de estos podría resultar en la pérdida de acceso al grupo o al sistema de archivos cuando se ejecuta la instalación anterior, pero ninguno debería resultar en la pérdida del grupo o al sistema de archivos cuando se ejecuta un sistema que admite la versión actualizada en disco de ZFS.
Una vez que haya terminado de actualizar, si lo desea, puede actualizar el grupo al formato y las funciones más recientes en el disco usando zpool upgrade
y/o zfs upgrade
según sea necesario.
Respuesta2
Suponiendo que está hablando de usar el grupo como almacenamiento de datos, no de ejecutar la raíz del sistema en él, estará bien.
Actualmente tengo dos sistemas instalados, uno en una partición EXT4 y el otro en un conjunto de datos zfs que tiene sudo zfs set mountpoint=/ tank/my/dataset
.
Acceder a este grupo desde el sistema EXT4 es una molestia, porque zfs mount -a
fallaría el montaje en la raíz. En cambio, aquí hay tres formas.
En ambos casos, necesitará importar el grupo sin montarlo automáticamente.
sudo zpool import tank -N
A) Modificar la propiedad
sudo mkdir /mnt/mydataset
sudo zfs set mountpoint=/mnt/mydataset tank/my/dataset
sudo zfs mount tank/my/dataset
# [do stuff in /mnt/mydataset]
# ...
sudo zfs unmount tank/my/dataset
# restore mountpoint so that the other system is able to boot from it
sudo zfs set mountpoint=/ tank/my/dataset
B) evitarzfs mount
Si le resulta molesto configurar el punto de montaje de un lado a otro, he descubierto que lo siguiente también funciona. No hay garantías sobre cuán complicado es esto.
sudo mkdir /mnt/mydataset
sudo mount -t zfs -o zfsutil tank/my/dataset /mnt/mydataset
# [do stuff in /mnt/mydataset]
# ...
sudo umount /mnt/mydataset
Tenga en cuenta que experimenté algunos problemas cuando usé esta opción B) para hacer chroot /mnt/mydataset
y luego usar los comandos zfs del otro sistema. No sé si estos problemas están relacionados. Mientras no hagas algo similar, deberías estar bien.
C) raíz alternativa
Puede especificar la altroot
propiedad en la piscina.
raíz alternativa
Directorio raíz alternativo. Si se establece, este directorio se antepone a cualquier punto de montaje dentro del grupo. Esto se puede utilizar al examinar un grupo desconocido donde no se puede confiar en los puntos de montaje, o en un entorno de inicio alternativo, donde las rutas típicas no son válidas.
altroot
no es una propiedad persistente. Es válido sólo mientras el sistema está activo. Establecer altroot de forma predeterminada en usar,cachefile = none
aunque esto puede anularse mediante una configuración explícita.