Centos 7 Extienda la partición con espacio no asignado

14

Tengo un servidor centos 7 (CentOS Linux release 7.3.1611 (Core))Cuando actualicé mi servidor, vi un error, necesita espacio adicional. Pero tenía 20 GB de disco en el servidor cuando revisé los espacios en disco, solo vi la partición de 4.5 GB creada y la partición de 16 GB es espacio libre sin asignar. ¿Cómo puedo extender la partición desde 16GB de espacio libre?

lsblk:

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0               2:0    1    4K  0 disk
sda               8:0    0   20G  0 disk
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0  4.5G  0 part
  ├─centos-root 253:0    0    4G  0 lvm  /
  └─centos-swap 253:1    0  512M  0 lvm  [SWAP]
sr0              11:0    1 1024M  0 rom

ingrese la descripción de la imagen aquí

kibar
fuente
hacer man lvmo tldp.org/HOWTO/LVM-HOWTO
alexus

Respuestas:

20

Hay tres pasos para hacer:

  1. alterar su tabla de particiones para que sda2termine al final del disco
  2. releer la tabla de particiones (requerirá un reinicio)
  3. cambiar el tamaño de su PV LVM usando pvresize

Paso 1 - Tabla de particiones

Ejecutar fdisk /dev/sda. Emita ppara imprimir su tabla de partición actual y copie esa salida en un lugar seguro. Ahora problema dseguido de 2para eliminar la segunda partición. Problema npara crear una nueva segunda partición. Asegúrese de que el inicio sea igual al inicio de la tabla de particiones que imprimió anteriormente. Asegúrese de que el final esté al final del disco (generalmente el predeterminado).

Problema tseguido de 2seguido 8epara alternar el tipo de partición de su nueva segunda partición a 8e (Linux LVM).

Eche pun vistazo a su nuevo diseño de partición y asegúrese de que el inicio de la nueva segunda partición sea exactamente donde estaba la segunda.

Si todo parece correcto, emita wpara escribir la tabla de particiones en el disco. Recibirá un mensaje de error de partprobe de que la tabla de particiones no se pudo volver a leer (porque el disco está en uso).

Reinicie su sistema

Este paso es necesario para que la tabla de particiones se vuelva a leer.

Cambiar el tamaño del PV LVM

Después de reiniciar su sistema invoque pvresize /dev/sda2. Su volumen LVM físico ahora abarcará el resto de la unidad y puede crear o ampliar volúmenes lógicos en ese espacio.

Andreas Rogge
fuente
Una gran solución, funciona perfectamente. sigue siendo solo la parte de cómo extender volúmenes lógicos.
Mimouni
¡Esta excelente respuesta se detuvo justo antes de la línea de meta! Descubrí cómo terminarlo. El ejemplo compartido en la pregunta mostró dos volúmenes lógicos debajo sda2: centos-rooty centos-swap. En este caso, el grupo de volúmenes es centosy los dos volúmenes lógicos dentro de ese grupo son rooty swap. Si quisiéramos extender el centos-rootvolumen en este ejemplo con el 50% del espacio disponible en nuestra sda2partición recién extendida , usaríamos lvextend -r -l +50%FREE /dev/centos/root. El -rcambia el tamaño del sistema de archivos subyacente para que coincida con el volumen lógico extendida.
Shadoninja 01 de
@Shadoninja que está fuera del alcance de la pregunta original. Así que no lo agregué y no lo agregaré a esta pregunta en el futuro.
Andreas Rogge
@AndreasRogge Diría que está completamente dentro del alcance de esta pregunta, ya que la terminología en este espacio puede ser confusa y fácil de combinar. Vale la pena publicar un resumen completo de cómo obtener espacio en disco no asignado que pueda utilizar el sistema de archivos, ya que esa será una razón extremadamente común para que las personas encuentren esta pregunta.
Shadoninja
13

Puede hacerlo sin reiniciar en CentOS 7. Suponiendo que su disco es / dev / vda y la partición estándar de RHEL / CentOS:

Extender partición

# fdisk /dev/vda

Ingrese ppara imprimir su tabla de partición inicial.

Ingrese d(eliminar) seguido de 2para eliminar la definición de partición existente (la partición 1 suele ser / boot y la partición 2 suele ser la partición raíz).

Ingrese n(nuevo) seguido de p(primario) seguido 2para volver a crear la partición número 2 y enteraceptar el bloque de inicio y enternuevamente para aceptar el bloque final que está predeterminado al final del disco.

Ingrese t(escriba) y 2luego 8ecambie el nuevo tipo de partición a "Linux LVM".

Ingrese ppara imprimir su nueva tabla de particiones y asegúrese de que el bloque de inicio coincida con lo que estaba en la tabla de particiones inicial impresa anteriormente.

Ingrese wpara escribir la tabla de particiones en el disco. Verá un error sobre el Device or resource busycual puede ignorar.

Actualizar la tabla de particiones en memoria del kernel

Después de cambiar su tabla de particiones, ejecute el siguiente comando para actualizar la tabla de particiones en memoria del núcleo:

# partx -u /dev/vda

Cambiar el tamaño del volumen físico

Cambiar el tamaño del PV para reconocer el espacio extra

# pvresize /dev/vda2

Cambiar el tamaño de LV y sistema de archivos

En este comando centosestá el PV, rootes el LV y /dev/vda2es la partición que se extendió. Use pvsy lvscomandos para ver sus nombres de volumen físico y lógico si no los conoce. La -ropción en este comando cambia el tamaño del sistema de archivos de manera apropiada para que no tenga que llamar resize2fso por xfs_growfsseparado.

# lvextend -r centos/root /dev/vda2
Aner
fuente
¡Una respuesta más complicada que la "respuesta seleccionada"!
Furkat U.
Esto es brillante. ¡Gracias! Esta debería ser la respuesta aceptada. ¡Me faltaba el último paso para cambiar el tamaño del lv y el sistema de archivos!
Skinner927
4

Para aquellos que tienen problemas para ampliar volúmenes lógicos como yo, leer esta publicación podría ser útil. En resumen, puede usar lvextendpara extender su volumen lógico: lvextend -l +<PE> <LV_PATH> puede obtener el número de PE restante ( <PE>) vgdisplayy obtener la ruta de su volumen lógico ( LV_PATH) lvdisplay.

Luego, dependiendo de su distribución, desea xfs_growfs <LV_PATH>(Centos 7) o resize2fs <LV_PATH>finalmente cambiar el tamaño.

liwt31
fuente
0

Mira esto: todo en una sola línea, sin preguntas:

parted —pretend-input-tty /dev/vda resizepart 2 100%;
partx -u /dev/vda; pvresize /dev/vda2;
lvextend -r centos/var /dev/vda2
Hix
fuente
Debería considerar agregar explicaciones y su entorno. Por ejemplo, mi partx no tiene opción -u(Centos6.7 util-linux-ng-2.17.2-12.28.el6).
Boop