De mi Manual de Proxmox VE 4.x: Solución de Problemas (P2)

Saludos nuevamente.

En este post publicaré otro problema que tuve cuando estaba haciendo unas pruebas para continuar con la confección del manual. Eso aprovechando que estaba de vacaciones y me quedaba solo descansando en casa. Bueno, lean lo que me sucedió ese día:

P2.- Estoy atado de pies y manos: No tengo posibilidad de acceder al servidor FTP donde están los repositorios locales para actualizar e instalarle algunos paquetes necesarios a una máquina virtual con Debian 8. En cambio, tengo una copia de los mismos en un disco duro, pero está formateado en NTFS. ¿Qué hacer?

Situación:

Una verdadera encrucijada: no tengo posibilidades de tener acceso al servidor FTP donde tengo los repositorios locales de varias distribuciones que uso, pero tengo un disco duro externo USB donde tengo una copia con la actualización de los mismos, y el muy condenado tiene un sistema de archivos NTFS.

Puedo resolver el problema en un 50% instalando el paquete NTFS-3G en el hipervisor Proxmox VE (Anexo 1), pero no puedo configurar un servicio FTP en él para mostrar el repositorio guardado en el disco duro externo porque no tengo copia documental del cambio que hay que hacerle a la configuración de Apache que uso para estos menesteres, dado que la versión 2.4 trae cambios en ese sentido (cosas que me pasan a veces, lo puse directamente en el blog, pero no le hice un documento).

En fin, que estoy atado de pies y manos. La única opción que me queda es pasarle, tanto la memoria flash donde tengo el paquete NTFS-3G como el disco duro externo, a la VM con Debian 8.0 que creé anteriormente a través del hipervisor Proxmox VE.

Problema:

Necesito actualizar e instalar algunos paquetes necesarios en una VM con GNU/Linux Debian 8.0, pero no sé cómo “darle” primeramente la memoria flash para instalarle el paquete con el driver de NTFS-3G para luego “darle” el disco duro externo con los repositorios para actualizar el sistema operativo de la VM a través de la plataforma de Proxmox VE.

Solución:

Debido a las ventajas de la virtualización, Proxmox VE permite asignar a las VM los dispositivos USB conectados directamente al hipervisor.

Según la wiki de Proxmox VE, existen muchas razones para utilizar y acceder directamente al hardware USB del hipervisor desde una VM y adjuntarlo como si fuese un hardware propio de la misma, algunas de estas razones pueden ser:

  • Almacenamiento en modo exclusivo para las VM
  • Tarjetas de red separadas para las VM, pero sin acceso directo de entrada/salida
  • Algún dispositivo especial que necesite drivers específicos, pero que estos solamente se encuentran en una VM

 

La asignación de estos dispositivos puede hacerse de dos maneras:

  • Predefiniéndosela en el archivo de configuración de la VM
  • Adjuntándole dichos dispositivos en caliente mientras la VM está ejecutándose

 

Para lo que se quiere hacer, basta con adjuntar a la VM en cuestión el dispositivo. O sea, primeramente se adjuntaría la memoria flash que contiene el paquete NTFS-3G para poder acceder sin problemas al disco duro externo donde están los repositorios.

Paso 1: Conectar la memoria flash al hipervisor

Para comenzar el proceso lo primero que hay que hacer es conectar la memoria flash al hipervisor Proxmox VE.

NOTA: Entre los datos significativos de la memoria flash está que el fabricante del chipset es Silicon Motion (SMI).

Entonces, una vez conectada la misma y sabiendo el fabricante del chipset, se procede a ver a qué puerto está conectada y qué identificador le da el hipervisor. Para ello se debe ejecutar el siguiente comando:

# lsusb | grep “Silicon Motion”

Donde el resultado es:

root@prx4-c0-1-drbd8:~# lsusb | grep “Silicon Motion”

Bus 001 Device 002: ID 090c:1000 Silicon Motion, Inc. – Taiwan (formerly Feiya Technology Corp.) Flash Drive

root@prx4-c0-1-drbd8:~#

De la salida anterior el dato que interesa es el ID del dispositivo USB: 090c:1000.

Paso 2: Asignar la memoria flash a una VM específica

Ahora lo que sigue es asignar a la VM 105 el dispositivo conectado al hipervisor. Esto se hace mediante el comando:

# qm set 105 -usb0 host=090c:1000

Cuyo resultado es:

root@prx4-c0-1-drbd8:~# qm set 105 -usb0 host=090c:1000

update VM 105: -usb0 host=090c:1000

root@prx4-c0-1-drbd8:~#

NOTA: Esto lo que hace por debajo es añadir el parámetro usb0 con el valor host=090c:1000  a la configuración de la VM 105, la cual se ve así (comando qm config 105):

boot: c

bootdisk: virtio0

cores: 1

ide2: local:iso/debian-8.1.0-amd64-CD-1.iso,media=cdrom

memory: 512

name: vm06.lab.codesa.co.cu

net0: virtio=32:66:35:33:61:39,bridge=vmbr0

numa: 0

ostype: l26

smbios1: uuid=3534fe83-5e33-497e-b902-b701de424465

sockets: 1

usb0: host=090c:1000

virtio0: local:105/vm-105-disk-1.qcow2,cache=writeback,size=30G

