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

XenServer Guest PV - последовательный порт RS232

Есть ли способ перенаправить (сквозной) физический последовательный порт в систему XenGuest PV? Мне нужно иметь возможность настроить последовательное устройство с виртуальным сервером на XenServer 6.2.

Я ищу решение, как сделать переадресацию последовательного порта.

РЕДАКТИРОВАТЬ: Разумнее было купить конвертер RS-232 в Ethernet. Я упомянул это под этим комментарием https://serverfault.com/a/740196/187680. Основная и самая важная причина заключалась в том, что виртуальная машина не зависит от одного конкретного хост-сервера, что позволяет вам более легко управлять обновлениями XenServer и отказоустойчивостью виртуальной машины.

Возможно, для вас уже слишком поздно, но ваш вопрос может представлять общий интерес. Если ваш последовательный порт (или USB-порт, или что-то еще) можно идентифицировать как устройство PCI, вы можете избежать того, чтобы XS взял под контроль это устройство и позволил управлять им с помощью гостевой ОС.

  1. lspci чтобы перечислить устройства и выбрать, какое из них представляет ваш последовательный порт, в следующем примере идентификатор PCI последовательного порта - 02: 00.0

    01:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)
    02:00.0 Serial controller: MosChip Semiconductor Technology Ltd. PCIe 9922 Multi-I/O Controller
    05:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)
    
  2. редактировать /boot/extlinux.conf и найдите строку «label xe», которая определяет вашу конфигурацию загрузки по умолчанию; в строке, начинающейся с «append / boot ...», находятся параметры; после "splash" добавьте еще один параметр как "pciback.hide = (02.00.0)", где вы должны заключить в скобки тот же идентификатор PCI, который вы нашли ранее. Если устройств PCI, которые вы хотите передать гостю, несколько, перечислите их каждое в круглых скобках, разделенных пробелами, как в примере.

    label xe
      # XenServer
      kernel mboot.c32
      append /boot/xen.gz mem=1024G dom0_max_vcpus=4 dom0_mem=752M,max:752M watchdog_timeout=300 lowmem_emergency_pool=1M crashkernel=64M@32M cpuid_mask_xsave_eax=0 console=vga vga=mode-0x0311 --- /boot/vmlinuz-2.6-xen root=LABEL=root-mvyxdjwc ro xencons=hvc console=hvc0 console=tty0 quiet vga=785 splash pciback.hide=(05:00.0) (02:00.0) (00:1d.0) --- /boot/initrd-2.6-xen.img
    
  3. Сохраните файл, выдайте extlinux -i /boot команду и перезагрузите сервер.

  4. Теперь вы должны назначить PCI-устройства виртуальной машине, которой вы хотите управлять. Хотя есть и другие способы получить UUID виртуальной машины, вы можете перечислить их все с помощью xe vm-list и выберите нужную из появившегося списка. В примере желаемый UUID - a82769ff-9dc4-56bb-61f9-57d741162a14

    uuid ( RO)           : a82769ff-9dc4-56bb-61f9-57d741162a14
         name-label ( RW): sersrv03.xyz.lan
        power-state ( RO): running
    
  5. И, наконец, следующая команда, которая указывает виртуальной машине взять на себя прямую зарядку устройства (а) PCI, вы помещаете UUID желаемой виртуальной машины и идентификаторы PCI устройств PCI. В этом примере перечислены два устройства PCI, разделенные запятыми.

    xe vm-param-set other-config:pci=0/0000:02:00.0,0/0000:00:1d.0 uuid=a82769ff-9dc4-56bb-61f9-57d741162a14
    
  6. Запустите соответствующую виртуальную машину и проверьте, правильно ли определяется новое оборудование.

Этот метод исходит из Вот, благодаря сотек для обмена.

Ноты

  • Конечно, ваше устройство будет привязано к конкретной виртуальной машине.
  • Если ваше приложение зависит от этого конкретного устройства PCI, забудьте о перемещении виртуальной машины в другое место.
  • Если ваше устройство не указано в списке PCI, вам не повезло.
  • Не все устройства подходят для такого управления. У меня были плохие времена с ИБП, управляемым через USB, который отказывался управлять с помощью такого рода сквозной передачи.
  • Я согласен с тем, что предложение TomTom является наиболее общим и каноническим способом решения проблемы с последовательным портом.

Я попытался сделать RS-232 сквозным для XenServer. И у меня ничего не получилось. Наконец, самым простым способом было купить Устройство IP COM. Это делает виртуальную машину независимой от хост-сервера, и вы можете использовать миграцию виртуальной машины. Я был удивлен стабильностью этого устройства. Без вопросов.

Невозможно. Я предлагаю получить последовательный интерфейс для интерфейса Ethernet, а затем использовать его. Виртуализация и последовательные порты не совсем совместимы.