Xen 4.0.1 vifname ido do arquivo de configuração?

1

Brincando com o xen 4.0.1, tentando configurar um simples domU.

Quando coloco o parâmetro em vif como:

vif = [ 'ip=192.168.1.41,mac=00:16:3E:2F:F4:78,bridge=xenbr0,vifname=domu1' ]

Ele falha

error: Device 0 (vif) could not be connected. 
ip link set vif5.0 name domu1 failed

Além disso, executando o comando do dom0:

ip link set vif5.0 name domu1

retorna

RTNETLINK answers: Device or resource busy

Alguma ideia?

    
por Disco 18.01.2011 / 11:51

4 respostas

1

Pelo que posso dizer, o comando vifname= não é suportado corretamente em muitas versões do Xen.

Meu palpite é que você só pode renomear o dispositivo antes de determinado uso e os scripts Xen vif estão fazendo isso tarde demais.

Olhando para a fonte em vif-common.sh :

vifname=$(xenstore_read_default "$XENBUS_PATH/vifname" "")
if [ "$vifname" ]
then
  if [ "$command" == "online" ] && ! ip link show "$vifname" >&/dev/null
  then
    do_or_die ip link set "$vif" name "$vifname"
  fi
  vif="$vifname"
fi

Não vejo nenhum erro óbvio. Você deve olhar seu vif-common.sh e confirmar que é o mesmo que isso.

Editar : acho que talvez a interface vifX.Y não esteja funcionando neste momento. Tente comentar a linha do_or_die . Isso deve definir vif="$vifname" e, se o dispositivo for criado posteriormente, não há motivo para renomeá-lo.

    
por 25.01.2011 / 15:49
1

Seu link vif5.0 é usado ...

Esta solução funciona muito bem. Toda vez que eu sugiro que você não o use em um servidor de produção ...

*** scripts/vif-common.sh.old   2012-03-28 16:00:50.555630500 +0200
--- scripts/vif-common.sh       2012-03-28 15:59:58.775633091 +0200
***************
*** 70,88 ****
--- 70,90 ----
      # Check presence of compulsory args.
      XENBUS_PATH="${XENBUS_PATH:?}"
      dev="${dev:?}"

      vifname=$(xenstore_read_default "$XENBUS_PATH/vifname" "")
      if [ "$vifname" ]
      then
          if [ "$command" == "online" ] && ! ip link show "$vifname" >&/dev/null
          then
+             ip link set "$dev" down
              do_or_die ip link set "$dev" name "$vifname"
+             ip link set "$vifname" up
          fi
          dev="$vifname"
      fi
  elif [ "$type_if" = tap ]; then
      # Check presence of compulsory args.
      : ${INTERFACE:?}

      # Get xenbus_path from device name.
      # The name is built like that: "tap${domid}.${devid}".
    
por 28.03.2012 / 16:05
1

Este é um dos motivos pelos quais esse problema ocorre:

ps auxw | grep -v grep | grep NetworkManager && service network-manager stop

xm create ... e boa sorte!

Soluções 1, 2 ou 3:

  1. dpkg - purge network-manager
  2. serviço de gerenciamento de rede parar
  3. man NetworkManager.conf e pesquise 'dispositivos não gerenciados ...

Explicação: link

    
por 30.03.2012 / 09:59
1

Solução 3 implementada:

Atualize o NetworkManager.conf com:

[main]
plugins=keyfile

[keyfile]
unmanaged-devices=interface-name:vif*
    
por 31.07.2017 / 03:05