XenServer

고급 문제 해결

이 문서에는 기술 지원팀의 안내에 따라 수행할 수 있는 고급 문제 해결 작업이 나열되어 있습니다.

Xen® 명령줄 옵션 변경

XenServer®는 오픈 소스 Xen 하이퍼바이저를 기반으로 합니다. 문제 진단 또는 해결의 일환으로 Xen 명령줄에 매개변수를 추가하도록 요청받을 수 있습니다.

기술 지원팀의 안내에 따라서만 Xen 명령줄을 변경하는 것을 강력히 권장합니다. XenServer 제품 설명서에 나열되지 않거나 기술 지원팀에서 제공하지 않은 옵션을 설정하거나 변경하는 것은 지원되지 않습니다. Xen 명령줄 인수에 대한 이러한 변경 사항은 환경을 지원받을 수 없게 만들 뿐만 아니라 호스트를 부팅할 수 없게 만들거나 잠재적으로 보안 위협에 취약하게 만들 수 있습니다.

호스트의 Xen 명령줄에 옵션을 추가하려면 다음 단계를 완료하십시오.

  1. SSH 또는 XenCenter의 콘솔 탭을 사용하여 XenServer 호스트 콘솔에 로그인합니다.
  2. 기술 지원팀에서 권장하는 매개변수와 값으로 다음 명령을 실행합니다. /opt/xensource/libexec/xen-cmdline --set-xen <parameter>=<value>
  3. 명령은 자동으로 반환되지만, grub.cfg 파일을 확인하여 매개변수가 설정되었는지 확인할 수 있습니다.

    • 호스트에 레거시 BIOS 부팅 모드를 사용하는 경우 다음 명령을 실행합니다. more /boot/grub/grub.cfg
    • 호스트에 UEFI 부팅 모드를 사용하는 경우 다음 명령을 실행합니다. more /boot/efi/EFI/xenserver/grub.cfg

    지정한 매개변수는 파일의 XenServerXenServer (Serial) 섹션에 나타납니다.

  4. 변경 사항을 적용하려면 XenServer 호스트를 재부팅합니다.

호스트의 Xen 명령줄에서 옵션을 제거하려면 다음 단계를 완료하십시오.

  1. SSH 또는 XenCenter의 콘솔 탭을 사용하여 XenServer 호스트 콘솔에 로그인합니다.
  2. 기술 지원에서 권장하는 매개변수 및 값으로 다음 명령을 실행합니다. /opt/xensource/libexec/xen-cmdline --remove-xen <parameter>
  3. 명령은 자동으로 반환되지만, grub.cfg 파일을 확인하여 매개변수가 제거되었는지 확인할 수 있습니다.

    • 호스트에 레거시 BIOS 부팅 모드를 사용하는 경우 다음 명령을 실행합니다. more /boot/grub/grub.cfg
    • 호스트에 UEFI 부팅 모드를 사용하는 경우 다음 명령을 실행합니다. more /boot/efi/EFI/xenserver/grub.cfg
  4. 변경 사항을 적용하려면 XenServer 호스트를 재부팅합니다.

XenServer 부팅 실패 시 로그 수집

