Tengo una máquina virtual que recientemente aumentó su imagen de disco de 20 GB a 50 GB, y fdisk -l
verifica que la VM puede ver este nuevo tamaño. Ahora necesito cambiar el tamaño de mi partición LVM raíz para llenar los 30GB adicionales.
He encontrado varios artículos sobre cómo cambiar el tamaño de LVM, pero los pocos que cubren el cambio de tamaño de la partición raíz afirman que necesita iniciar desde un LiveCD. ¿Hay alguna manera de hacer esto sin quitar el servidor? El servidor es crítico, por lo que me gustaría minimizar el tiempo de inactividad.
Editar: Salida de fdisk -l
:
[root@fedora-host ~]# sudo fdisk -l
Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00097c90
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 83886079 41430016 8e Linux LVM
Disk /dev/mapper/VolGroup-lv_root: 36.1 GB, 36104568832 bytes
255 heads, 63 sectors/track, 4389 cylinders, total 70516736 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/VolGroup-lv_root doesn't contain a valid partition table
Disk /dev/mapper/VolGroup-lv_swap: 6308 MB, 6308233216 bytes
255 heads, 63 sectors/track, 766 cylinders, total 12320768 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/VolGroup-lv_swap doesn't contain a valid partition table
Editar: ¿Cómo cambio el tamaño de la partición física? fdisk puede ver el espacio libre, pero no sé cómo cambiar el tamaño de la partición LVM primaria para usarla. Intenté arrancar en un LiveCD y usar el resize
comando parted'd , pero todo lo que me da es el error "No se puede detectar el sistema de archivos". Encontré esta guía , que dice que necesito eliminar la partición y crear una nueva con el tamaño correcto, pero eso suena muy peligroso.
Edición final: el resize
comando Parted es extrañamente incapaz de cambiar el tamaño de las particiones LVM. Imagínate. En cambio, simplemente eliminé la partición anterior y creé una nueva con el nuevo rango, como se describe en el enlace anterior, y eso redimensionó correctamente la partición LVM. Luego seguí los consejos a continuación para cambiar el tamaño de los volúmenes y sistemas de archivos dentro de la partición LVM.
Respuestas:
Puede hacer crecer un volumen lógico en línea. Tendría que desmontarlo para reducirlo (lo que requiere un LiveCD / Modo de rescate).
pvresize /dev/sda2
(suponiendo que su partición LVM seasda2
. Reemplace según sea necesario).lvextend /dev/mapper/root -l+100%FREE
(o, como se llame su volumen lógico raíz).resize2fs /dev/mapper/root
(suponiendo ext2 / 3/4)fuente
lvextend -L [size][unit] /dev/group/volume
, aunque solo sea porque puedo extender un volumen en 10 gigabytes especificando-L +10G
Now I need to resize my root LVM partition to fill the extra 30GB.
(Que es aumentar el volumen lógico por el espacio libre disponible.)-r
opciónlvextend
, se engancharáfsadm
para cambiar el tamaño del FS. Esto haría que el tercer paso sea redundante.pvresize /dev/sda2
comando no hace nada hasta que la partición / dev / sda2 se haya redimensionado con parted o fdisk. Tuve que cambiar el tamaño del mío con fdisk, ya que parte de mi sistema no se mostraba o no tenía un comando de cambio de tamaño. El cambio de tamaño de Fdisk implica eliminar y volver a crear la partición.¿Su sistema realmente cambió de 20 a 50 GB? Eso parece realmente extraño ya que su dispositivo sda2 es de ~ 40 GB, lv_root muestra 36 GB y el intercambio muestra 6 GB.
Su salida de
fdisk -l
muestra los sectores totales de/dev/sda
is104857600
. El último sector utilizado por/dev/sda2
es83886079
. Esto me dice que no ha ajustado el tamaño de la partición para usar todo el espacio disponible en la unidad. El comando pvresize no cambia la tabla de particiones. Primero debe cambiar la tabla de particiones.fuente
Instalar gparted. Ejecutar como root (use ssh -X o x2go si es remoto). Selecciona la partición. Debería mostrar espacio libre más allá del final (a la derecha). Si no es así, debe reiniciar su máquina virtual para ver el nuevo tamaño del dispositivo virtual. Eso debería ser un tiempo de inactividad mínimo con systemd.
Haga clic derecho y seleccione cambiar el tamaño. Arrastre el final al final del disco. Asegúrate de no tocar el principio. gparted es capaz de mover una partición durante el cambio de tamaño, pero eso, por supuesto, destruirá un sistema en ejecución. Pero mover el final está bien. Revise la operación pendiente que gparted realizará para asegurarse de que está extendiendo y no moviendo la partición. Haga clic en aplicar. gparted cambiará la partición en el disco, luego emitirá el núcleo ioctl para volver a leer la tabla de particiones, cambiando también el tamaño del dispositivo de bloque en vivo. Luego, ya que ve que es un PV LVM, ejecuta pvresize para usted. Salga de gparted, y vgs ahora muestra su nuevo espacio.
He escuchado rumores de que separarse puede hacer todo eso sin la sobrecarga de una GUI, pero nunca he sido capaz de descubrir el vudú. Parted tiene que ser una de las peores interfaces CLI que he intentado usar.
No use fdisk, debe eliminar y reasignar la partición para cambiar el tamaño y, de forma predeterminada, borrará la firma LVM2 al escribir. Creo que vi una opción "avanzada" para desactivar ese comportamiento destructivo, pero nunca lo he probado.
También puedes probar cfdisk (curses fdisk). Puede tener un tamaño de partición utilizable. Es bastante fácil ejecutar pvresize manualmente, y hay un comando para indicarle al núcleo que vuelva a leer la tabla de particiones. Pero tendría que hacer una prueba para asegurarme de que no borre la firma LVM como fdisk.
fuente
Si el volumen físico LVM está en una partición, no, no puede cambiar su tamaño sin reiniciar.
Puede editar la tabla de particiones en la unidad, pero Linux se negará a usarla hasta que reinicie.
Si está utilizando XFS, cambie
resize2fs
axfs_growfs
.Puede mostrar los PV que usa y los LV en el grupo de volúmenes usando
pvs
ylvs
.PV en disco sin procesar
PV en una partición
En primer lugar hay que cambiar el tamaño de la partición, el uso
parted
,fdisk
o una herramienta similar para eso. Recuerde que esas herramientas solo editan la descripción donde están las particiones, no mueven los datos. En otras palabras, fácilmente puede extender solo la última partición del disco. Luego reinicie su máquina y después de eso debería poder informar a LVM que tiene espacio adicional disponible:fuente
sudo pvresize /dev/sda2
informa "1 volumen (s) físico (s) redimensionado", perosudo lvextend /dev/mapper/VolGroup-lv_root -L +10G
falla con el error "espacio libre insuficiente: se necesitan 320 extensiones, pero solo 0 disponibles".sudo fdisk -l
informa que tengo 54G disponibles, mientras que lossudo pvdisplay
informes solo 40G están en uso. ¿Por qué falla lvextend?resize
comando de parted para aumentar el tamaño de la partición primaria, pero me dio el error "No se pudo detectar el sistema de archivos". ¿Cómo cambiar el tamaño de la partición con parted o fdisk?Consideraría revisar ssm (system-storage-manager) si está disponible en su distribución.
Echa un vistazo a esto para obtener un poco más de información: /unix//a/293173
ssm parece facilitar el cambio de tamaño de los volúmenes lógicos sin tener que hacer todo usted mismo.
Pude usar para extender mi partición de inicio con él después de reiniciar mi sistema operativo e iniciar sesión primero como root. (Tuve que reiniciar dos veces en total, pero funcionó al final y ahora tengo un 50G extra disponible en mi parición / hogar).
fuente
Después de combinar 25 howto's, finalmente tengo esta solución. No requiere cd en vivo, está completamente sobre la marcha.
Paso 1. formatee la partición con parted (sin gui). En este ejemplo, el tamaño máximo del disco aumentó de 8BG a 32 GB en la caja virtual.
Paso 2. Crear un volumen físico basado en la nueva partición
Paso 3. Agregue el volumen físico al grupo de volúmenes. En un servidor fedora 28 simple, la instalación del grupo de volúmenes se llama fedora.
Paso 4. Agregue el espacio disponible en el grupo de volúmenes al volumen lógico. En una instalación simple de fedora 28, el volumen lógico se denomina raíz.
Paso 5. Indique al sistema de archivos en el volumen lógico que use el espacio extra. En fedora el sistema de archivos es xfs.
¡Atención! ¡xfs_growfs usa el punto de montaje para identificar el sistema de archivos, no el nombre del sistema de archivos que encuentra en la salida de df!
El comando 'xfs_growfs / dev / mapper / fedora-root' le dirá que / dev / mapper / fedora-root no es un sistema de archivos XFS montado. Si está utilizando un sistema de archivos diferente, consulte https://www.tldp.org/HOWTO/LVM-HOWTO/extendlv.html
Paso 6. Disfruta
fuente
Prueba testdisk
sudo dnf install testdisk
sudo testdisk
Simplemente configure crear un archivo de registro Luego, se enumerarán las particiones, - seleccione el medio / partición - luego escriba - y analice - búsqueda rápida - seleccione y escriba
fuente