Предыстория

По-умолчанию, если не установлены драйвера из комплекта Xenserver Tools, Xenserver эмулирует сетевую карту Realtek 8139. Это хорошо, она работает во многих дистрибутивах, но она поддерживает только скорость 100 Мбит/с.
При этом, XenServer способен эмулировать сетевую карту Intel 82540 (E1000). Но выбор этого параметра отсутствует где-либо в конфигурации виртуальной машины.

Решение

Для того. чтобы обойти это ограничение можно сочинить небольшую обертку для исполняемого файла эмулятора QEMU - qemu-dm, которая при запуске будет брать строку параметров запуска qemu-dm и подменять в ней rtl8139 на e1000. В результате - эмулируемый сетевой адаптер будет поддерживать скорость 1Гбит/c и даже jubmo frames.

Все нижу написанное справдливо как для версий 6.1 и 62, так и для новейшей 6.5, за исключением того, что виртуалка dom0 в 6.5 имеет архитектуру x64, поэтому qemu-dm лежит в папке /usr/lib64/xen/bin/. Тут я приведу пример для XenServer 6.5.
Начнем.
Логинимся в командную строку xenserver и переименовываем оригинальный /usr/lib64/xen/bin/qemu-dm в /usr/lib64/xen/bin/qemu-dm.orig

mv /usr/lib64/xen/bin/qemu-dm /usr/lib64/xen/bin/qemu-dm.orig

Затем сделаем файл-обёртку с именем /usr/lib64/xen/bin/qemu-dm и таким содержимым:

#!/bin/bash
oldstring=$@
newstring=${oldstring//rtl8139/e1000}
exec /usr/lib64/xen/bin/qemu-dm.orig $newstring

Затем делаем обёртку исполняемой и запрещаем ее изменять:

chmod 755 /usr/lib64/xen/bin/qemu-dm
chattr +i /usr/lib64/xen/bin/qemu-dm

Теперь можно перезапустить виртуальные машины и в них уже будут эмулироваться сетевые интерфейсы e1000.
Я проверял этот трюк на Xenserver 6.5 и виртуалке с Kerio Control 7.2. Ничего дополнительно настраивать не пришлось. Интерфейсы не “съехали”. Просто изменилась модель эмулируемого сетевого адаптера.

С помощью chattr мы запретили замену файла qemu-dm. Таким образом, его не получится заменить, нпример, в результате обновления Xenserver.

Отключить эту защиту и разрешить изменение этого файла можно так:

chattr -i /usr/lib64/xen/bin/qemu-dm


Enter your comment. Wiki syntax is allowed:
 
  • citrix/изменение-типа-сетевого-адаптера-в-xenserver-rtl8139-e1000.txt
  • Last modified: 2019/03/13 09:00
  • by admin