En mi servidor de intranet, tengo una partición de 100.00 GiB / dev / sda5, que uso como volumen físico para lvm2.
- Es el único volumen físico en mi grupo de volúmenes vg01.
- vg01 actualmente contiene un volumen lógico lv01, utilizando los 100.00 GiB completos, bueno, en realidad 99.99 GiB debido a algún redondeo (ahí es donde comienza el problema).
- lv01 contiene un sistema de archivos ext3, que usa todo el espacio.
Quiero reducir lv01 a aproximadamente 97 GiB, para poder crear lv02 con aprox. 3 GiB (lo necesito para tomar instantáneas de lvm).
Lo que hice hasta ahora:
e2fsck -f /dev/mapper/vg01-lv01
resize2fs /dev/mapper/vg01-lv01 97G
Esto ha funcionado bien. Pero ahora tendré que correr
lvreduce --size ? /dev/mapper/vg01-lv01
Y no estoy seguro, qué valor exacto tendré que especificar. La lvreduce
página de manual advierte explícitamente que el tamaño resultante no debe ser menor que el sistema de archivos. Tampoco quiero hacerlo más grande de lo que tiene que ser. Pero ahora tengo números diferentes:
- Especifiqué
97G
en resize2fs. df -h
dice, son 96 G.df
dice, es 100115936 1K-blocks.- lvdisplay (por supuesto) aún informa 99.99 GiB para el volumen lógico.
¿Para qué tendré que especificar lvreduce
?
Editar:
La respuesta actualmente aceptada proporciona una buena solución. Sin embargo, para integrar tales cosas en scripts sólidos, etc., generalmente preferiría usar medidas precisas en su lugar. ¿O tal vez ya hay un script o herramienta confiable (!) Que realiza todo el procedimiento de cambio de tamaño en un solo paso?
resize2fs
para reducir el sistema de archivos a 90GiB más o menos, y luego revisar los argumentoslvreduce
(seguidos deresize2fs
) para ver qué funciona mejor.Respuestas:
En mi experiencia, LVM y resize2fs tienen las mismas ideas sobre lo que significa "97G", por lo que especificar el mismo tamaño en ambos lugares debería estar bien. Sin embargo, soy paranoico, y siempre que sea posible, siempre use la estrategia sugerida por los larsks en los comentarios de las preguntas y cambie el tamaño para que sea un GB más pequeño de lo que quería, hice el tamaño del tamaño que quería y luego vuelva a ejecutar resize2fs (sin un tamaño) para permitir que se expanda nuevamente para llenar todo el LV.
fuente
Creo que esto se hace mejor usando la opción --resizefs para lvreduce / lvresize:
Es cierto que eso no te ayuda ahora , pero puede que lo hagas en el futuro.
fuente