XenServer 호스트가 성공적으로 부팅되지 않는 경우에도 설치 ISO에서 부팅을 시도하여 로그를 수집할 수 있습니다.

  1. https://xenserver.com/downloads에서 설치 ISO를 다운로드합니다.
  2. 설치 ISO에서 XenServer 호스트를 부팅합니다. ISO에서 부팅하는 방법에 대한 자세한 내용은 XenServer 호스트 설치의 2단계를 참조하십시오.
  3. 첫 번째 대화 상자가 화면에 나타나면 Alt+F2를 누릅니다. 설치 프로세스가 셸 콘솔로 전환됩니다.
  4. 설치 ISO가 로컬 또는 원격 디스크를 볼 수 있는지 확인합니다. 다음 명령을 실행합니다.

    fdisk –l
    

    로컬 및 원격 디스크가 보이는 경우 이 명령은 보이는 파티션을 나열합니다. 이러한 파티션은 일반적으로 /dev/sdaX 형식의 이름을 가집니다.

  5. 로컬 디스크에서 루트 파티션을 식별합니다. 루트 파티션은 일반적으로 /dev/sda1이지만, 하드웨어에 따라 다를 수 있습니다.
  6. 로컬 디스크에 액세스하려면 루트 파티션을 임시 마운트 지점 /mnt에 마운트합니다.

    mkdir /mnt
    mount /dev/sda1 /mnt
    ls /mnt
    
  7. 임시 루트 파일 시스템을 디스크의 파일 시스템으로 변경합니다.

    chroot /mnt
    
  8. 다음 명령을 실행하여 서버 상태 보고서를 생성합니다.

    mount –t sysfs none /sys
    xenserver-status-report --yestoall
    

    이 명령은 서버 상태 보고서가 포함된 tarball의 위치를 출력합니다.

  9. 임시 루트 파일 시스템에서 파일 경로를 얻으려면 이전 단계에서 제공된 경로 앞에 /mnt을(를) 추가합니다. 예: /mnt/var/opt/xen/bug-report/bug-report-xxxx.tar.bz2
  10. 서버 상태 보고서를 네트워크를 통해 데스크톱으로 복사하기 위해 임시 IP 주소를 설정합니다.

    • 네트워크에서 DHCP가 실행 중인 경우 다음 명령을 실행합니다.

       dhclient eth0
      
    • DHCP가 없는 경우 IP 주소를 수동으로 구성합니다.

       ifconfig eth0 <x.x.x.x> netmask <x.x.x.x> up
       route add default <x.x.x.x>
      
  11. SCP 클라이언트를 사용하여 이전에 구성된 IP 주소에 연결하고 상태 보고서를 로컬 데스크톱으로 복사합니다.

직렬 콘솔 액세스 구성

XenServer 호스트에 대한 직렬 콘솔 액세스는 디버그 목적으로 유용할 수 있습니다. HyperTerminal(또는 유사한 애플리케이션)과 직렬 연결을 사용하여 XenServer 로그를 수집할 수 있습니다.

물리적 포트를 사용하여 호스트에 연결할 수 있습니다. 이 방법을 사용하는 경우 다음이 필요합니다.

  • 9핀 직렬 널 모뎀 케이블.
  • 직렬 포트 연결용 소프트웨어(예: Microsoft HyperTerminal)가 실행 중인 시스템의 직렬 COM 포트.
  • XenServer 호스트의 직렬 COM 포트.

호스트에 물리적 직렬 포트가 없거나 적합한 물리적 인프라를 사용할 수 없는 경우 하드웨어에 내장된 관리 장치를 구성할 수 있는지 조사하십시오. 이 방법은 Serial over LAN으로도 알려져 있습니다. 이 방법을 사용하는 경우 다음이 필요합니다.

  • Dell iDRAC 또는 HP iLO와 같은 베이스보드 관리 컨트롤러에서 제공하는 가상 직렬 포트.
  • 가상 직렬 포트에 연결하기 위한 적절한 소프트웨어가 설치된 컴퓨터(예: ipmitool).

참고:

기본적으로 XenServer는 직렬 보드 속도를 115200으로 가정합니다. 다른 보드 속도가 필요한 경우 grub.cfg 파일에서 <speed> 값을 조정하십시오. 필요한 경우 기술 지원팀의 지침을 구하십시오.

직렬 연결을 설정하려면 다음 단계를 완료하십시오.

  1. 서버에서 COM1을 사용하지 않는 경우 grub.cfg 파일을 편집하십시오.

    • 레거시 BIOS 부팅의 경우 grub.cfg 파일은 /boot/grub 디렉터리에 있습니다.
    • UEFI 부팅의 경우 grub.cfg 파일은 /boot/efi/EFI/xenserver 디렉터리에 있습니다.
  2. 다음 줄을 찾으십시오: serial --unit=0 --speed=<speed>
  3. --unit 값을 n-1로 편집하십시오. 여기서 <n>는 COM 포트 번호를 나타냅니다.

    예를 들어, COM2를 사용하려면 –unit 값을 1로 설정하십시오.

    serial --unit=1 --speed=<speed>
    
  4. menuentry 'XenServer (Serial)' 섹션에서 다음 텍스트가 표시되는 줄을 찾으십시오: com1=<speed>,8n1 console=com1,vga

  5. com1com<n>로 바꾸십시오. 여기서 <n>는 COM 포트 번호를 나타냅니다.

  6. XenServer 호스트를 시작하거나 재부팅하십시오.

  7. grub 부팅 메뉴에서 XenServer (Serial) 옵션을 선택하십시오.

  8. XenServer가 직렬 콘솔 지원과 함께 시작됩니다.

이제 선택한 방법을 사용하여 직렬 콘솔에 연결할 수 있습니다.

