Está en: » Artículos »

Ceder dispositivos a contenedores lxc (passthrough)

Ceder dispositivos a contenedores lxc (passthrough)

containers

Para compartir un dispositivo con un contenedor lxc (una tarjeta de tv dvb por ejemplo), haremos:

ls -lh /dev/dvb/adapter0/
crw-rw----+ 1 root video 212, 0 dic 13 17:00 demux0
crw-rw----+ 1 root video 212, 1 dic 13 17:00 dvr0
crw-rw----+ 1 root video 212, 3 dic 13 17:00 frontend0
crw-rw----+ 1 root video 212, 2 dic 13 17:00 net0

Ya tenemos identificador necesario para dicho dispositivo (212 en este caso).

Ahora, con la máquina contenedor en marcha, vamos a indicar desde el host principal que comparta dichos nodos con el contenedor:

lxc-device -n nombre_contenedor add /dev/dvb/adapter0/

Por cada línea debería remitirnos:

Added '/dev/dvb/adapter0/demux0' to 'nombre_contenedor' as '/dev/dvb/adapter0/demux0'.
Added '/dev/dvb/adapter0/demux0' to 'nombre_contenedor' as '/dev/dvb/adapter0/dvr0'.
Added '/dev/dvb/adapter0/demux0' to 'nombre_contenedor' as '/dev/dvb/adapter0/frontend0'.
Added '/dev/dvb/adapter0/demux0' to 'nombre_contenedor' as '/dev/dvb/adapter0/net0'.

Esto nos ha permitido tanto ceder los recursos del dispositivo (temporalmente) como crear los nodos necesarios en el contenedor. Y digo temporalmente porque cuando reiniciemos el contenedor, perderemos dicha gestión.

Para que sea permanente y ya que con el paso anterior creamos los nodos para su montaje automático, debemos añadir al archivo de configuración del contenedor lo siguiente:

(Normalmente el archivo se encuentra en /var/lib/lxc/nombre_contenedor/config)

lxc.cgroup.devices.allow = c 212:* rwm

Recuerda que 212 es en nuestro caso de ejemplo; deberás especificar el tuyo en cuestión.

Con esto ya quedaría todo funcionando en posteriores reinicios.

 

Comentarios

Deje su comentario

Previsualización de comentario
  1. Anónimo dice: