Ir al contenido principal

Cómo redimensionar un disco virtual en KVM

Introducción

Hola de nuevo, amigos. Tras un parón al que me he visto forzado por circunstancias personales, vuelvo de nuevo con un nuevo artículo. 

En esta ocasión voy a abordar cómo ampliar un disco virtual en una máquina creada en KVM. Con el fin de cubrir este aspecto cuando nos quedamos cortos de espacio en una máquina virtual por haber calculado mal en el momento de crearla. Cómo crear esta máquina ya lo expliqué en un artículo anterior: Virtualizacion con KVM.

Para este pequeño laboratorio he creado una máquina virtual con una instalación limpia de Ubuntu 20.04 con las siguientes características: 
  • CPUs: 2
  • Memoria: 4096 MiB = 4 GiB
  • Disco: VirtIO en formato qcow2 de 30GiB
El resto las opciones son las que se muestran por defecto.

Y otra máquina virtual con Windows 7, con las siguientes características:
  • CPUs: 2
  • Memoria: 4096 MiB = 4 GiB
  • Disco: VirtIO en formato qcow2 de 40GiB

Redimensionando el disco virtual

Antes de realizar el redimensionado de la partición es aconsejable realizar una copia de seguridad de los datos importantes guardados en el disco virtual. En teoría, el proceso que vamos a realizar no conlleva la pérdida de datos, pero realizar la copia nos previene de dicha pérdida durante algún fallo durante el proceso de redimensionado.

El primer paso del procedimiento es la ampliación del tamaño del disco virtual. Actualmente esta característica sólo está disponible usando la línea de comandos, pero es muy simple. Todo lo que se hace con esto es modificar la información de la cabecera del disco virtual, por lo que el comando se ejecuta instantáneamente. Hay que recordar que el formato del disco virtual debe ser necesariamente o raw o qcow2.

Con la máquina virtual apagada, seguimos la secuencia de comandos siguientes en la terminal de la máquina anfitriona con privilegios de superusuario:
  • Nos posicionamos en el directorio donde se encuentra la imagen del disco. En las propiedades de la máquina virtual del Gestor de máquinas virtuales se puede consultar la ubicación, en mi caso:
$cd /var/lib/libvirt/images/
  • Ampliamos el tamaño del disco en 5 GiB, por ejemplo:
$sudo qemu-img resize ubuntu20.04.qcow2 +5G

El sistema devolverá un mensaje instantáneo cuyo texto será Image rezised.

Y con estos dos comandos ya tenemos el disco ampliado 5G.

En nuestras máquinas virtuales nos debería aparecer una partición sin asignar del tamaño ampliado con el comando.

En Ubuntu 20.04


En Windows 7



Redimensionando el sistema de ficheros

Este segundo paso del procedimiento requiere de alguna clase de software de manipulación de particiones para incrementar el tamaño del sistema de ficheros en el disco virtual manipulado en la máquina cliente.

En Ubuntu 20.04

En esta máquina virtual, que está recién instalada y no tiene software añadido a lo que se instala por defecto, usaré la utilidad de discos que viene preinstalada. Si es de tu preferencia, también puedes usar otro software, como puede ser el GParted.

Pues al lío. En el cuadro de búsqueda de Actividades escribimos discos. Seleccionamos la utilidad de manejo de discos. Una vez abierto el programa, seleccionamos la partición del disco que vamos a expandir y abrimos el menú de acciones picando sobre las dos ruedas dentadas y seleccionamos la opción Redimensionar...:


Hay que tener en cuenta que si la partición que queremos ampliar pertenece a una partición extendida, debemos ampliar en primer lugar la partición extendida y posteriormente la partición que queríamos originalmente. Y también que sólo se puede ampliar la partición si es contigua al espacio libre recién creado.

En el cuadro de diálogo que nos aparece movemos la bolita para la derecha si queremos ampliar y para la izquierda si quisiéramos reducir la partición. Esta última acción sí que puede conllevar pérdida de datos. Al ampliar, hasta ahora, yo no he perdido datos. Pero como dije antes, siempre hay que sacar una copia de seguridad de los datos que no queramos perder cuando se está trasteando con el disco.


Después de dar al botón Redimensionar vemos el resultado final ya ocupando el espacio que habíamos querido ampliar:

En Windows 7

La segunda máquina virtual tiene instalado el Windows 7, no disponía de otra versión de Windows más actual para crearla. Pero para propósitos educativos nos vale. Lo explicado en esta sección se puede extrapolar a versiones posteriores de Windows.

En primer lugar, una vez arrancada la máquina virtual, debemos acceder al Administrador de discos. A continuación, abriremos el menú contextual sobre la partición que se quiere ampliar, que tendrá que ser la que está pegada al espacio libre, y eligiendo la opción Extender volumen.


