Archivo etiqueta VMware
VMware: ¿Cómo añadir un disco duro a una máquina virtual Linux sin reiniciar?
Por Ángel Carrasco - GNU/Linux, Virtualización, VMware - 08/11/2012
Más de una vez tenemos que añadir un disco duro "en caliente" a una máquina virtual creada por nuestro hipervisor. En nuestro caso usamos VMware, pero esto es aplicable a otros productos.
El problema que nos surge es, ¿cómo podemos hacerlo sin reiniciar un servidor en producción?
La solución reside en volver a escanear el bus SCSI.
Para ello, primero localizaremos qué host tenemos disponible.
ls /sys/class/scsi_host
Acto seguido, elegiremos el host donde está el disco duro y ejecutaremos:
echo "- - -" > /sys/class/scsi_host/host1/scan
De esta forma, ya tendremos disponible el disco duro sin reiniciar.
Espero que os sea tan útil como a mí me ha sido.
Cómo saber el tamaño de tu datastore en VMware ESX(i)
Por Ángel Carrasco - Virtualización, VMware - 05/10/2012
A modo de apéndice de las anteriores entradas, si necesitamos saber el tamaño real de los discos duros virtuales alojados en un datastore concreto a través de la línea de comandos, deberemos acceder al hipervisor de VMware a través del protocolo SSH y a partir de ahí, debemos ir a la ubicación de nuestro datastore.
cd /vmfs/volumes/[DATASTORE]
Y ahí ejecutaremos:
find . -name "*-flat.vmdk" -print0 | xargs -0 du -h -c | tail -1
Que arrojará la siguiente respuesta:
1.2T total
De esta forma, podéis realizar una contabilidad exacta de lo que ocupan los discos duros virtuales en vuestro datastore.
Cómo saber los tamaños reales de las máquinas virtuales en VMware ESX(i)
Por Ángel Carrasco - Virtualización, VMware - 05/10/2012
A raíz de la entrada anterior, un lector me ha preguntado cómo se puede saber el tamaño de los discos duros virtuales teniendo en cuenta que algunos están provisionados en thick y otros en thin.
La pregunta no es trivial ya que cuando utilizamos el comando ls sobre el fichero que contiene los datos del disco duro virtual -aquel que contiene la palabra flat en el nombre- siempre aparece el tamaño "en thick" sea éste thick o thin. Por lo que nos interesa saber el tamaño realmente ocupado, en especial, si hemos provisionado más espacio del existente.
Lo primero de todo es acceder al hipervisor de VMware a través del protocolo SSH. Una vez allí, debemos ir al directorio donde se encuentra nuestra máquina virtual.
cd /vmfs/volumes/[DATASTORE]/[MAQUINA_VIRTUAL]
Ahí vamos a obtener el tamaño "en thick" de los discos duros, para ello escribiremos:
ls -lah *flat.vmdk
Que nos mostraría algo así:
-rw------- 1 root root 10.0G Sep 26 11:57 PLANTILLA-flat.vmdk
Por lo que podemos saber que la provisión en thick son 10 G y para saber exactamente cuánto está ocupado, debemos hacer:
du -hc *-flat.vmdk
Cuya respuesta sería:
1.7G PLANTILLA-flat.vmdk
1.7G total
De esta forma, vemos que tenemos ocupados 1,7 Gb de los 10 Gb totales que está provisionado este disco duro virtual.
Si tenéis una versión 4.0 de ESXi, por ejemplo, puede ser que no tengáis el comando du, así que os diré un truco muy particular para tenerlo. VMware utiliza busybox para tener todos los comandos de uso de administración frecuente, me imagino que el motivo será por ocupar menos espacio y poder controlar mejor el comportamiento de los mismos. Entonces, en el directorio /opt/ nos bajamos el binario de la url de Busybox.
Si el hipervisor tiene salida a Internet, yo recomiendo ejecutar:
wget http://www.busybox.net/downloads/binaries/latest/busybox-i686
En caso contrario, deberás bajártelo y pasarlo a través de WinSCP.
Cuando ya tengamos el binario en /opt, debemos aplicar los permisos pertinentes:
chmod 755 busybox-686
chmod +s busybox-686
Para evitar incomodidades, debemos aplicar el siguiente enlace simbólico:
ln -s /opt/busybox-686 /bin/du
De esta forma, tendríamos el comando du habilitado para realizar correctamente los cálculos de los discos duros virtuales en thin.
Ruego que si alguien conoce otro método para obtener los valores desde la línea de comandos me lo haga saber para compartirlo con todos vosotros.
Espero que os haya sido tan útil como para mí.
VMware: Reducir el espacio migrando de Thick a Thin
Por Ángel Carrasco - Virtualización, VMware - 02/10/2012
En época de crisis, toca economía de guerra y eso consiste en ahorrar en licencias y en espacio. Por eso os planteo un problema real, ¿qué podemos hacer si tenemos que ahorrar espacios en nuestras máquinas virtuales dentro de un VMware con las licencias mínimas? La opción de llorar o gritar no es válida así que una de las opciones puede ser migrar los discos duros de estar provisionados de forma thick a thin.
Antes que nada, ¿qué es thick y qué es thin? A la hora de crear discos virtuales podemos optar por dos opciones:
· Thick: Donde se creará un fichero -equivalente a nuestro disco duro virtual- con todo el tamaño indicado. En otras palabras, si decidimos tener un disco duro de 50 Gb, generará un fichero de 50 Gb.
· Thin: Implantará un fichero con el volumen de la información que contiene y que irá creciendo hasta el tamaño indicado. Dicho de otra forma, si queremos tener un disco duro de 50 Gb pero sólo tenemos ocupado 14 Gb, el fichero sólo tendrá 14 Gb.
Estas definiciones son más "prácticas" que académicas, si se desea más información sobre ellas, os recomiendo consultar el Blog de José María González.
Hay otras recetas para ahorrar espacio, sin embargo, me he inclinado por esta, debido a que suele ser frecuente provisionar un espacio y más cuando no se conoce el crecimiento que puede tener el espacio y luego, cuando se ha consolidado, comprobar que tenemos un 40% de espacio sin usar por ejemplo.
El primer paso consiste en apagar la máquina virtual. Para ello, deberéis usar vSphere Client por ejemplo. Esta es una de las pocas pegas que tiene este procedimiento. Sí debemos avisaros que la velocidad con la que realicemos todo el proceso depende en gran medida del tamaño de los discos duros en cuestión y del hardware del que dispongamos.
Después de apagada la máquina virtual, debemos acceder vía protocolo SSH al hipervisor ya que actuaremos directamente en él.
Una vez en la shell, debemos acceder a nuestro datastore y al directorio donde se encuentra nuestra máquina virtual:
cd /vmfs/volumes/[DATASTORE]/[MAQUINA]
Inciso: El nombre de nuestro datastore aparece en la configuración de la máquina virtual, si vemos las propiedades del disco virtual -a través del vSphere Cliente- como también podemos leer el directorio donde está ubicada la máquina. Generalmente si el servidor se llama server, el directorio se llamará SERVER.
Ahora lo que vamos es a clonar los discos duros actuales en sus equivalentes en formato thin para ello ejecutaremos:
for i in `ls | grep -v flat | grep vmdk`;
do
echo "Pasando de Thick a Thin el disco virtual $i";
vmkfstools -i $i -d thin thin_$i;
done
Terminada esta operación, renombraremos los discos duros virtuales originales -esos que están en formato thick- de forma que si la operación no sale como queremos, podamos volverlos a usar.
for i in `ls | grep -v flat | grep vmdk | grep -v thin_`;
do
echo "Realizando una copia de seguridad del disco virtual thick $i";
vmkfstools -E $i bckp_$i;
done
Como ya tenemos una copia de los discos virtuales originales y su versión en thin, vamos a renombrar estos últimos para que asuman el papel de los primeros:
for i in `ls | grep -v flat | grep thin_`;
do
j=`echo $i | sed -e "s/thin_//g"`;
echo "Renombrando el disco virtual thin $i al original $j";
vmkfstools -E $i $j;
done
En este momento, lo mejor será arrancar la máquina virtual y comprobar que el proceso ha sido correcto. En caso contrario, deberemos ejecutar:
for i in `ls | grep -v flat | grep bckp_`;
do
j=`echo $i | sed -e "s/ bckp_//g"`;
echo "Renombrando el disco virtual thick $i al actual $j";
vmkfstools -E $i $j;
done
Una nota para que nadie le dé un susto, dependiendo de la versión de nuestro VMware ESX(i), este cambio puede parecer que no queda reflejado en el hipervisor. Si tal es el caso, podéis eliminar la máquina virtual del inventario de VMware y volverlo a añadir.
Por cierto, si queremos ver de forma visual qué tamaños tienen los discos duros tanto los thick como los thin que se están generando, recomendamos que empleen la opción Browse Datastore de vSphere Client donde se mostrará perfectamente los tamaños.
Si todo hay ido correctamente, deberemos borrar los discos duros virtuales originales, aquellos que empiezan por bckp_ ya que no son necesarios y ocupan espacio:
for i in `ls | grep -v flat | grep bckp_`;
do
echo "Eliminando el disco virtual thick $i";
vmkfstools -U $i;
done
Espero que esto os sea tan útil como ha sido para mí.
Cómo configurar un Port-channel en Cisco para ser usado por VMware ESX(i) 4.x
Por Ángel Carrasco - Cisco, Redes, Virtualización, VMware - 22/05/2012
Desde hace más de un año utilizo VMware ESX(i) con excelentes resultados. Si a este buen software de virtualización, le unimos un buen almacenamiento y una buena infraestructura de red, se tiene todas las posibilidades de éxito. De hecho, de esto último es de lo que os quiero hablar.
Tanto para tener alta disponibilidad como para aprovechar los anchos de banda, se ha de optar por la opción de port-channel si se utiliza Cisco.
Para ello, configuramos cada interfaz de la siguiente forma:
interface GigabitEthernet1/33 description SERVIDOR_VL10_1 switchport switchport access vlan 10 switchport mode access switchport nonegotiate no ip address flowcontrol receive on channel-group 1 mode on spanning-tree portfast
La línea 6 se introduce debido a que no se soporta el protocolo DTP (Dynamic trunking protocol). De hecho, cuando se configura un puerto en modo trunk, siempre hay que establecerlo.
La línea 8 habilita el control de recepción de datos y resulta necesario ya que vamos a incluir dos interfaces. Ojo, se puede añadir más si se quiere o se necesita.
La línea 9 indica a qué port-channel se integra este interfaz.
La línea 10 habilita la configuración PortFast en el interfaz en modo trunk.
Por último, configuramos el port-channel que aglutinará los dos anteriores:
interface Port-channel1 description SERVIDOR_VL10 switchport switchport access vlan 10 switchport trunk encapsulation dot1q switchport mode access switchport nonegotiate no ip address flowcontrol receive on spanning-tree portfast spanning-tree guard loop
La línea 11 debemos añadirla para el correcto funcionamiento del mismo.
Como siempre digo, esta configuración ha cumplido mis expectativas. Sin embargo, cada cual deberá ajustarla a sus necesidades.
Espero que os sea útil.

