고급 문제 해결
이 문서에서는 기술 지원팀의 안내에 따라 취할 수 있는 고급 문제 해결 조치를 나열합니다.
Xen 명령줄에서 옵션 변경
XenServer는 오픈 소스 Xen 하이퍼바이저를 기반으로 합니다. 문제를 진단하거나 해결하는 과정에서 Xen 명령줄에 매개변수를 추가하라는 메시지가 표시될 수 있습니다.
기술 지원팀의 안내에 따라서만 Xen 명령줄을 변경하는 것을 강력히 권장합니다. XenServer 제품 설명서에 나열되지 않았거나 기술 지원팀에서 제공하지 않은 옵션을 설정하거나 변경하는 것은 지원되지 않습니다. Xen 명령줄 인수에 대한 이러한 변경 사항은 사용자 환경을 지원 부적격 상태로 만들 뿐만 아니라, 호스트를 부팅할 수 없게 만들거나 보안 위협에 취약하게 만들 수도 있습니다.
호스트의 Xen 명령줄에 옵션을 추가하려면 다음 단계를 완료하세요.
- SSH를 사용하거나 XenCenter의 콘솔 탭을 사용하여 XenServer 호스트 콘솔에 로그인합니다.
- 기술 지원에서 권장하는 매개변수와 값을 사용하여 다음 명령을 실행하세요:
/opt/xensource/libexec/xen-cmdline --set-xen <parameter>=<value> -
명령은 아무 소리 없이 반환되지만
grub.cfg파일을 확인하여 매개변수가 설정되었는지 확인할 수 있습니다.- 호스트에 대해 레거시 BIOS 부팅 모드를 사용하는 경우 다음 명령을 실행하세요.
more /boot/grub/grub.cfg - 호스트에 UEFI 부팅 모드를 사용하는 경우 다음 명령을 실행하세요.
more /boot/efi/EFI/xenserver/grub.cfg
지정한 매개변수는 파일의
XenServer및XenServer (Serial)섹션에 나타납니다. - 호스트에 대해 레거시 BIOS 부팅 모드를 사용하는 경우 다음 명령을 실행하세요.
- 변경 사항을 적용하려면 XenServer 호스트를 재부팅하세요.
호스트의 Xen 명령줄에서 옵션을 제거하려면 다음 단계를 완료하세요.
- SSH를 사용하거나 XenCenter의 콘솔 탭을 사용하여 XenServer 호스트 콘솔에 로그인합니다.
- 기술 지원에서 권장하는 매개변수와 값을 사용하여 다음 명령을 실행하세요:
/opt/xensource/libexec/xen-cmdline --remove-xen <parameter> -
명령은 아무 소리 없이 반환되지만
grub.cfg파일을 확인하여 매개변수가 제거되었는지 확인할 수 있습니다.- 호스트에 대해 레거시 BIOS 부팅 모드를 사용하는 경우 다음 명령을 실행하세요.
more /boot/grub/grub.cfg - 호스트에 UEFI 부팅 모드를 사용하는 경우 다음 명령을 실행하세요.
more /boot/efi/EFI/xenserver/grub.cfg
- 호스트에 대해 레거시 BIOS 부팅 모드를 사용하는 경우 다음 명령을 실행하세요.
- 변경 사항을 적용하려면 XenServer 호스트를 재부팅하세요.
XenServer가 부팅에 실패할 때 로그 수집
XenServer 호스트가 성공적으로 부팅되지 않더라도 설치 ISO에서 부팅을 시도하여 로그를 수집할 수 있습니다.
- https://xenserver.com/downloads에서 설치 ISO를 다운로드하세요.
- 설치 ISO에서 XenServer 호스트를 부팅합니다. ISO에서 부팅하는 방법에 대한 자세한 내용은 XenServer 호스트 설치의 2단계를 참조하세요.
- 첫 번째 대화 상자가 화면에 나타나면 Alt+F2를 누릅니다. 설치 과정에서 셸 콘솔로 전환됩니다.
-
설치 ISO가 로컬 또는 원격 디스크를 볼 수 있는지 확인하세요. 다음 명령을 실행합니다.
fdisk –l로컬 및 원격 디스크가 표시되면 이 명령은 표시 가능한 파티션을 나열합니다. 이러한 파티션은 일반적으로
/dev/sdaX형태의 이름을 갖습니다. - 로컬 디스크의 루트 파티션을 식별합니다. 루트 파티션은 일반적으로
/dev/sda1이지만 하드웨어에 따라 다를 수 있습니다. -
로컬 디스크에 액세스하려면 임시 마운트 지점
/mnt에 루트 파티션을 마운트합니다.mkdir /mnt mount /dev/sda1 /mnt ls /mnt -
임시 루트 파일 시스템을 디스크의 파일 시스템으로 변경합니다.
chroot /mnt -
다음 명령을 실행하여 서버 상태 보고서를 만듭니다.
mount –t sysfs none /sys xenserver-status-report --yestoall이 명령은 서버 상태 보고서가 포함된 tarball의 위치를 출력합니다.
- 이전 단계에서 지정한 경로에
/mnt을 추가하여 임시 루트 파일 시스템의 파일 경로를 가져옵니다. 예:/mnt/var/opt/xen/bug-report/bug-report-xxxx.tar.bz2 -
네트워크를 통해 서버 상태 보고서를 데스크톱으로 복사하려면 임시 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>
-
- SCP 클라이언트를 사용하여 이전에 구성된 IP 주소에 연결하고 상태 보고서를 로컬 데스크톱에 복사합니다.
직렬 콘솔 액세스 구성
XenServer 호스트에 대한 직렬 콘솔 액세스는 디버깅 목적으로 유용할 수 있습니다. HyperTerminal(또는 비슷한 애플리케이션)과의 직렬 연결을 사용하여 XenServer 로그를 수집할 수 있습니다.
물리적 포트를 사용하여 호스트에 연결할 수 있습니다. 이 방법을 사용하려면 다음 사항이 필요합니다.
- 9핀 직렬 널 모뎀 케이블.
- 예를 들어 Microsoft HyperTerminal과 같이 직렬 포트에 연결하기 위한 소프트웨어를 실행하는 시스템의 직렬 COM 포트입니다.
- XenServer 호스트의 직렬 COM 포트.
호스트에 물리적 직렬 포트가 없거나 적합한 물리적 인프라를 사용할 수 없는 경우 하드웨어로 내장형 관리 장치를 구성할 수 있는지 알아보세요. 이 방법은 LAN을 통한 직렬 전송(Serial over LAN)이라고도 합니다. 이 방법을 사용하려면 다음 사항이 필요합니다.
- Dell iDRAC 또는 HP iLO와 같은 베이스보드 관리 컨트롤러가 제공하는 가상 직렬 포트입니다.
- 가상 직렬 포트에 연결하기 위한 적절한 소프트웨어가 있는 컴퓨터(예:
ipmitool).
메모:
기본적으로 XenServer는 직렬 통신 속도를 115200으로 가정합니다. 다른 전송 속도가 필요한 경우
grub.cfg파일에서<speed>값을 조정하세요. 필요한 경우 기술 지원팀의 안내를 받으세요.
직렬 연결을 설정하려면 다음 단계를 완료하세요.
-
서버에서 COM1을 사용하지 않는 경우
grub.cfg파일을 편집하세요.- 레거시 BIOS 부팅의 경우
grub.cfg파일은/boot/grub디렉터리에 있습니다. - UEFI 부팅의 경우
grub.cfg파일은/boot/efi/EFI/xenserver디렉토리에 있습니다.
- 레거시 BIOS 부팅의 경우
- 다음 줄을 찾으세요:
serial --unit=0 --speed=<speed> -
--unit값을n-1로 편집합니다. 여기서<n>는 COM 포트 번호를 나타냅니다.예를 들어, COM2를 사용하려면 –unit 값을 1로 설정합니다.
serial --unit=1 --speed=<speed> -
메뉴 항목 'XenServer (Serial)'섹션에서 다음 텍스트가 표시된 줄을 찾으세요:com1=<speed>,8n1 console=com1,vga -
com1를com<n>로 바꾸세요. 여기서<n>는 COM 포트 번호를 나타냅니다. -
XenServer 호스트를 시작하거나 재부팅합니다.
-
grub 메뉴에서 XenServer (Serial)를 선택합니다.
- XenServer는 직렬 콘솔 지원으로 시작합니다.
이제 선택한 방법을 사용하여 직렬 콘솔에 연결할 수 있습니다.
직렬 콘솔에서 크래시 덤프 생성
XenServer 호스트가 충돌하면 실행 중인 커널은 kexec 함수를 기반으로 하는 특수 메모리 영역으로 마이그레이션될 수 있습니다. 서버를 다시 시작하지 않고도 특수 커널을 로드합니다. 이 새로운 커널은 충돌에 대한 가능한 한 많은 세부 정보(메모리 덤프, 프로세스 목록)를 수집하고 이를 /var/crash 디렉터리에 저장하려고 시도합니다.
때로는 XenServer가 충돌 후 중단되고 재부팅되지 않는 경우가 있습니다. 이런 상황이 발생하면 서버는 응답하지 않지만 계속 실행 중이므로 서버를 재부팅해야만 문제가 해결됩니다. 또한 서버에 사용 가능한 크래시 덤프가 없을 수도 있습니다. /var/crash 디렉토리에 덤프가 없고, xe host-crashdump-list 에는 크래시에 대한 정보가 없습니다.
이런 상황에서는 충돌에 대한 정보를 저장하는 크래시덤프를 강제로 생성하여 분석할 수 있습니다.
직렬 콘솔로 전환한 후 다음 단계를 완료하세요.
- XenServer가 응답하지 않을 때까지 기다리세요.
-
Ctrl+A 을 세 번 눌러 Xen 하이퍼바이저 메뉴로 전환합니다. 직렬 콘솔에 다음 메시지가 표시됩니다.
*** Xen에 대한 직렬 입력(입력을 전환하려면 'CTRL-a'를 세 번 입력) - 사용 가능한 모든 작업을 표시하려면 h 를 누르세요.
- Shift+C 을 눌러 크래시 덤프를 트리거합니다.
- XenServer 호스트가 재부팅될 때까지 기다렸다가 모든 데이터를 로컬 파일 시스템에 저장합니다.
-
/var/crash디렉토리에서 서버의 새로운 크래시 덤프를 확인하세요.
디버그 하이퍼바이저로 전환
어떤 상황에서는 호스트를 디버그 하이퍼바이저로 전환하여 문제를 재현해 보는 것이 유용할 수도 있습니다. 디버그 하이퍼바이저는 더 많은 내장 검사를 수행하고 출력 내용이 더 자세합니다.
호스트에서 디버그 하이퍼바이저를 활성화하려면 다음 단계를 완료하세요.
- SSH를 사용하거나 XenCenter의 콘솔 탭을 사용하여 XenServer 호스트 콘솔에 로그인합니다.
- 디렉토리를
/boot디렉토리로 변경합니다:cd /boot -
디버그 모듈 xen-debug.gz 파일이 있는지 확인하세요:
ls -l xen*이 명령은 사용 가능한 하이퍼바이저 버전과 호스트를 부팅할 때 사용되는 심볼릭 링크를 보여줍니다. 일반적인 작업에서는
xen-release.gz는 릴리스 하이퍼바이저 파일에 연결되고,xen-<version>.gz,xen-debug.gz는 디버그 하이퍼바이저 파일에 연결되고,xen-<version>-d.gz. 디버그 하이퍼바이저는 릴리스 하이퍼바이저와 동일한 버전이지만 파일 이름에 추가로-d이 포함되어 있습니다.
-
xen.gz링크를 변경하여 디버그 하이퍼바이저를 가리키도록 합니다:ln -sf /boot/xen-debug.gz /boot/xen.gz - 호스트를 재부팅하세요.
기술 지원팀에서 권장하는 작업을 수행하기 위해 디버그 하이퍼바이저를 사용하고 추가 진단 정보를 수집한 후, 정상 작동으로 돌아가기 전에 하이퍼바이저를 릴리스 하이퍼바이저로 다시 전환합니다.
호스트에서 릴리스 하이퍼바이저를 다시 사용하려면 다음 단계를 완료하세요.
- SSH를 사용하거나 XenCenter의 콘솔 탭을 사용하여 XenServer 호스트 콘솔에 로그인합니다.
- 디렉토리를
/boot디렉토리로 변경합니다:cd /boot -
xen.gz링크를 릴리스 하이퍼바이저를 가리키도록 변경합니다:ln -sf /boot/xen-release.gz /boot/xen.gz - 호스트를 재부팅하세요.