중첩 된 RDP 및 VMWare 및 ILO 콘솔 세션 : 키 스트로크 반복 및 대기 시간


17

ILO를 통해 완전히 원격 서버 설치 작업을하고 있습니다 (그러나 이것은 IPMI 및 VMWare 콘솔 세션에도 적용됩니다). 소프트웨어 응용 프로그램 및 환경으로 인해 RDP를 통해 액세스해야하는 Windows 서버로 액세스가 제한됩니다. 해당 시스템에서 대상 서버로 이동하는 것은 HP ILO2 또는 ILO3을 통해 수행됩니다.

완전 자동화 된 배포 시스템을 사용할 수없는 환경에서 CentOS 설치를 실행하려고합니다. 텍스트 모드를 통해이 작업을 수행하지만 키 입력이 무작위로 반복되어 올바른 설치 옵션을 선택하기가 어렵습니다. 예를 들면 다음과 같습니다.

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

다음과 같이 보입니다.

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

Microsoft의 RDP 클라이언트 (Mac 및 Windows)를 사용 하여이 작업을 수행하고 있습니다. 또한 설치를 실행하거나 중첩 된 세션에서 원격 작업을 수행 할 때도이 사실을 알았습니다.

여기에 이미지 설명을 입력하십시오

이것에 대한 좋은 해결책이 있습니까, 아니면 단순히 프로토콜의 기능입니까?


3
원격 시스템이 많은 관리자 나이를 경험하기 위해 다양한 시스템에 원격으로 문의해야하는 컨설턴트가 필요합니다.
ewwhite

2
나는 이것을 말하는 것을 싫어하지만 나도이 문제를 일상적으로 가지고 있으며 아직 미안한 방법을 찾지 못했습니다.
Chopper3

3
이렇게해도 문제가 해결되지는 않지만 원격 엔드 포인트가 VMware 콘솔 인 경우 VMware 의이 문서 에서 해결책을 제안합니다.
larsks

이 반복 된 키 입력 문제가 RDP 세션과 ilo 콘솔 사이에서만 발생합니까?
Rqomey

@Rqomey 문제가 어떤 레이어에 있는지 잘 모르겠습니다. 최종 결과는 같습니다. ILO 또는 vSphere 클라이언트 콘솔에 대한 연결을 실행하는 Mac-> RDP Windows 세션과 같은 것으로 가정하십시오.
ewwhite

답변:


10

SSH 연결 키를 전송하는 반면 스트로크 은 HP ILO 연결 키 전송 상태를 . 키를 누를 때마다 서버는 별도의 KeyDown 및 KeyUp 이벤트를받습니다. 키업 이벤트가 늦게 수신되면 키 스트로크가 반복됩니다.

KeyUp 이벤트가 늦게 수신되는 두 가지 이유는 다음과 같습니다.

  1. 네트워크 혼잡 / 성능 문제.
  2. ILO 연결을 시작하는 클라이언트 시스템의 성능이 저하됩니다. 클라이언트가 가상 머신 인 경우 기본 호스트 시스템에 과부하가 걸리거나 VM에 메모리 / CPU 자원이 할당되어 있지 않습니까?

근본 원인을 해결할 수없는 경우 :

  1. 키 반복 문제는 "키 업 / 다운"이라는 ILO2 설정을 비활성화하여 해결할 수 있습니다. 이로 인해 ILO2가 키 상태 대신 키 입력을 전송하게됩니다. 불행히도이 설정은 ILO3에서 제거되었습니다.
  2. 대상 운영 체제가 Linux 인 경우 콘솔을 리디렉션하고 ttyS0가상 콘솔 대신 VSP (가상 직렬 포트) 세션을 사용하여이 문제를 해결할 수 있습니다 . 직렬 연결은 키 업 / 다운 이벤트 대신 키 입력을 전송하기 때문에 키 업 / 다운 문제가 제거됩니다.
  3. 대상 시스템에서 키 반복 속도를 조정하거나 자동 반복을 완전히 비활성화하는 것이 도움이 될 수 있습니다. 키 반복 문제의 심각성에 따라이 작업을 수행하기가 쉽지 않을 수 있음을 인정합니다.
  4. Mac을 로컬 워크 스테이션으로 사용한다고 가정하면 Command-V를 사용하여 완전한 명령을 Mac RDP 클라이언트에 붙여 넣는 것이 좋습니다. 이것이 가능한 해결 방법인지는 모르겠지만 흥미로운 효과가 있습니다. 로컬 워크 스테이션 단축키 조합이 계속 예측 가능하기 때문에 Mac 워크 스테이션에서 원격 Windows 시스템으로 작업하는 경우가 종종 있습니다.

참고 문헌 :


이것의 VMWare 원격 콘솔에 대한 통찰력이 있습니까? 저도 같은 것을 봅니다.
ewwhite

2
키 반복 지연을 2 초로 변경하는 것만으로 VMware에서 쉽게 해결할 수 있지만 전체적으로 수행 할 수있는 방법은 없습니다 (각 VM마다 .vmx 파일을 변경해야 함) : kb.vmware.com/selfservice/microsites
Skyhawk

1
이 같은 줄을 따라 다른 Windows 세션을 중첩하는 것이 도움이 될 수 있습니다. iLO와 동일한 네트워크 세그먼트의 서버로 RDP를 수행하면 문제가되지 않도록 키 간 지연이 줄어들 수 있습니다.
longneck

5

