Sessioni console RDP e VMWare e ILO nidificate: ripetizione e latenza della sequenza di tasti


17

Sto lavorando su un'installazione di server remoti interamente tramite ILO (ma questo vale anche per le sessioni della console IPMI e VMWare). A causa dell'applicazione software e dell'ambiente, il mio accesso è limitato a un server Windows a cui devo accedere tramite RDP. Il passaggio da quel sistema al server di destinazione viene effettuato tramite HP ILO2 o ILO3.

Sto cercando di eseguire un'installazione CentOS in un ambiente in cui non riesco a utilizzare un sistema di distribuzione completamente automatizzato. Lo sto facendo tramite la modalità testo, ma i tasti si ripetono casualmente ed è difficile selezionare le opzioni di installazione appropriate. Per esempio:

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

finisce per apparire come:

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

Lo sto facendo usando il client RDP di Microsoft (su Mac e Windows). L'ho notato anche prima quando eseguivo installazioni o facevo lavori remoti in sessioni nidificate.

inserisci qui la descrizione dell'immagine

C'è una bella soluzione per questo, o semplicemente una funzione dei protocolli?


3
Mi aspetto che gli amministratori che hanno avuto un buon numero di sistemi remoti, o i consulenti che hanno bisogno di remotare in una varietà di sistemi per averlo sperimentato.
ewwhite,

2
Odio dirlo, ma anch'io ho questo problema di routine e devo ancora scusarmi.
Chopper3,

3
Questo non risolve il problema, ma se l'endpoint remoto è una console VMware, questo documento di VMware suggerisce una soluzione.
Larks

Questo problema di battitura ripetuta si verifica solo tra la sessione RDP e la console ilo?
Rqomey,

@Rqomey Non sono sicuro su quale strato affiora il problema. Il risultato finale è lo stesso. Supponiamo che: Mac -> Sessione Windows RDP che esegue la connessione a ILO o console client vSphere.
ewwhite,

Risposte:


10

Mentre una connessione SSH trasmette i tasti premuti , una connessione HP ILO trasmette gli stati chiave . Ogni volta che si preme un tasto, il server riceve eventi KeyDown e KeyUp separati. I tasti ripetuti risultano quando l'evento KeyUp viene ricevuto in ritardo.

I due motivi più probabili per la ricezione in ritardo dell'evento KeyUp sono:

  1. Problemi di congestione / prestazioni della rete.
  2. Scarse prestazioni del sistema client che avvia la connessione ILO. Se il client è una macchina virtuale, il sistema host sottostante è sovraccarico o la VM ha allocato risorse di memoria / CPU inadeguate?

Se la causa principale non può essere risolta:

  1. Il problema di ripetizione dei tasti può essere risolto disabilitando un'impostazione ILO2 denominata "Tasto su / giù". Ciò farà sì che ILO2 trasmetta i tasti invece degli stati chiave. Sfortunatamente, questa impostazione è stata rimossa da ILO3.
  2. Se il sistema operativo di destinazione è Linux, potresti essere in grado di aggirare il problema reindirizzando la console ttyS0e utilizzando una sessione Porta seriale virtuale (VSP) anziché una console virtuale. Ciò eliminerà il problema dei tasti su / giù, poiché le connessioni seriali trasmettono sequenze di tasti invece di eventi chiave su / giù.
  3. Può essere utile regolare la frequenza di ripetizione dei tasti e / o disabilitare la ripetizione automatica sul sistema di destinazione. Riconosco che questo potrebbe non essere facile da realizzare, a seconda della gravità del problema di ripetizione dei tasti.
  4. Dato che stai usando un Mac come workstation locale, potrebbe essere utile provare a incollare comandi completi nel tuo client Mac RDP usando Command-V. Non so se si tratta di una soluzione alternativa praticabile, ma potrebbe avere un effetto interessante. Ho spesso apprezzato lavorare su macchine Windows remote da una workstation Mac in particolare perché le combinazioni di tasti di scelta rapida locali continuano a funzionare in modo prevedibile.

Riferimenti:


Qualche idea sul lato della console remota VMWare di questo? Vedo la stessa cosa lì.
ewwhite,

2
È abbastanza facile aggirare VMware semplicemente cambiando il ritardo di ripetizione della chiave in 2 secondi, ma non c'è modo di farlo globalmente (il file .vmx deve essere cambiato per ogni VM): kb.vmware.com/selfservice/microsites / ...
Skyhawk,

1
Sulla stessa linea, potrebbe essere utile annidare ANCORA UN'ALTRA sessione di Windows. L'RDP su un server sullo stesso segmento di rete dell'iLO può ridurre il ritardo tra le chiavi abbastanza da non costituire un problema.
collo lungo,

5

Sembra che sia solo un problema con il protocollo. Ho in qualche modo ridotto il problema utilizzando Ericom Blaze come trasporto RDP per il server centrale da cui mi collego; ad es. "jump box".

Altre cose:

Sto cercando di evitare più sessioni nidificate.

Sto eseguendo VMWare Fusion con Windows 7 sul mio Mac per consentirmi di utilizzare l'RDP nativo da Windows in alcuni casi.

Questo è tutto ciò che posso vedere per ora.


2

è necessario modificare il file .vmx per aggiungere la seguente riga:

keyboard.typematicMinDelay = "2000000"

elimina il "rimbalzo".

Con la mia versione di VMware, devo apportare questa modifica quando la VM è inattiva. Capisco che può essere fatto da una finestra di modifica, ma non sono stato in grado di trovare quel posto.


