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

После копирования Xen DomU на другую машину вся сетевая конфигурация в Windows теряется.

Задний план

У нашей компании около 40 доменов Xen, установленных на одном сервере, установленных и управляемых набором проприетарных программ. Большинство виртуальных серверов находятся под управлением наших клиентов, и у нас нет доступа к гостевой системе. Около десяти доменов являются полностью виртуализированными серверами Windows и используют паравиртуализированные сетевые адаптеры. Все серверы используют статическую конфигурацию сети.

Мы решили отказаться от собственного решения и перенести все домены на другой сервер с чистым Debian и Xen. Мы хотим, чтобы все гости переносились без вмешательства наших клиентов и без изменения данных клиентов. Нам не нужна живая миграция.

Чтобы усложнить ситуацию, текущий Dom0 - это Centos 5.8 с довольно старой версией Xen (3.4) и использует для управления стек инструментов xend (xm). Новый сервер - Debian Jessie с Xen 4.4 и libxenlight (xl), старый xend здесь не поддерживается. У меня libvirt установлен на обоих серверах, но из-за различий не всю конфигурацию можно скопировать. Конфигурация DomU не сохраняется на старом сервере в файлах - пакет управления использует другой способ определения и управления гостями.

У меня есть сценарий, который приостанавливает работу старого домена, копирует виртуальную файловую систему (это логический том LVM2) на новый компьютер, преобразует конфигурацию в формат libvirt XML, определяет новый домен и запускает его. Он хорошо работает для гостей Linux, но когда я загружаю гостевую систему Windows, у него не настроена сеть.

Конфигурация старого домена: (Формат - SXP, был создан xm list -l urflowgow78eq3. Все идентификаторы представляют собой непрозрачные хэши - это одна из причин, по которой мы хотим от него отказаться)

(domain
    (domid 124)
    (on_crash restart)
    (uuid 909320a0-2770-2461-8c21-ef07fe9caf55)
    (bootloader_args )
    (vcpus 1)
    (name urflowgow78eq3)
    (on_poweroff destroy)
    (on_reboot restart)
    (cpus (()))
    (bootloader )
    (maxmem 1128)
    (memory 1128)
    (shadow_memory 10)
    (features )
    (on_xend_start ignore)
    (on_xend_stop ignore)
    (start_time 1439655183.09)
    (cpu_time 53747.3287688)
    (online_vcpus 1)
    (image
        (hvm
            (kernel )
            (videoram 4)
            (hpet 0)
            (stdvga 0)
            (loader /usr/lib/xen/boot/hvmloader)
            (vncunused 1)
            (xen_platform_pci 1)
            (boot c)
            (rtc_timeoffset -21610)
            (vncpasswd XXXXXX)
            (pci ())
            (pae 1)
            (vpt_align 1)
            (hap 1)
            (viridian 1)
            (acpi 1)
            (localtime 0)
            (timer_mode 2)
            (vnc 1)
            (nographic 0)
            (guest_os_type default)
            (pci_msitranslate 1)
            (apic 1)
            (monitor 0)
            (usbdevice tablet)
            (device_model /usr/lib64/xen/bin/qemu-dm)
            (pci_power_mgmt 0)
            (usb 0)
            (xauthority /root/.Xauthority)
            (isa 0)
            (notes (SUSPEND_CANCEL 1))
        )
    )
    (status 2)
    (state -b----)
    (store_mfn 1044476)
    (device
        (vif
            (bridge lk92o857at1h25)
            (uuid 979030f6-b3b6-fe7c-31d2-4a6c8d98f8c7)
            (script /etc/xen/scripts/vif-bridge)
            (ip 1.2.3.4)
            (rate '6250000,50000')
            (mac 00:16:3e:c6:49:dc)
            (vifname s7s8j3onwrxw38)
            (type ioemu)
            (backend 0)
        )
    )
    (device
        (vbd
            (uuid dde5f71d-d3e5-8e7f-81f2-25b9d3330a20)
            (bootable 1)
            (dev hda:disk)
            (uname phy:/dev/q1jn2lg6voj8fj/yqr9r37ugfhx75)
            (mode w)
            (backend 0)
            (bootable 1)
            (VDI )
        )
    )
    (device
        (vfb
            (vncpasswd XXXXX)
            (vncunused 1)
            (vnc 1)
            (uuid 14058e82-f5cf-b646-bee9-273db560bd3b)
            (location 0.0.0.0:5911)
        )
    )
    (device
        (console
            (protocol vt100)
            (location 3)
            (uuid 9a055df5-5bd5-804e-9493-394040ed4099)
        )
    )
)

Конфигурация нового домена: (XML-формат libvirt. Были созданы все соответствующие устройства, LV и т. д.. Насколько я могу судить, конфигурация сети точно такая же.)

<domain type='xen'>
  <name>Windows</name>
  <uuid>02a81bea-1020-d2fe-7f31-5625a1a6fecd</uuid>
  <memory unit='KiB'>1155072</memory>
  <currentMemory unit='KiB'>1155072</currentMemory>
  <vcpu placement='static'>1</vcpu>
  <os>
    <type arch='x86_64' machine='xenfv'>hvm</type>
    <loader type='rom'>/usr/lib/xen/boot/hvmloader</loader>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <disk type='block' device='disk'>
      <driver name='phy'/>
      <source dev='/dev/XXX_vg0/Windows_lv1'/>
      <target dev='hda' bus='ide'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <controller type='ide' index='0'/>
    <interface type='bridge'>
      <mac address='00:16:3e:c6:49:dc'/>
      <source bridge='xenbr0'/>
      <ip address='1.2.3.4'/>
      <script path='/etc/xen/scripts/vif-bridge'/>
      <target dev='s7s8j3onwrxw38'/>
      <model type='netfront'/>
    </interface>
    <input type='tablet' bus='usb'/>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <graphics type='vnc' port='-1' autoport='yes'/>
    <video>
      <model type='cirrus' vram='9216' heads='1'/>
    </video>
  </devices>
</domain>

Эта проблема

В перенесенной гостевой системе Windows имеется сетевая карта с пометкой «Драйвер устройства Xen Net № 2» с настройкой по умолчанию (автоматически настроенный адрес) вместо статического адреса. В диспетчере устройств есть две сетевые карты: одна помечена как «Не подключен к компьютеру», а другая работает. У обоих точно такой же драйвер.

Автоматически настроенная сетевая карта работает (подтверждается захватом DHCP-запросов с правильного MAC в Dom0), но с неправильной конфигурацией. Из-за этого после загрузки у нового гостя нет подключения к Интернету.

Я думаю, что отключенный интерфейс - это тот интерфейс, который использовался до миграции и настроен с правильным IP-адресом и так далее. (Я не могу это подтвердить, потому что не знаю, как просмотреть конфигурацию неактивного интерфейса.) Новый подключенный интерфейс создается, потому что Windows считает, что это новый сетевой адаптер, похожий на Потеря сети Citrix Xen VM но в моем случае это не изменилось с эмуляции на паравиртуализированную.

Мои вопросы