Назад | Перейти на главную страницу

Xen 4.0.1 vifname пропало из файла конфигурации?

Поигрался с xen 4.0.1, попытался настроить простой domU.

Когда я помещаю параметр в vif, например:

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

Это не удается

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

Также запуск команды из dom0:

ip link set vif5.0 name domu1

возвращается

RTNETLINK answers: Device or resource busy

Любая идея ?

Ваша ссылка vif5.0 используется ...

Это решение работает очень хорошо. Каждый раз, когда я предлагаю вам не использовать его на рабочем сервере ...

*** 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}".

Из того, что я могу сказать vifname= команда не поддерживается должным образом во многих версиях Xen.

Я предполагаю, что вы можете переименовать устройство только перед определенным использованием, а скрипты Xen vif делают это слишком поздно.

Глядя на источник в 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

Я не вижу явных багов. Вы должны посмотреть на свой vif-common.sh и подтвердите, что это то же самое.

редактировать: Я думаю, возможно, интерфейс vifX.Y может не работать на этом этапе. Попробуйте прокомментировать do_or_die линия. Это должно установить vif="$vifname" и если устройство создается позже, нет причин его переименовывать.

Вот одна из причин, по которой возникает эта проблема:

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

xm create ... и удачи!

Решения 1, 2 или 3:

  1. dpkg - очистить сетевой менеджер
  2. остановка обслуживания сетевого менеджера
  3. man NetworkManager.conf и выполните поиск 'unmanaged-devices ...

Пояснение: http://bugs.launchpad.net/bugs/191889

Реализовано решение 3:

Обновите NetworkManager.conf с помощью:

[main]
plugins=keyfile

[keyfile]
unmanaged-devices=interface-name:vif*