Entonces, si la VM está encendida, hay que apagarla e iniciarla nuevamente. O sea, apagarla primero (apagado limpio [ACPI]):

root@prx4-c0-1-drbd8:~# qm shutdown 105

Esperar que la VM se apague y luego ejecutar lo siguiente para iniciarla:

root@prx4-c0-1-drbd8:~# qm start 105

Running as unit 105.scope.

root@prx4-c0-1-drbd8:~#

Una vez encendida, se chequea si el nuevo dispositivo adjuntado a la VM está presente en la lista de dispositivos USB con el comando siguiente:

# lsusb

Que da como resultado:

root@vm06:~# lsusb

Bus 002 Device 002: ID 090c:1000 Silicon Motion, Inc. – Taiwan (formerly Feiya Technology Corp.) Flash Drive

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd

Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

root@vm06:~#

Que, como se ve en la salida del comando, sale una línea bastante similar con los datos correspondientes a la memoria flash que salió en el hipervisor.

Las operaciones siguientes, se pueden consultar en el Anexo 1, que son las que se corresponden con la instalación del paquete NTFS-3G ubicado en una carpeta dentro de la memoria flash para poder leer los repositorios ubicados en el disco duro externo USB.

Terminada esta parte, se procede a apagar la VM, extraer la memoria flash del hipervisor.

Paso 3: Asignar el disco duro externo USB a una VM específica

Igual que el paso anterior, conectar el disco duro externo USB al hipervisor Proxmox VE.

NOTA: Entre los datos significativos del disco duro externo USB está que el fabricante del chipset de la cajuela (enclosure) que contiene el disco duro físico es Iomega Corp.

Entonces se procede a ver en cual qué puerto está conectado el equipo y qué identificador le da el hipervisor. Para ello se debe ejecutar el siguiente comando:

# lsusb | grep “Iomega”

Donde el resultado que muestra es el siguiente:

root@prx4-c0-1-drbd8:~# lsusb | grep “Iomega”

Bus 001 Device 003: ID 059b:037b Iomega Corp.

root@prx4-c0-1-drbd8:~#

Ahora lo que sigue es asignar a la VM 105 el ID del disco duro externo USB. Esto se hace ejecutando el comando:

# qm set 105 -usb0 host=059b:037b

Y obtenemos la salida siguiente:

root@prx4-c0-1-drbd8:~# qm set 105 -usb0 host=059b:037b

update VM 105: -usb0 host=059b:037b

root@prx4-c0-1-drbd8:~#

Luego encender la VM  ejecutado lo siguiente:

root@prx4-c0-1-drbd8:~# qm start 105

Running as unit 105.scope.

root@prx4-c0-1-drbd8:~#

Ahora se chequea si el nuevo dispositivo adjuntado a la VM está presente en la lista de dispositivos USB con el comando siguiente:

# lsusb

Que da como resultado:

root@vm06:~# lsusb

Bus 001 Device 002: ID 059b:037b Iomega Corp.

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 002 Device 002: ID 0627:0001 Adomax Technology Co., Ltd

Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

root@vm06:~#

Que, como se ve en la salida del comando, también sale una línea similar con los datos correspondientes al disco duro externo USB que salió en el hipervisor.

Y las operaciones siguientes, se pueden consultar también en el Anexo 1, que son las que se corresponden con la actualización y posterior instalación de paquetes necesarios utilizando ya directamente los repositorios ubicados en el disco duro externo USB.

Finalmente con los pasos descritos anteriormente se resuelve el problema del acceso al disco duro externo USB desde la VM con Debian 8.0 para poder actualizar el sistema operativo e instalar ciertos paquetes necesarios y otras herramientas. 🙂

Y hasta aquí el post. Espero les sirva. 🙂

Acerca de Hector Suarez Planas

Es Licenciado en Ciencia de la Computación (3 de julio de 2002). Ha sido Administrador de Red en varias organizaciones, Programador y Analista de Sistemas. Actualmente se desempeña como Administrador de Red del Telecentro Tele Turquino de Santiago de Cuba. Tiene experiencia con sistemas Windows y GNU/Linux, Infraestructura de Redes (Cisco, AlliedTelesis, Netgear y HP ProCurve, Vyatta/VyOS), Servidores tanto físicos como virtuales (plataformas VMWare, Proxmox VE y Xen), Sistemas de Seguridad Informática (Snort/Suricata IDS, appliances AlienVault OSSIM), programador (Delphi, C++ Builder, Perl [poco], Python [algo]), entre otras cosas. Actualmente estoy incursionando en todo lo que tiene relación con Cloud Computing (OpenStack) y Centros de Datos. :-)
Esta entrada fue publicada en Proxmox VE. Guarda el enlace permanente.

4 respuestas a De mi Manual de Proxmox VE 4.x: Solución de Problemas (P2)

  1. Alejandrux dijo:

    Excelente manual, felicidades y gracias.!!

    • Hector Suarez Planas dijo:

      Saludos, Alejandrux.

      Primero que todo, gracias por su comentario, se agradece muchísimo.

      Me alegra que le haya sido de utilidad. Muchísimas gracias.

      🙂

  2. Lilith dijo:

    Hola, Gracias por tu post me sirvio al dedillo…

    • Hector Suarez Planas dijo:

      Saludos, Lilith.

      Primero que todo, gracias por su comentario.

      Y, por nada, para eso estamos, para ayudar a los colegas. 🙂

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *