Вложенные консольные сеансы RDP и VMWare и ILO: повторение нажатия клавиш и задержка


17

Я работаю над удаленной установкой сервера полностью через ILO (но это также относится к сеансам консоли IPMI и VMWare). Из-за программного приложения и среды мой доступ ограничен сервером Windows, к которому я должен получить доступ через RDP. Переход от этой системы к целевому серверу осуществляется через HP ILO2 или ILO3.

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

ks=http://all.yourbase.org/kickstart/ks.cfg

в конечном итоге выглядит как:

ks====httttttp://allll..yourbaseee.....org/kicksstart/ks.cccfg

Я делаю это с помощью клиента RDP от Microsoft (на Mac и Windows). Я также заметил это раньше, когда запускал установки или выполнял удаленную работу во вложенных сессиях.

введите описание изображения здесь

Есть хорошее решение для этого, или это просто функция протокола (ов)?


3
Я ожидаю, что администраторы, имеющие большое количество удаленных систем, или консультанты, которым необходимо удаленно подключаться к различным системам, чтобы испытать это.
— ewwhite

2
Ненавижу это говорить, но у меня тоже есть эта проблема, и я пока не извиняюсь.
— Chopper3

3
Это не решит вашу проблему, но если вашей удаленной конечной точкой является консоль VMware, этот документ от VMware предлагает решение.
— Жаворонки

Эта повторяющаяся проблема нажатия клавиш происходит только между сеансом RDP и консолью ilo?
— Rqomey 28.12.12

@Rqomey Я не уверен, на каком уровне возникают проблемы. Конечный результат такой же. Предположим, что-то вроде: Mac -> сеанс RDP Windows с подключением к клиентской консоли ILO или vSphere.
— 2012 г.

Ответы:


10

В то время как соединение SSH передает ключевые штрихи , связность HP ILO передает ключевые состояния . Каждый раз, когда вы нажимаете клавишу, сервер получает отдельные события KeyDown и KeyUp. Повторные нажатия клавиш возникают, когда событие KeyUp получено с опозданием.

Две наиболее вероятные причины позднего получения события KeyUp:

  1. Проблемы с перегрузкой сети / производительностью.
  2. Низкая производительность клиентской системы, инициирующей соединение ILO. Если клиент является виртуальной машиной, перегружена ли базовая хост-система или выделена ли недостаточно памяти память / ресурсы ЦП?

Если первопричину невозможно устранить:

  1. Проблему повторения клавиш можно обойти, отключив настройку ILO2 под названием «Вверх / Вниз». Это заставит ILO2 передавать нажатия клавиш вместо состояний клавиш. К сожалению, этот параметр был удален из ILO3.
  2. Если целевой операционной системой является Linux, вы можете обойти эту проблему, перенаправив консоль в ttyS0сеанс виртуального последовательного порта (VSP) вместо виртуальной консоли. Это устранит проблему Key Up / Down, потому что последовательные соединения передают нажатия клавиш вместо событий up / down клавиш.
  3. Может быть полезно отрегулировать частоту повторения клавиш и / или полностью отключить автоповтор в целевой системе. Я признаю, что это может быть нелегко сделать, в зависимости от серьезности проблемы повторения ключа.
  4. Учитывая, что вы используете Mac в качестве локальной рабочей станции, возможно, стоит попробовать вставить полные команды в ваш RDP-клиент Mac с помощью Command-V. Я не знаю, является ли это жизнеспособным обходным решением, но это может иметь интересный эффект. Я часто ценил работу на удаленных машинах Windows с рабочей станции Mac, особенно потому, что локальные комбинации команд и горячих клавиш продолжают работать предсказуемо.

Ссылки:


Любое понимание на стороне удаленной консоли VMWare этого? Я вижу то же самое там.
— Ewwhite

2
Обойтись в VMware довольно просто, просто изменив задержку повторения ключа на 2 секунды, но глобально сделать это невозможно (файл .vmx необходимо изменить для каждой виртуальной машины): kb.vmware.com/selfservice/microsites /…
— Skyhawk

1
В соответствии с этими же принципами, может быть полезно внедрить ДРУГОЙ сеанс Windows. Передача RDP на сервер в том же сегменте сети, что и iLO, может уменьшить задержку между ключами, чтобы не создавать проблем.
— longneck

