¿Cómo verificar (simular), cuánto espacio se liberará después de eliminar un subvolumen btrfs?


9

La pregunta no es trivial. BTRFS es un sistema de archivos COW y muchos objetos pueden hacer referencia a un objeto almacenado en el disco duro.

Utilizo instantáneas BTRFS como parte de una solución de respaldo en mi servidor de producción. De esta manera, tengo un historial de espacio de navegación de un subvolumen dado (uso una modificación de SnapBtr ).

Tengo varios subvolúmenes btrfs independientes para diferentes propósitos y un esquema de respaldo para cada uno. Cuando se agota el espacio libre, puedo obtener la instantánea de copia de seguridad más innecesaria de cada grupo de copias de seguridad en función del algoritmo inteligente de costo logarítmico de tiempo SnapBtr.

Necesito una forma de ponderar la cantidad de datos que se liberarán después de eliminar cada copia de seguridad con la antigüedad de la instantánea anterior y la importancia de su grupo de copias de seguridad. Me falta la información anterior.

Entiendo que el proceso de cálculo del espacio libre en el BTRFS no es trivial ni rápido. Necesito algo que simule la eliminación del subvolumen para obtener el tamaño del espacio liberado.

¿Alguien puede ayudarme? ¿Debo publicar este mensaje en el linux-btrfs@vger.kernel.org?

Respuestas:


6

Como se demostró aquí , esto es bastante simple de hacer.

Primero, habilite las cuotas de btrfs:

# btrfs quota enable /btrfs_subvolume

Y luego corre:

# btrfs qgroup show /btrfs_subvolume
OR
# btrfs qgroup show -f /btrfs_subvolume

Que en Btrfs v3.18.2 te muestra esto:

qgroupid        rfer       excl
--------        ----       ----
0/260        1.09GiB    1.09GiB

El 0/260 es la ID del subvolumen, y el excl son los datos exclusivos del subvolumen. Si elimina el subvolumen, esa es la cantidad de espacio que liberará.

Editar: según este enlace , esta parece ser la forma oficial recomendada para hacerlo.


Pro Backup señaló (en una edición sugerida) que vale la pena verificar los problemas conocidos con el soporte de cuotas .
Stephen Kitt

0

btrfsQuota.pyhace que la salida sea btrfs qgroup showmás legible, reemplazando las ID de subvol por los nombres de los subvols, por ejemplo:

subvol                                      group         total    unshared
-------------------------------------------------------------------------------
test/a                                      0/970        20.05M       0.05M
test/b                                      0/971        20.05M      10.05M
test/c                                      0/972        30.05M      10.05M
test/d                                      0/973        30.05M       0.05M
test/e                                      0/974        30.05M      10.05M

1
No funciona con la versión predeterminada de btrfs-tools de Ubuntu 14.04. Necesita instalar una nueva, y luego todo está bien
Adam Ryczkowski

@AdamRyczkowski Estoy usando la versión Python 3 de ese script ahora, y funciona bien.
Geremia
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.