Сегодня на работе я выключил последнюю оставшуюся ноду после миграции всех виртуальных машин в кластер Hyper-V.
Последнее действие перед выключением
Сервер был ProLiant DL380 G6, его уже давно пора было выводить из эксплуатации, но дело в том, что на нём крутилась пара серверов, «защищённых» USB-токеном. Несколько недель назад, наконец, купили железку, которая пробрасывает USB-устройства по сети — это местная аппаратная адаптация недорогого зарубежного решения VirtualHere.
Железка представляет собой keepalived-кластер из двух Banana Pi с веб-интерфейсом на ajenti и 32 портами USB, заключённых в едином корпусе:
# dmesg
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 5.15.93 (oe-user@oe-host) (arm-poky-linux-gnueabi-gcc (GCC) 9.3.0, GNU ld (GNU Binutils) 2.34.0.20200220) #1 SMP Thu Feb 9 10:26:48 UTC 2023
[ 0.000000] CPU: ARMv7 Processor [410fc074] revision 4 (ARMv7), cr=10c5387d
[ 0.000000] CPU: div instructions available: patching division code
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] OF: fdt: Machine model: LeMaker Banana Pi
# lsb_release -a
LSB Version: n/a
Distributor ID: poky
Description: Poky (Yocto Project Reference Distro) 3.1.17
Release: 3.1.17
Codename: dunfell
Документация написана не то чтобы очень и в настройке есть некоторые особенности, но техподдержка отвечает и в целом девайс работает хорошо.
На компьютерах, которым нужно подключение USB, ставится клиент, который устанавливает свои драйверы и может работать как служба. На очень старых системах, например, Windows 2003, драйверы нужно ставить самостоятельно, вытащив их из клиента с помощью командной строки. Потом, подмонтировав ключ, надо сделать так, чтобы служба сервера, зависящая от ключа (например, 1C:Enterprise 8.3 Server Agent), стартовала позже службы rhclient (USB Hub Over Network USB Sharing) — для этого нужно её перевести в режим автоматического отложенного запуска. В старых системах, где функции отложенного запуска нет, можно перевести службу сервера в ручной режим запуска и настроить планировщик задач, чтобы после загрузки ОС выполнялся скрипт наподобие
ping 127.0.0.1 -n 30
net start hwserver
Вот как выглядят устройства USB на виртуальной машине Hyper-V, где крутится 1С (напоминаю, что Hyper-V не пробрасывает USB с хоста на виртуалки, и правильно делает):
А вот так ключи выглядят с клиента:
Доступ к самим ключам и к их администрированию через клиент может быть ограничен несколькими способами, я делал по IP-адресам и подсетям.
Собственно, возвращаясь к тому, с чего я начал — после переноса токенов на железку оставалось только мигрировать все виртуалки на Hyper-V и выключить ноду VMware, что я и проделал. Теперь, наконец, зоопарка систем виртуализации больше нет.