Tengo un sistema de archivos BTRFS con un conjunto de subvolúmenes. Hasta aquí todo bien. Necesito cambiar el nombre de un subvolumen, desafortunadamente el btrfs
programa no me permite cambiar el nombre de un subvolumen. La búsqueda con Google arrojó algunos resultados, uno dijo que solo podía mv
, el otro dijo que solo podía snapshot
con un nuevo nombre y eliminar el subvolumen anterior. Antes de bloquear mi partición y tener que volver a cargarla desde la copia de seguridad (es bastante grande), mi pregunta es:
- ¿Cuál es la mejor manera actualmente de cambiar el nombre de un subvolumen?
- ¿Está bien simplemente
mv
o invalidará algunas estructuras internas? - ¿Hacer una nueva instantánea y eliminar el antiguo subvolumen es el camino a seguir, o esto tiene algunos inconvenientes?
Sé que todo sigue siendo experimental, pero para mis propósitos ha funcionado bastante bien (hasta ahora, y tengo copias de seguridad incrementales para cada día).
linux
backup
filesystems
btrfs
hochl
fuente
fuente
Respuestas:
Solo
mv
eso Esa es la forma recomendada en la documentación de la comunidad Ubuntu .Y para aclarar aún más por qué esa es la forma correcta de hacerlo, aquí hay una cita de la guía btrfs sysadmin:
fuente
Hay algunas cosas importantes a tener en cuenta. Los nombres:
btrfs Subvolume:
inside
sistema de archivos de contenedor de datos independiente . Se representa como directorio del FS existente. Si crea un nuevo subvolumen, estará vacío, listo para usar el bloque de datos lógico dentro del sistema de archivos. Muy conveniente de usar donde los datos deben estar separados lógicamente, por ejemplo, diferentes máquinas virtuales o diferentes clientes en diferentes subvolúmenes. Esto permite lavery fast
eliminación de todos los bloques de datos lógicos con solo el comando de eliminación de subvolumen.Instantánea de btrfs: una copia del
existing
subvolumen con todos sus datos en el momento en que se realizó la instantánea. Se puede utilizar como copia de seguridad operativa para revertir la configuración o los cambios, por ejemplo, hacer una instantánea de subvolumen, hacer cambios (VM o datos), probar si todo está bien, después de un período de gracia eliminar la instantánea. Es importante tener en cuenta: las instantáneas se pueden leer solo (-r
cambiar) y, por lo tanto, se pueden usar como bloques incrementales de cambios FS y, posiblemente, se pueden transferir a otro BTRFS.Limitaciones actuales (2016-12-30) BTRFS:
Copiar o mover datos entre subvolúmenes, por ejemplo,
mv dir1/dataset1 dir_subvolume1/
produce todos los io reales para copiar datos a otro subvolumen y, en caso de movimiento, eliminar del original. Y una copia muy eficiente de toneladas de datos simplemente haciendo referencias y, por lo tanto, utilizando la función COW de BTRFS:y si es necesario:
Solo la instantánea de subvolumen de lectura se puede renombrar (mover con
mv
) en el nivel de directorio existente, pero no se puede renombrar / mover a un nivel de subdirectorio diferente. por ejemplo,mv /btrfs/subvol_snap1 /btrfs/.snaphots
no es posible, no produce explicado mucho error:mv: cannot move 'subvol_snap1' to '.snapshots/subvol_snap1': Read-only file system
. Para poder mover una instantánea de este tipo, debe crear una nueva instantánea de solo lectura de la instantánea existente de solo lectura a la nueva ubicación preferida, y luego eliminar la anterior:Solo para una vida más fácil:
Espero que esto ahorre toneladas de tiempo a todos los nuevos fanáticos de btrfs :)
fuente
Si desea cambiar el nombre del volumen raíz a un subvolumen anidado, deberá tomar una instantánea y luego hacer una
find $ROOT_VOL -xdev -delete
para eliminar el contenido anterior del volumen raíz. La manipulación inversa (renombrar un subvolumen al volumen raíz) no parece posible.fuente