Elegir esta opción nos abre un asistente en el que tendremos que indicar la cantidad de espacio que se quiere aumentar esa partición. Por defecto, estará seleccionado todo el espacio que está sin asignar contiguo a la partición que queremos ampliar.


Como querremos ampliar todo el espacio le damos a Siguiente y después a Finalizar. Una vez terminado el asistente comprobaremos que la partición del disco aparece con el nuevo tamaño.


Y esto es todo en Windows 7.

Una nota final para Windows XP, un sistema del que aún queda alguna máquina por ahí. En este caso, el Administrador de discos no permite extender la partición tal y como se hace en Windows 7. Para realizar el redimensionado utilizaremos una máquina virtual con GNU/Linux, que corra un entorno gráfico, y que tenga instalado el programa GParted, o la propia utilidad de Discos que vimos anteriormente, para el manejo de particiones.

El disco duro recién ampliado se pondrá en la máquina virtual con el GNU/Linux como un disco más. Tras arrancar la máquina virtual invocaremos al GParted o Discos. Tras seleccionar el disco modificado, nos mostrará un espacio sin asignar. Procederemos a ampliarlo usando las opciones de las que dispone el GParted o la utilidad Discos según sea el programa que estemos usando.

Conclusión

Como hemos visto, ampliar el tamaño de un disco en una máquina virtual hecha usando KVM es muy sencillo. El proceso no conlleva pérdida de datos, al menos en todas las pruebas que yo he realizado. Pero sigo insistiendo, mejor sacar una copia de seguridad de los datos que deseamos conservar antes de empezar el proceso.

Comentarios

Entradas populares de este blog

Atom ha muerto, viva Zed

El día 8 de junio de 2022, Microsoft anunció que a partir del día 31 de diciembre de este mismo año dejaría de dar soporte para el editor de código Atom .  ¿En qué nos afecta esto a nosotros? Bueno, pues si me han seguido en artículos anteriores saben que tras una comparativa de varios IDEs había decidido utilizar Atom para los ejemplos que tuviera que hacer en este blog. Sobre todo los artículos que prepararé para ilustrar el uso de Laravel . Amén de los miles de programadores que actualmente usan Atom  en sus proyectos, claro. Pero, ¿qué editor de código abierto podremos utilizar para sustituir a Atom ? En el mismo comunicado, Microsoft explicaba que el abandono del proyecto Atom  se debía a que querían volcar todos sus esfuerzos en el Visual Studio Code y, por supuesto, recomendó a los usuarios de Atom la utilización del mismo como alternativa natural. No quiero entrar en las bondades o defectos del Visual Studio Code  si quieres elegirlo como tu IDE para d...

Gestión de la red usando la línea de comandos (III): gestión DNS

  Introducción En este nuevo artículo de la serie vamos a hablar de la gestión del DNS, Domain Name System. El sistema de resolución de nombres nos permite traducir los nombres de los dominios de Internet en direcciones IP númericas. Más difíciles de recordar para los humanos.  El DNS fue concebido a mediados de los años 80. Hasta esa época, los ordenadores conectados a una red disponían de una dirección numérica, la dirección IP. Pero con el tiempo, cada vez había más ordenadores conectados a las redes. Esto hacía que cada vez fuera más difícil recordar las direcciones IP. Sobre el año 1983, Paul Mockapetris , un informático estadounidense, desarrolló un sistema jerárquico de nombres para identificar a los ordenadores conectados a una red. Y, a mediados de la década, ya se convirtió en un estándar. Pueden consultar más información sobre el sistema DNS consultando el artículo de la Wikipedia: Sistema de nombres de dominio . En este artículo, no vamos a explicar como montar un ...

Gestión de la red usando la línea de comandos (IV): monitorización de conexiones

  Introducción En este artículo de la serie de gestión de la red usando la línea de comandos nos vamos a centrar en la monitorización de las conexiones. Para ello vamos a utilizar el comando netstat , que es el decano de los comandos de monitorización de la red. También mostraremos el comando ss , que viene a sustituir a netstat  en las funciones de monitorización de conexiones de red. Asimismo mostraré una breve explicación de los conceptos que se van a trabajar en el artículo. S ockets, puertos, protocolos y procesos En primer lugar vamos a empezar con un poco de teoría para alumbrar lo que luego se explicará en el artículo. Si ya sabes de lo que estamos hablando, sáltate esta sección y ve al meollo del asunto [1] . Nos referiremos al contexto de la conexiones TCP/IP. Dentro de este contexto, cada conexión queda definida por dos endpoints , puntos finales, uno en el host , equipo, que establece la conexión y otro en el host con el que se comunica. Generalmente este último es...