5

Похоже, это просто проблема с протоколом. Я несколько уменьшил проблему, используя Ericom Blaze в качестве транспорта RDP для центрального сервера, с которого я соединяюсь; например, "коробка прыжка".

Другие вещи:

Я пытаюсь избежать нескольких вложенных сессий.

Я использую VMWare Fusion с Windows 7 на своем Mac, чтобы в некоторых случаях я мог использовать собственный RDP из Windows.

Это все, что я могу видеть на данный момент.


2

вам нужно отредактировать файл .vmx, добавив следующую строку:

keyboard.typematicMinDelay = "2000000"

вынимает «отскок».

С моей версией vmware я должен сделать это изменение, когда виртуальная машина не работает. Я понимаю, что это можно сделать из окна редактирования, но я не смог найти это место.


1

Проблема возникает с вашим подключением к rdp (вы можете правильно набрать в блокноте?) Или между RDP и iLO)?

Если между RDP и iLO (я знаю, что вы уже сделали это)

  1. Использование удаленной консоли Java было практически невозможно. Я обнаружил, что если бы я использовал «удаленную консоль» (она может называться .Net), это привело к значительному улучшению. Задержка была меньше, задержка не была нервной, повторных и потерянных нажатий клавиш не происходило.

  2. Загрузитесь с live cd, установите сервер openssh и используйте ssh для подключения. Сделайте нашу установку через ssh (если соединение плохое, используйте экран также.

Если между вами и RDP:

Используйте freenx или vnc, настроенный на низкую полосу пропускания с вашей коробкой Windows. Это должно по крайней мере очистить нажатия клавиш. В порядке ли соединение с RDP (в этом случае возникают проблемы с нажатием клавиши?

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


Я определенно использую консоль .NET.
— 2012 года

1

Первая важная вещь, которую следует запомнить, - это отключить повторение клавиш при любой обработке ваших нажатий клавиш, в том числе на виртуальной машине или сеансе RDP, через который вы подключаетесь, а также на хост-машине верхнего уровня. Это не фиксирует конечную целевую машину, но делает многое для улучшения ситуации.

Что касается целевой машины:

Есть сообщения, что использование ssh для подключения к SSH-порту HP iLO позволяет избежать проблем с повторением ключа, но я не мог использовать этот метод, потому что мой хост (online.net) не пропустил порт 22 через брандмауэр iLO. Но если у вас есть доступ к SSH-порту iLO (вероятно, 22), это кажется самым простым подходом.

Я попытался с помощью системного блока установить частоту повторения клавиатуры и время задержки при загрузке:

# Note that kbdrate only affects existing keyboards, and HP iLO attaches a new
# USB keyboard when you connect, so you may have to reboot (with the iLO console
# attached) to get the keyboard delay and repeat rate to take effect.

[Unit]
Description=Set longer delay time for key repeat

[Service]
Type=oneshot
RemainAfterExit=yes
StandardInput=tty
StandardOutput=tty
ExecStart=/sbin/kbdrate -d 1000 -r 2

[Install]
WantedBy=multi-user.target
WantedBy=rescue.target

(Убедитесь, что у /sbin/kbdrateвас есть kbdrate. Пишите /etc/systemd/systemd/slower-keyboard-repeat.serviceи systemctl daemon-reload && systemctl enable slower-keyboard-repeat.service)

но, как упоминалось в комментарии, это был лишь частичный успех, потому что для установки частоты повторения на новой клавиатуре, которую подключает iLO, потребовалась перезагрузка. Но это достаточно хорошо, если вы все в порядке с перезагрузкой машины.

В конечном итоге я исправил ядро ​​Linux, чтобы изменить частоту повторения по умолчанию и время задержки на всех клавиатурах:

From 78c32f539b89bf385985bea47a7058a540d31da0 Mon Sep 17 00:00:00 2001
From: Ivan Kozik <ivan@ludios.org>
Date: Thu, 30 Mar 2017 13:31:17 +0000
Subject: [PATCH] Increase the default keyboard repeat delay from 250ms to
 1000ms and repeat rate from 1000/33 Hz to 1000/500 Hz to avoid unintentional
 repeated keystrokes when using remote consoles such as HP iLO over
 high-latency links.  These consoles (HP iLO included) often transmit key
 states (up/down) instead of keystrokes, making it impossible to even enter a
 password and log in.

Fixing this in the kernel avoids problems with kbdrate where the parameters
passed to kbdrate don't apply to the new keyboards attached by HP iLO.
---
 drivers/input/input.c          | 2 +-
 drivers/input/keyboard/atkbd.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/input/input.c b/drivers/input/input.c
index 880605959aa6..a195af2d062a 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -2126,7 +2126,7 @@ int input_register_device(struct input_dev *dev)
     * is handled by the driver itself and we don't do it in input.c.
     */
    if (!dev->rep[REP_DELAY] && !dev->rep[REP_PERIOD])
-       input_enable_softrepeat(dev, 250, 33);
+       input_enable_softrepeat(dev, 1000, 500);

    if (!dev->getkeycode)
        dev->getkeycode = input_default_getkeycode;
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index ec876b5b1382..9dd04c2215b3 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -1096,8 +1096,8 @@ static void atkbd_set_device_attrs(struct atkbd *atkbd)
            BIT_MASK(LED_MUTE) | BIT_MASK(LED_MISC);

    if (!atkbd->softrepeat) {
-       input_dev->rep[REP_DELAY] = 250;
-       input_dev->rep[REP_PERIOD] = 33;
+       input_dev->rep[REP_DELAY] = 1000;
+       input_dev->rep[REP_PERIOD] = 500;
    }

    input_dev->mscbit[0] = atkbd->softraw ? BIT_MASK(MSC_SCAN) :
-- 
2.11.0

и это решило проблему для меня.


0

Я знаю, что вы сказали, что вы ограничены, но я не могу придумать ничего лучше, чем: установить VNC или TeamViewer, по крайней мере, просто для выполнения важной части вашей установки.

Второе решение состоит в том, чтобы использовать прокси-сервер переадресации типа Media Center для входящих сообщений, чтобы вы могли подключить вторую клавиатуру к компьютеру и, используя HID, перенаправить только эту клавиатуру через TCP / SOAP на сервер. Но поскольку для этого нужно установить программные демоны на сервере, вы можете начать с VNC.

Я никогда не сталкивался с повторными нажатиями клавиш, но при работе с VMware через RDP, когда на гостевой ОС не загружены инструменты VMware Tools, я действительно испытываю большие задержки.

Последний вариант, который у меня есть, если ни один из вышеперечисленных не подходит, - это связаться со службой поддержки Microsoft и сообщить о решении, которое они вам дадут здесь ... как билет с открытым исходным кодом.


0

По моему опыту это помогло мне, если я попытаюсь забыть все, что я узнал о сенсорном наборе текста, и постараюсь нажимать клавиши одну за другой и очень, очень быстро. Желательно использовать только один палец, чтобы не чувствовать себя слишком комфортно и начать печатать слишком быстро. Это также позволяет вам сконцентрироваться на попытке быстро нажать клавишу . Все это может звучать как шутка, но я обнаружил, что мой правый средний палец (я правша), безусловно, способен быстро нажимать клавиши.

И, конечно же, я стараюсь как можно быстрее запустить SSH и запустить его. Если слишком ограничены, чтобы иметь возможность делать это ... ой.

Также попробуйте использовать разные консоли. Обычно версия Java была бы наихудшей, но если у вас возникли проблемы с версией .NET, вы можете попробовать Java. Просто будьте готовы к тому, что плагин java может привести к сбою вашего браузера (это проблема только с iLO 2; iLO 3 перемещен из плагина в приложение для запуска через Интернет).


Это грубое решение. Есть идеи, почему это происходит?
— 2012 года

1
Называть это «решением» довольно щедро. Нет, я понятия не имею, почему это происходит, но я всегда обвинял протокол удаленного подключения. Теперь, когда вы заставили меня задуматься об этом, у меня появилась другая идея ... Вы когда-нибудь пытались воспроизвести это с помощью экранной клавиатуры из приложений Windows Access? У меня есть ноющее чувство, что приложение на экране клавиатуры может работать безупречно.
— Chutz

На этой неделе я попробовал использовать экранную клавиатуру с проблемой VMWare vCloud. Всплывающая консоль конкурировала с экранной клавиатурой за фокус, поэтому они не были совместимы.
— ewwhite
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.