직렬 콘솔에서 크래시 덤프 생성

XenServer 호스트가 충돌하면 실행 중인 커널은 kexec 함수를 기반으로 하는 특수 메모리 영역으로 마이그레이션할 수 있습니다. 서버를 다시 시작할 필요 없이 특수 커널을 로드합니다. 이 새 커널은 충돌에 대한 가능한 한 많은 세부 정보(메모리 덤프, 프로세스 목록)를 수집하여 /var/crash 디렉터리에 저장하려고 시도합니다.

때때로 XenServer는 충돌 후 중단되고 재부팅되지 않습니다. 이러한 상황이 발생하면 서버가 응답하지 않지만 여전히 실행 중이며 서버를 재부팅해야만 문제를 해결할 수 있습니다. 또한 서버에 크래시 덤프가 없을 수도 있습니다. /var/crash 디렉터리에 덤프가 없고 xe host-crashdump-list에 충돌에 대한 정보가 없습니다.

이러한 상황에서는 충돌에 대한 정보를 저장하는 크래시 덤프를 강제로 생성하여 분석할 수 있습니다.

직렬 콘솔로 전환한 후 다음 단계를 완료하십시오.

  1. XenServer가 응답하지 않을 때까지 기다립니다.
  2. Xen 하이퍼바이저 메뉴로 전환하려면 Ctrl+A를 세 번 누릅니다. 직렬 콘솔에 다음 메시지가 표시됩니다: *** Serial input to Xen (type 'CTRL-a' three times to switch input)
  3. 사용 가능한 모든 작업을 표시하려면 h를 누릅니다.
  4. 크래시 덤프를 트리거하려면 Shift+C를 누릅니다.
  5. XenServer 호스트가 재부팅될 때까지 기다린 다음 모든 데이터를 로컬 파일 시스템에 저장합니다.
  6. /var/crash 디렉터리에서 서버의 새 크래시 덤프를 확인합니다.

디버그 하이퍼바이저로 전환

일부 상황에서는 호스트를 디버그 하이퍼바이저로 전환하여 문제를 재현하는 것이 유용할 수 있습니다. 디버그 하이퍼바이저는 더 많은 내장 검사를 수행하며 출력에서 더 자세한 정보를 제공합니다.

호스트에서 디버그 하이퍼바이저를 활성화하려면 다음 단계를 완료하십시오.

  1. SSH를 사용하거나 XenCenter의 콘솔 탭을 사용하여 XenServer 호스트 콘솔에 로그인합니다.
  2. /boot 디렉터리로 디렉터리를 변경합니다: cd /boot
  3. 디버그 모듈 xen-debug.gz 파일이 사용 가능한지 확인합니다: ls -l xen*

    이 명령은 사용 가능한 하이퍼바이저 버전과 호스트 부팅 시 사용되는 심볼릭 링크를 보여줍니다. 일반적인 작업에서 xen-release.gz은 릴리스 하이퍼바이저 파일인 xen-<version>.gz에 연결되고, xen-debug.gz은 디버그 하이퍼바이저 파일인 xen-<version>-d.gz에 연결됩니다. 디버그 하이퍼바이저는 릴리스 하이퍼바이저와 동일한 버전이지만, 파일 이름에 추가 -d가 포함되어 있습니다.

    정상 작동 중인 하이퍼바이저 심볼릭 링크

  4. xen.gz 링크가 디버그 하이퍼바이저를 가리키도록 변경합니다: ln -sf /boot/xen-debug.gz /boot/xen.gz
  5. 호스트를 재부팅합니다.

기술 지원에서 권장하는 작업을 수행하고 더 많은 진단 정보를 수집하기 위해 디버그 하이퍼바이저를 사용한 후에는, 정상 작동으로 돌아가기 전에 하이퍼바이저를 릴리스 하이퍼바이저로 다시 전환하십시오.

호스트에서 릴리스 하이퍼바이저를 다시 사용하려면 다음 단계를 완료하십시오:

  1. SSH를 사용하거나 XenCenter의 콘솔 탭을 사용하여 XenServer 호스트 콘솔에 로그인합니다.
  2. /boot 디렉터리로 디렉터리를 변경합니다: cd /boot
  3. xen.gz 링크가 릴리스 하이퍼바이저를 가리키도록 변경합니다: ln -sf /boot/xen-release.gz /boot/xen.gz
  4. 호스트를 재부팅합니다.
고급 문제 해결