프로토콜에 문제가있는 것 같습니다. Ericom Blaze 를 내가 연결하는 중앙 서버의 RDP 전송으로 사용하여 문제를 다소 줄였습니다 . 예를 들어 "점프 박스".

다른 것들:

여러 개의 중첩 된 세션을 피하려고합니다.

Mac에서 Windows 7과 함께 VMWare Fusion을 실행하여 특정 경우 Windows의 기본 RDP를 사용할 수 있습니다.

그것은 내가 지금 볼 수있는 모든 것입니다.


2

.vmx 파일을 편집하여 다음 줄을 추가해야합니다.

keyboard.typematicMinDelay = "2000000"

"바운스"를 꺼냅니다.

내 vmware 버전에서는 VM이 ​​다운 될 때이 변경을 수행해야합니다. 편집 창에서 만들 수 있지만 해당 위치를 찾지 못했습니다.


1

rdp 연결 (메모장을 올바르게 입력 할 수 있습니까?) 또는 RDP와 iLO 간 연결에 문제가 있습니까?

RDP와 iLO 사이에있는 경우 (이미 이미 수행 한 것으로 알고 있습니다)

  1. Java 원격 콘솔을 사용하는 것은 거의 불가능했습니다. "원격 콘솔"(.Net이라고도 함)을 사용하면 크게 개선되었습니다. 지연 시간은 짧았고 지연 시간은 불안하지 않았으며 반복적이고 손실 된 키 입력은 발생하지 않았습니다.

  2. 라이브 CD를 부팅하고 openssh 서버를 설치 한 후 ssh를 사용하여 연결하십시오. ssh를 통해 설치하십시오 (연결이 나쁜 경우 화면도 사용하십시오).

귀하와 RDP 사이의 경우 :

Windows 상자에 저 대역으로 튜닝 된 freenx 또는 vnc를 사용하십시오. 최소한 키 입력을 정리해야합니다. RDP와의 연결이 정상입니까 (키 스트로크 문제가 발생한 곳입니까?)

두 경우 모두 : 메모장에서 명령을 작성한 다음 가능하면 복사하여 붙여 넣기를하면 입력하는 것보다 더 효과적입니다.


.NET 콘솔을 사용하고 있습니다.
ewwhite

1

가장 먼저 기억해야 할 것은 최상위 호스트 시스템뿐만 아니라 연결중인 가상 시스템 또는 RDP 세션을 포함하여 키 입력을 처리하는 모든 항목에서 키 반복을 비활성화하는 것입니다. 이것은 최종 대상 시스템을 수정하지는 않지만 상황을 개선하기 위해 많은 작업을 수행합니다.

대상 머신은 :

ssh를 사용하여 HP iLO의 SSH 포트에 연결하면 키 반복 문제가 발생하지 않는다는보고가 있지만 호스트 (online.net)가 포트 22를 iLO 방화벽을 통과시키지 못했기 때문에이 방법을 사용할 수 없습니다. 그러나 iLO의 SSH 포트 (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부터 시작할 수 있습니다.

반복적 인 키 입력을 경험 한 적이 없지만 게스트 OS에 VMware Tools가로드되어 있지 않은 경우 RDP를 통해 VMware를 사용할 때 마우스 지연이 발생합니다.

위의 방법 중 어느 것도 적합하지 않은 경우 최종 옵션은 Microsoft 지원 센터에 문의하여 여기에 제공 한 해결 방법을 오픈 소스 티켓처럼보고하는 것입니다.


0

내 경험상 터치 타이핑에 대해 배운 모든 것을 잊고 키를 하나씩 매우 빠르게 펀칭하려고하면 도움이되었습니다. 너무 편안하지 않고 너무 빨리 입력을 시작할 수 있도록 손가락 하나만 사용하는 것이 좋습니다. 또한 키를 빠르게 누르는 데 집중할 수 있습니다 . 이 모든 것이 농담처럼 들릴지 모르지만, 오른쪽 가운데 손가락 (오른 손잡이)은 키를 빠르게 누를 수있는 능력이 가장 뛰어납니다.

그리고 물론 그 후 가능한 빨리 SSH를 시작하고 실행하려고합니다. 그렇게하기에는 너무 제한되어 있다면 ...

또한 다른 콘솔을 사용하십시오. 일반적으로 Java 버전이 최악이지만 .NET 버전에 문제가있는 경우 Java를 사용해 볼 수 있습니다. Java 플러그인이 브라우저와 충돌 할 수 있도록 준비하십시오 (iLO 2의 문제 일 뿐이며 iLO 3은 플러그인에서 웹 시작 앱으로 이동했습니다).


그것은 거친 해결책입니다. 왜 이런 일이 일어나는지 아십니까?
ewwhite

1
그것을 "솔루션"이라고 부르는 것은 꽤 관대합니다. 아니요, 왜 그런지 모르겠지만 항상 원격 연결 프로토콜을 비난했습니다. 그래도 당신이 그것에 대해 생각하게 했으므로, 나는 다른 아이디어를 가지고 있습니다 ... 액세서 빌 러티 윈도우 앱에서 온 스크린 키보드로 이것을 재현 해 보셨습니까? 화상 키보드 앱이 완벽하게 작동 할 수 있다는 느낌이 들었습니다.
chutz

이번 주 VMWare vCloud 문제로 온 스크린 키보드 방식을 시도했습니다. 팝업 콘솔이 초점을 맞추기 위해 온 스크린 키보드와 경쟁하고 있었기 때문에 호환되지 않았습니다.
ewwhite
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.