Sessões de console aninhadas RDP e VMWare e ILO: repetição e latência de pressionamento de tecla

17

Estou trabalhando em uma instalação de servidor remoto inteiramente por meio da OIT (mas isso também se aplica às sessões de console IPMI e VMWare). Devido ao aplicativo e ao ambiente de software, meu acesso é restrito a um servidor Windows que devo acessar através do RDP. A passagem desse sistema para o servidor de destino é realizada via HP ILO2 ou ILO3.

Estou tentando executar uma instalação do CentOS em um ambiente em que não posso usar um sistema de implantação totalmente automatizado. Estou fazendo isso via modo de texto, mas as teclas estão repetindo aleatoriamente e é difícil selecionar as opções de instalação adequadas. Por exemplo:

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

acaba parecendo:

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

Estou fazendo isso usando o cliente RDP da Microsoft (no Mac e Windows). Também já notei isso antes ao executar instalações ou executar trabalhos remotos em sessões aninhadas.

insira a descrição da imagem aqui

Existe uma boa solução para isso, ou é simplesmente uma função do (s) protocolo (s)?

ewwhite
fonte
3
Eu esperaria que os administradores que possuem um bom número de sistemas remotos ou os consultores que precisam se conectar em uma variedade de sistemas experimentassem isso.
ewwhite
2
Odeio dizer isso, mas também tenho esse problema rotineiramente e ainda preciso encontrar uma maneira de contornar isso.
precisa saber é o seguinte
3
Isso não resolve o seu problema, mas se o seu terminal remoto for um console da VMware, este documento da VMware sugere uma solução.
Larsks
Esse problema repetido de pressionamento de tecla está acontecendo apenas entre a sessão RDP e o console do ilo?
RQomey
@ Rqomey Não sei em que camada o problema aparece. O resultado final é o mesmo. Suponha algo como: Mac -> sessão RDP do Windows executando a conexão com o console do cliente ILO ou vSphere.
ewwhite

Respostas:

10

Enquanto uma conexão SSH transmite pressionamentos de tecla , uma conexão HP ILO transmite os principais estados . Cada vez que você pressiona uma tecla, o servidor recebe eventos separados de KeyDown e KeyUp. As teclas repetidas resultam quando o evento KeyUp é recebido com atraso.

Os dois motivos mais prováveis ​​para o recebimento do evento KeyUp com atraso são:

  1. Problemas de congestionamento / desempenho da rede.
  2. Baixo desempenho do sistema do cliente que inicia a conexão da OIT. Se o cliente é uma máquina virtual, o sistema host subjacente está sobrecarregado ou a VM possui recursos inadequados de memória / CPU alocados?

Se a causa raiz não puder ser resolvida:

  1. O problema de repetição de tecla pode ser resolvido desativando uma configuração da ILO2 chamada "Key Up / Down". Isso fará com que o ILO2 transmita pressionamentos de tecla em vez de estados-chave. Infelizmente, essa configuração foi removida do ILO3.
  2. Se o sistema operacional de destino for Linux, você poderá solucionar o problema redirecionando o console para ttyS0e usando uma sessão de porta serial virtual (VSP) em vez de um console virtual. Isso eliminará o problema de ativação / desativação de teclas, porque as conexões seriais transmitem pressionamentos de teclas em vez de eventos de ativação / desativação de teclas.
  3. Pode ser útil ajustar a taxa de repetição de tecla e / ou desativar a repetição automática completamente no sistema de destino. Reconheço que isso pode não ser fácil, dependendo da gravidade do problema de repetição de chave.
  4. Como você está usando um Mac como estação de trabalho local, pode valer a pena tentar colar comandos completos no seu cliente RDP do Mac usando o Command-V. Não sei se essa é uma solução alternativa viável, mas pode ter um efeito interessante. Eu sempre gostei de trabalhar em máquinas Windows remotas a partir de uma estação de trabalho Mac, especificamente porque as combinações locais de teclas de atalho de comando continuam funcionando de maneira previsível.

Referências:

Falcão do céu
fonte
Alguma idéia do lado do console remoto do VMWare? Eu vejo a mesma coisa lá.
EWrite
2
É muito fácil contornar o VMware alterando o atraso de repetição de chave para 2 segundos, mas não há como fazer isso globalmente (o arquivo .vmx deve ser alterado para cada VM): kb.vmware.com/selfservice/microsites /…
Skyhawk
1
Nessa mesma linha, pode ser útil aninhar YET OUTRA sessão do Windows. Fazer o RDP para um servidor no mesmo segmento de rede que o iLO pode reduzir o atraso entre chaves para que não seja um problema.
longneck
5

Parece que é apenas um problema com o protocolo. Reduzi um pouco o problema usando o Ericom Blaze como o transporte RDP para o servidor central do qual me conecto; por exemplo, "caixa de salto".

Outras coisas:

Estou tentando evitar várias sessões aninhadas.

Estou executando o VMWare Fusion com Windows 7 no meu Mac para permitir o uso do RDP nativo do Windows em certos casos.

É tudo o que posso ver por enquanto.

ewwhite
fonte
2

você precisa editar o arquivo .vmx para adicionar a seguinte linha:

keyboard.typematicMinDelay = "2000000"

tira o "salto".

Com a minha versão do vmware, tenho que fazer essa alteração quando a VM está inoperante. Entendo que pode ser feito a partir de uma janela de edição, mas não consegui encontrar esse local.