1

Il problema si verifica con la connessione a RDP (è possibile digitare correttamente il blocco note?) O tra RDP e iLO)?

Se tra RDP e iLO (so che l'hai già fatto)

  1. L'uso della console remota Java era quasi impossibile. Ho scoperto che se avessi usato la "console remota" (che si può chiamare .Net), avrei ottenuto un notevole miglioramento. La latenza era inferiore, la latenza non era nervosa e non si verificavano ripetute e perse sequenze di tasti.

  2. Avvia il cd live, installa il server openssh e usa ssh per connetterti. Fai la nostra installazione su ssh (se anche la connessione è cattiva schermata).

Se tra te e RDP:

Usa freenx o vnc sintonizzati su banda bassa con la tua finestra di Windows. Questo dovrebbe almeno ripulire i tasti. La connessione all'RDP è corretta (è lì che si verificano i problemi di battitura?

Se entrambi: scrivi i comandi in un blocco note, quindi copia e incolla se puoi, spero che funzionerà meglio della digitazione.


Sto sicuramente usando la console .NET.
ewwhite,

1

La prima cosa fondamentale da ricordare è disabilitare la ripetizione della chiave su tutto ciò che elabora i tasti premuti, inclusa la macchina virtuale o la sessione RDP a cui ti stai connettendo, così come la macchina host di livello superiore. Questo non risolve la macchina finale di destinazione ma fa molto per migliorare la situazione.

Per quanto riguarda la macchina target:

Ci sono rapporti secondo cui l'uso di ssh per connettersi alla porta SSH di HP iLO evita problemi di ripetizione chiave, ma non ho potuto usare questo metodo perché il mio host (online.net) non ha lasciato passare la porta 22 attraverso il firewall iLO. Ma se hai accesso alla porta SSH di iLO (probabilmente 22), sembra l'approccio più semplice.

Ho provato a utilizzare un'unità systemd per impostare la frequenza di ripetizione della tastiera e il tempo di ritardo all'avvio:

# 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

(Assicurati che /sbin/kbdratesia dove sei kbdrate. Scrivi a /etc/systemd/systemd/slower-keyboard-repeat.servicee systemctl daemon-reload && systemctl enable slower-keyboard-repeat.service)

ma come menzionato nel commento, questo è stato solo un successo parziale perché ha richiesto un riavvio per impostare la frequenza di ripetizione sulla nuova tastiera che iLO collega. Ma è abbastanza buono se stai bene con il riavvio della macchina.

Alla fine, ho finito per patchare il kernel Linux per modificare la frequenza di ripetizione predefinita e il tempo di ritardo su tutte le tastiere:

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

e questo ha risolto il problema per me.


0

So che hai detto che sei limitato, ma non riesco a pensare a niente di meglio di: installare VNC o TeamViewer, almeno solo per fare la parte critica della tua installazione.

La seconda soluzione consiste nell'utilizzare un proxy di inoltro di tipo Media Center per i messaggi di input, in modo da collegare una seconda tastiera al computer e, utilizzando HID, inoltrare solo quella tastiera su TCP / SOAP al server. Ma poiché ciò implica l'installazione di demoni software sul server, potresti anche iniziare con VNC.

Non ho mai avuto ripetute sequenze di tasti, ma ottengo un notevole ritardo del mouse quando lavoro con VMware su RDP, quando il sistema operativo guest non ha VMware Tools caricato.

L'ultima opzione che ho, se nessuna delle opzioni precedenti è adatta, è contattare l'assistenza Microsoft e segnalare la risoluzione che ti danno qui ... come un ticket opensource.


0

Nella mia esperienza mi ha aiutato se provavo a dimenticare tutto ciò che avevo imparato sulla digitazione a tocco e provavo a premere i tasti uno per uno e molto, molto rapidamente. Preferibilmente usa solo un dito per non sentirti troppo a tuo agio e iniziare a digitare troppo velocemente. Ti consente anche di concentrarti sul tentativo di premere rapidamente il tasto . Tutta questa faccenda può sembrare uno scherzo, ma ho scoperto che il mio dito medio destro (sono destrimano) è di gran lunga la maggior parte in grado di premere rapidamente i tasti.

E, naturalmente, provo a far funzionare SSH il più rapidamente possibile dopo quello. Se sono troppo limitati per poterlo fare ... ahi.

Prova anche a utilizzare le diverse console. Normalmente la versione Java sarebbe la peggiore, ma se si verificano problemi con la versione .NET, è possibile provare Java. Preparati al fatto che il plug-in Java potrebbe causare l'arresto anomalo del browser (questo è solo un problema con iLO 2; iLO 3 è passato da un plug-in a un'app di avvio Web).


Questa è una soluzione approssimativa. Qualche idea del perché accada questo?
ewwhite,

1
Chiamarlo "una soluzione" è abbastanza generoso. No, non ho idea del perché accada, ma ho sempre incolpato il protocollo di connessione remota. Ora che mi hai fatto pensare, ho avuto quest'altra idea ... hai mai provato a riprodurlo con la tastiera su schermo dalle app di Windows per l'accessibilità? Ho la fastidiosa sensazione che l'app della tastiera su schermo possa funzionare in modo impeccabile.
Chutz,

Questa settimana ho provato l'approccio della tastiera su schermo con un problema di VMWare vCloud. La console pop-up era in conflitto con la tastiera su schermo per lo stato attivo, quindi non erano compatibili.
ewwhite,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.