Bob Leder
fonte
1

O problema está acontecendo com sua conexão com o rdp (você pode digitar o bloco de notas corretamente?) Ou entre o RDP e o iLO?

Se estiver entre o RDP e o iLO (eu sei que você já fez isso)

  1. Usar o console remoto Java era quase impossível. Eu descobri que se eu usasse o "console remoto" (pode ser chamado de .Net), resultou em uma grande melhoria. A latência era menor, a latência não era instável e as teclas repetidas e perdidas não aconteciam.

  2. Inicialize o live cd, instale o servidor openssh e use ssh para conectar. Faça nossa instalação pelo ssh (se a conexão for ruim, use a tela também.

Se entre você e o RDP:

Use freenx ou vnc sintonizado para baixa largura de banda na sua caixa do Windows. Isso deve pelo menos limpar as teclas digitadas. A conexão com o RDP está ok (é onde os problemas de pressionamento de tecla estão acontecendo?

Se os dois: Escreva comandos em um bloco de notas, copie e cole, se puder, espero que funcione melhor do que digitar.

Rqomey
fonte
Definitivamente, estou usando o console .NET.
ewwhite
1

A primeira coisa crítica a lembrar é desativar a repetição de teclas em tudo que processa suas teclas, inclusive na máquina virtual ou na sessão RDP pela qual você está se conectando, bem como na máquina host de nível superior. Isso não corrige a máquina alvo final, mas faz muito para melhorar a situação.

Quanto à máquina de destino:

Há relatos de que o uso do ssh para conectar-se à porta SSH do HP iLO evita problemas de repetição de chave, mas eu não pude usar esse método porque meu host (online.net) não deixou a porta 22 através do firewall do iLO. Mas se você tiver acesso à porta SSH do iLO (provavelmente 22), essa parece ser a abordagem mais fácil.

Tentei usar uma unidade systemd para definir a taxa de repetição do teclado e o tempo de atraso na inicialização:

# 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

(Certifique-se de /sbin/kbdrateque você está kbdrate. Escreva para /etc/systemd/systemd/slower-keyboard-repeat.servicee systemctl daemon-reload && systemctl enable slower-keyboard-repeat.service)

mas, como mencionado no comentário, esse foi apenas um sucesso parcial, pois foi necessário reiniciar para definir a taxa de repetição no novo teclado que o iLO anexa. Mas é bom o suficiente se você estiver bem com a reinicialização da máquina.

Por fim, acabei corrigindo o kernel do Linux para alterar a taxa de repetição padrão e o tempo de atraso em todos os teclados:

From 78c32f539b89bf385985bea47a7058a540d31da0 Mon Sep 17 00:00:00 2001
From: Ivan Kozik <[email protected]>
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

e isso resolveu o problema para mim.

Ivan Kozik
fonte
0

Sei que você disse que está restrito, mas não consigo pensar em nada melhor do que: instalar o VNC ou o TeamViewer, pelo menos apenas para fazer a parte crítica da sua instalação.

A segunda solução é usar um proxy de encaminhamento do tipo Media Center para mensagens de entrada, para conectar um segundo teclado ao computador e, usando o HID, encaminhar somente o teclado pelo TCP / SOAP para o servidor. Mas, como isso envolve a instalação de daemons de software no servidor, você também pode começar com o VNC.

Nunca experimentei pressionar repetidamente as teclas, mas recebo um grande atraso do mouse ao trabalhar com o VMware sobre RDP, quando o SO convidado não possui o VMware Tools carregado.

A opção final que tenho, se nenhuma acima for adequada, é entrar em contato com o Suporte da Microsoft e relatar a resolução que eles oferecem aqui .. como um ticket de código-fonte aberto.

servermanfail
fonte
0

Na minha experiência, me ajudou a tentar esquecer tudo o que aprendi sobre a digitação por toque e tentar digitar as teclas uma a uma e muito, muito rapidamente. De preferência, use apenas um dedo para não ficar muito confortável e começar a digitar rápido demais. Também permite que você se concentre em tentar pressionar a tecla rapidamente . Essa coisa toda pode parecer uma piada, mas descobri que meu dedo médio direito (sou destro) é de longe o mais capaz de pressionar as teclas rapidamente.

E, é claro, tento colocar o SSH em funcionamento o mais rápido possível depois disso. Se for muito restrito para poder fazer isso ... ai.

Tente também usar os diferentes consoles. Normalmente, a versão Java seria a pior, mas se você estiver tendo problemas com a versão .NET, poderá tentar o Java. Apenas esteja preparado para que o plug-in java possa travar o navegador (esse é apenas um problema do iLO 2; o iLO 3 mudou de um plug-in para um aplicativo de início na web).

chutz
fonte
Essa é uma solução difícil. Alguma idéia de por que isso acontece?
ewwhite
1
Chamá-lo de "uma solução" é bastante generoso. Não, não tenho idéia do por que isso acontece, mas sempre culpei o protocolo de conexão remota. Agora que você me fez pensar sobre isso, tive uma outra idéia ... você já tentou reproduzir isso com o teclado na tela nos aplicativos do Windows Accessibility? Tenho a sensação incômoda de que o aplicativo de teclado na tela pode funcionar perfeitamente.
Chutz
Tentei a abordagem de teclado na tela com um problema do VMWare vCloud esta semana. O console pop-up estava em conflito com o teclado na tela para foco, então eles não eram compatíveis.
ewwhite